你叉叉(You Fa Fa)——输入法关键词屏蔽小工具,也网文作者好帮手~控制骂人情绪,从输入法做起

DanielLewis有人提问:

有什么软件可以把某些特定的词语字限制打出或发送? - 问题求助 - 小众软件官方论坛 (appinn.net)

于是我用autohotkey搞了一个,暂时只支持win11的微软输入法
(win10版的微软输入法不太一样,得重新适配,需要稍后。)
image

使用方法:

1 增删 屏蔽词.txt 里的示例 为你想禁止的脏话或者网文禁止词汇

2 运行 你叉叉.exe

3 按几下按键,鼠标移动到输入法候选栏,然后按下快捷键 ctrl + shift + g

sb3

4 如需暂时退出屏蔽模式,再次按下ctrl + shift + g
sb4

下载链接:
dogbean.ysepan.com

image

1 个赞

想起了关晓彤的你XX

2 个赞

啊,这真是…意想不到啊

1 个赞

马上下载

现在都搞起这种和谐模式了,前有直播平台开启消音“哔哔”模式,后有楼主“XX”输入法 :rofl:

1 个赞

增加替换功能阿,比如“滚”=“世界那么大,你应该去看看”

这是代码,ahk v2
需要这个UIA库 AutoHotkey 使用 UI Automation(UIA) 获取相关信息教程 - 火冷 - 博客园 (cnblogs.com)
有需要的人可以自己改一改,加一加。

#include Class_UIA.ah2
#Warn All, Off
#SingleInstance force
global ID
global ifok
ifok := 0
return

^+g::{
global ID
global ifok
if ifok = 0 {
MouseGetPos , , , &ID, 2
msgbox("已开启和谐模式")
ifok := 1
}else{
msgbox("已开启骂人模式")
ifok := 0
}
return
}

#HotIf (ifok = 1)

$1:: {
global ID
local n
try
{
   elWin := UIA.ElementFromHandle(ID)
   cond := UIA.CreatePropertyCondition("name", "1")
   Element := elWin.FindFirst(cond, 4)
   Element := Element.GetNext()
   itemName := Element.GetCurrentPropertyValue(30005)
}
catch
{
itemName :=""
}
pingbici := FileRead("屏蔽词.txt", "UTF-8")
Loop parse, pingbici, "`n", "`r"
{
      If (InStr(itemName,  A_LoopField))
{
    send "{esc}"
    msgbox("消消气,不要骂人!和谐社会!")
    return 2
}
}
Send "{Raw}1"
return
}

$space:: {
global ID
local n
try
{
   elWin := UIA.ElementFromHandle(ID)
   cond := UIA.CreatePropertyCondition("name", "1")
   Element := elWin.FindFirst(cond, 4)
   Element := Element.GetNext()
   itemName := Element.GetCurrentPropertyValue(30005)
}
catch
{
itemName :=""
}
pingbici := FileRead("屏蔽词.txt", "UTF-8")
Loop parse, pingbici, "`n", "`r"
{
      If (InStr(itemName,  A_LoopField))
{
    send "{esc}"
    msgbox("消消气,不要骂人!和谐社会!")
    return 2
}
}
Send "{space}"
return
}

$2:: {
global ID
local n
try
{
   elWin := UIA.ElementFromHandle(ID)
   cond := UIA.CreatePropertyCondition("name", "2")
   Element := elWin.FindFirst(cond, 4)
   Element := Element.GetNext()
   itemName := Element.GetCurrentPropertyValue(30005)
}
catch
{
itemName :=""
}
pingbici := FileRead("屏蔽词.txt", "UTF-8")
Loop parse, pingbici, "`n", "`r"
{
      If (InStr(itemName,  A_LoopField))
{
    send "{esc}"
    msgbox("消消气,不要骂人!和谐社会!")
    return 2
}
}
Send "{Raw}2"
return
}

$3:: {
global ID
local n
try
{
   elWin := UIA.ElementFromHandle(ID)
   cond := UIA.CreatePropertyCondition("name", "3")
   Element := elWin.FindFirst(cond, 4)
   Element := Element.GetNext()
   itemName := Element.GetCurrentPropertyValue(30005)
}
catch
{
itemName :=""
}
pingbici := FileRead("屏蔽词.txt", "UTF-8")
Loop parse, pingbici, "`n", "`r"
{
      If (InStr(itemName,  A_LoopField))
{
    send "{esc}"
    msgbox("消消气,不要骂人!和谐社会!")
    return 2
}
}
Send "{Raw}3"
return
}

