影子输入法集成小工具
脱胎于僵尸大佬的剪切板小工具,计划在之后作为影子的一个剪切板管理工具使用,有时候记不清影子的快捷键,或者存在造词的按钮和其他的ahk冲突,改键麻烦等问题,还有一些影子的使用者是鼠标用户,所以集成了这一个以鼠标点击为主,按键为辅助的剪切板管理工具
主要作用是收集文本,查询帮助,以及搜索
和其他独立工具的不同是,这是个快速打开造词以及输入法设置的入口
视频举例
打开影子输入法的造词等界面,比其他方式更加好记
测试ahk相关的代码,比自己弄个快捷键也是简单多了,很适合经常测试ahk窖
另外就是保存和收集文本文件之用途,非常方便快捷
单独设置了一个设置界面用来配置一些需要设置的保存路径和编辑器指定
之后准备将我自己制作的聚合搜索工具也改造一下集成在影子上
下面展示单独文件版本的源码,和影子的集成源码等之后统一发布半版本
Settings:
gui dbset:add,text,,Set CollectPtah
gui dbset:Add,Edit,vCollectPtah gWrite,
gui dbset:add,text,,Set EditorPath
gui dbset:Add,Edit,vEditorPath gWrite,
Gui dbset:show
Return
Write:
gui,Submit,NoHide
db[settings,"CollectPtah"]:=CollectPtah
db.save()
Return
~^c::DoublePress("MeunGui")
MeunGui(){
CoordMode,Mouse
DetectHiddenWindows,on
初始=
(
[settings]
CollectPtah=C:\Users\Administrator\Desktop\Collect\
EditorPath=C:\SoftDir\VSCode-win32-x64-1.70.0\Code.exe
)
IfNotExist,DoubleCopyMenu.ini
{
db:= class_EasyIni("DoubleCopyMenu.ini",初始)
db.save()
}
db:= class_EasyIni("DoubleCopyMenu.ini")
for k,v in db["settings"]
{
%k%=%v%
}
Global FileName, SaveEdit, Allstr
Allstr := Clipboard
CoordMode, Mouse, Screen
MouseGetPos, Mousex, Mousey
Gui dcmain: Destroy
Gui dcmain: +AlwaysOnTop -Caption +HwndSaveGui +E0x08000000
Gui dcmain: Font, s12
Gui dcmain: Add, Edit, x10 y10 w220 vFileName HwndSaveEdit,
Gui dcmain: Font, s9
Gui dcmain: Add, button, x10 w70 g预览, 1获取选中
Gui dcmain: Add, button, x+5 w70 g_存AHK收藏, 2存AHK收藏
Gui dcmain: Add, button, x+5 w70 g_存txt收藏, 3存txt收藏
Gui dcmain: Add, button, x10 w70 g_看下效果, 4看下效果
Gui dcmain: Add, button, x+5 w70 gSettings,5菜单设置
Gui dcmain: Add, button, x+5 w70 gapp,6切中英管理
Gui dcmain: Add, button, x10 w70 goption1, 7设置
Gui dcmain: Add, button, x+5 w70 gcikuManager1,8词库
Gui dcmain: Add, button, x+5 w70 g_造词,z造词
Gui dcmain: Add, button, x10 w70 g帮助ahk, h帮助ahk
Gui dcmain: Add, button, x+5 w70 g_不想看了, q不想看了
Gui dcmain: Show, % "x" Mousex " y"Mousey
CoordMode, Mouse
ControlFocus, , ahk_id %SaveEdit%
OnMessage(0x201, "MoveGui")
OnMessage(0x200, "GuiTips")
创建快捷键()
}
MoveGui(){
PostMessage, 0xA1, 2
}
帮助ahk:
Loop, Read, wd.txt
{
If (Trim(Clipboard," ") = RegExReplace(A_LoopReadLine, "[()]*<<>>.+"))
mbUrl := RegExReplace(A_LoopReadLine, "^.+<<>>")
}
If (mbUrl)
{
mubiao := "C:\AHK\SciTE\中文帮助\AutoHotkey_CN.chm::" mbUrl
if (WinExist("ahk_class HH Parent"))
WinClose, ahk_class HH Parent
run, "hh.exe" "%mubiao%"
mbUrl := ""
}
Return
预览(){
Global SaveEdit
Clipboard := ""
Send, ^c
ClipWait, 1
ControlSetText, , % Clipboard, ahk_id %SaveEdit%
}
_存ahk收藏(){
Global FileName, SaveEdit, Allstr, CollectPtah
ControlGetText, FileName, , ahk_id %SaveEdit%
ListName := (FileName = "") ? "Test" : FileName
FileAppend, % Allstr, % CollectPtah "\" ListName ".ahk", UTF-8
run % EditorPath CollectPtah "\" ListName ".ahk"
Closedc()
}
_存txt收藏(){
Global FileName, SaveEdit, Allstr, CollectPtah
ControlGetText, FileName, , ahk_id %SaveEdit%
ListName := (FileName = "") ? "Test" : FileName
FileAppend, % Allstr, % CollectPtah "\" ListName ".txt", UTF-8
run % EditorPath CollectPtah "\" ListName ".txt"
Closedc()
}
Closedc(){
Global Allstr
Gui dcmain: Destroy
Allstr := ""
}
_获取首行(){
Global SaveEdit, Allstr
Firstline := RegExReplace(RegExReplace(RegExReplace(Allstr, "[\r\n]+", "`n"), "^(.+?\n)(.+$)", "$1"), "[\\/:?*""|<>(){} \r;\n]")
ControlSetText, , % Firstline, ahk_id %SaveEdit%
}
创建快捷键(){
Global SaveEdit
; #If WinActive("ahk_id" SaveEdit)
; hotkey, 1, 预览
; hotkey, 2, _存AHK收藏
; hotkey, 3,_存txt收藏
; hotkey, 4,_看下效果
; hotkey, 5,Settings
; hotkey, 6,app
; hotkey, 7,option1
; hotkey, 8,cikuManager1
; hotkey, z,_造词
; hotkey, h,帮助ahk
; hotkey, q,_不想看了
; #If
}
DoublePress(GoFunc := ""){
static pressed1 = 0
if (pressed1 and A_TimeSincePriorHotkey <= 500){
pressed1 = 0
SetTimer, %GoFunc%, -10
}
else {
pressed1 = 1
}
}
_看下效果(){
Global Allstr
Exec(Allstr, 1)
return
}
_不想看了(){
Exec("", 1)
Gui dcmain: Destroy
}
; ==================================================================================
; dbgba 的新建进程
; ==================================================================================
Exec(s, flag="Default") {
SetBatchLines, -1
SetWorkingDir %A_ScriptDir%
DetectHiddenWindows, On
WinGet, NewPID, PID, <<ExecNew%flag%>> ahk_class AutoHotkeyGUI
PostMessage, 0x111, 65307,,, %A_ScriptDir%\* ahk_pid %NewPID%
add=`nflag=<<ExecNew%flag%>>`n
(%
Gui, Gui_Flag_Gui: Show, Hide, %flag%
DllCall("RegisterShellHookWindow", "Ptr", A_ScriptHwnd)
OnMessage(DllCall("RegisterWindowMessage", "Str", "ShellHook"), "ShellEvent")
ShellEvent(wParam, lParam) {
DetectHiddenWindows, On
if !WinExist("HostProcessName")
ExitApp
}
)
s:=add "`n" s "`nExitApp"
s:=RegExReplace(s, "HostProcessName", "ahk_pid "DllCall("GetCurrentProcessId"))
exec := ComObjCreate("WScript.Shell").Exec(A_AhkPath " /ErrorStdOut /f *")
exec.StdIn.Write(s)
exec.StdIn.Close()
}
影子内置的有剪贴板功能,最好集成到一起
后续可能看情况整合一下,剪切板想做一个专门的增强gui的,强化一下让影子可以简单完成类似专业剪切板工具能做的事情,剪切板工具相当于是按了复制键后的结果,而这个工具是聚焦于按键的这个时刻,在这个时刻呼出的工具
新影子有望了,恭喜成功接下重担!加油
Error: Call to nonexistent function. Specifically: class_EasyIni(“DoubleCopyMenu.ini”,初始) class_EasyIni这个好像没有定义,无法运行
老哥下个月从我发的影子全量包用把…你没easyini库把
或者你看一下我发布的影子H的文章上面有敢死队(测试)版本影子的gitee链接.我这个改了好多地方只拿几段代码用不了..