$4:: {
global ID
local n
try
{
   elWin := UIA.ElementFromHandle(ID)
   cond := UIA.CreatePropertyCondition("name", "4")
   Element := elWin.FindFirst(cond, 4)
   Element := Element.GetNext()
   itemName := Element.GetCurrentPropertyValue(30005)
}
catch
{
itemName :=""
}
pingbici := FileRead("屏蔽词.txt", "UTF-8")
Loop parse, pingbici, "`n", "`r"
{
      If (InStr(itemName,  A_LoopField))
{
    send "{esc}"
    msgbox("消消气,不要骂人!和谐社会!")
    return 2
}
}
Send "{Raw}4"
return
}

$5:: {
global ID
local n
try
{
   elWin := UIA.ElementFromHandle(ID)
   cond := UIA.CreatePropertyCondition("name", "5")
   Element := elWin.FindFirst(cond, 4)
   Element := Element.GetNext()
   itemName := Element.GetCurrentPropertyValue(30005)
}
catch
{
itemName :=""
}
pingbici := FileRead("屏蔽词.txt", "UTF-8")
Loop parse, pingbici, "`n", "`r"
{
      If (InStr(itemName,  A_LoopField))
{
    send "{esc}"
    msgbox("消消气,不要骂人!和谐社会!")
    return 2
}
}
Send "{Raw}5"
return
}

$6:: {
global ID
local n
try
{
   elWin := UIA.ElementFromHandle(ID)
   cond := UIA.CreatePropertyCondition("name", "6")
   Element := elWin.FindFirst(cond, 4)
   Element := Element.GetNext()
   itemName := Element.GetCurrentPropertyValue(30005)
}
catch
{
itemName :=""
}
pingbici := FileRead("屏蔽词.txt", "UTF-8")
Loop parse, pingbici, "`n", "`r"
{
      If (InStr(itemName,  A_LoopField))
{
    send "{esc}"
    msgbox("消消气,不要骂人!和谐社会!")
    return 2
}
}
Send "{Raw}6"
return
}

$7:: {
global ID
local n
try
{
   elWin := UIA.ElementFromHandle(ID)
   cond := UIA.CreatePropertyCondition("name", "7")
   Element := elWin.FindFirst(cond, 4)
   Element := Element.GetNext()
   itemName := Element.GetCurrentPropertyValue(30005)
}
catch
{
itemName :=""
}
pingbici := FileRead("屏蔽词.txt", "UTF-8")
Loop parse, pingbici, "`n", "`r"
{
      If (InStr(itemName,  A_LoopField))
{
    send "{esc}"
    msgbox("消消气,不要骂人!和谐社会!")
    return 2
}
}
Send "{Raw}7"
return
}

$8:: {
global ID
local n
try
{
   elWin := UIA.ElementFromHandle(ID)
   cond := UIA.CreatePropertyCondition("name", "8")
   Element := elWin.FindFirst(cond, 4)
   Element := Element.GetNext()
   itemName := Element.GetCurrentPropertyValue(30005)
}
catch
{
itemName :=""
}
pingbici := FileRead("屏蔽词.txt", "UTF-8")
Loop parse, pingbici, "`n", "`r"
{
      If (InStr(itemName,  A_LoopField))
{
    send "{esc}"
    msgbox("消消气,不要骂人!和谐社会!")
    return 2
}
}
Send "{Raw}8"
return
}

$9:: {
global ID
local n
try
{
   elWin := UIA.ElementFromHandle(ID)
   cond := UIA.CreatePropertyCondition("name", "9")
   Element := elWin.FindFirst(cond, 4)
   Element := Element.GetNext()
   itemName := Element.GetCurrentPropertyValue(30005)
}
catch
{
itemName :=""
}
pingbici := FileRead("屏蔽词.txt", "UTF-8")
Loop parse, pingbici, "`n", "`r"
{
      If (InStr(itemName,  A_LoopField))
{
    send "{esc}"
    msgbox("消消气,不要骂人!和谐社会!")
    return 2
}
}
Send "{Raw}9"
return
}

这个要么整个AI,要么整个超大数据库,只能用来玩玩

dog啊,你又取了什么鬼名字… Fa Fa是个什么鬼

本身就是玩玩的((
唯一能想到的用处是防止给老板打字时候白给,但是设置个输入法词库首选项也够了

鱿 法(克) 法(克) :joy:

我其实一直想要一个谐音输入法,免得我战斗的时候因为字太直白而变成了**,很打击我战斗积极性 :joy:

1 个赞

哈哈,这个好

草hhhhh

使用自定义短语调教一下就可以了,比如,啊不对这玩意怎么能举例呢哈哈哈哈

1 个赞

我估摸有人大深夜唱那《穷叉叉》

1 个赞