595076941@qq.com

设置激活或者隐藏 MasterSeeker 窗口的快捷键为 F3-2022年10月17日

 

 

; 此脚本从此行开始
;/*
;===========================================
; 设置激活或者隐藏 MasterSeeker 窗口的快捷键为 F3
;   (F3键位于Esc键右边第3个键)
;
; 脚本作者 : feishu cn
;
; 用法: (需要最新版本 AHK v1.1.31+)
; 1. 到MasterSeeker官方网站下载并安装MasterSeeker
; http://www.master-seeker.com/
; 2. 将本脚本保存为"MasterSeeker-F3.ahk"并复制到C:/Prog/MasterSeeker文件夹中
; 3. 使用 Maye 来设置 MasterSeeker-F3.ahk 的热键
;  https://www.lanzoux.com/b0bqwqjvg
;  https://blog.arae.cc/post/25830.html
;  https://github.com/25H/Maya/releases/
; 升级更新历史:
; 版本1.0 2022年2月24日 新建 创建此AutoHotkey脚本并测试通过F4热键功能
;
; 由于Everything的结果显示速度没有MasterSeeker快,所以改用MasterSeeker
; MasterSeeker能够在索引完成之前显示部分搜索结果,
; Everything不能在搜索完成之前显示搜索结果,
; MasterSeeker的最大缺点是需要依赖 .NET Framework 2.0 才能运行,
; MasterSeeker不像有些AutoHotkey或者Delphi编译的程序那样
; 无需依赖大量DLL文件或者运行库就可以直接运行。
;
; 由于AutoHotkey的Hotkey语句设置的热键必需在任务栏或者桌面进程激活时才有效,
; 所以请使用Maye来设置 MasterSeeker 的热键
; https://www.autoahk.com/archives/43181
; 我的腾讯QQ电子邮箱地址是  595076941@qq.com
;
; 我在批量搜索文件正文内容时会用到 http://www.likasoft.com/cn/ 出品的Archivarius 3000 (4.79)
; 我在批量搜索文件正文内容时也会用到 https://www.mythicsoft.com/ 出品的
; FileLocator Pro Version 2022 - Build 3341 付费零售专业版永久完整功能版
; 但是Archivarius 3000和FileLocator Pro这两款软件需要预先创建索引数据库文件才能实现高速全文搜索
; 有时候我只需根据文件名称搜索文件,无需搜索文件的正文内容,此时我会使用MasterSeeker来搜索文件,
; 对MasterSeeker的搜索结果按照文件大小排序的快捷键是 Ctrl + 3,
; MasterSeeker的最大优点是能够在索引完成之前显示一部分搜索结果, ; MasterSeeker的最大缺点是需要依赖 .NET Framework 2.0 才能运行 ;=========================================== ;*/ ;等待指定标题窗口出现 ; WinWait,MasterSeeker ahk_class MasterSeeker ahk_exe MasterSeeker.exe ; 运行 MasterSeeker 、激活搜索输入框并调整 MasterSeeker 的窗口位置 #SingleInstance,force loop,5 { DetectHiddenWindows,On Sleep,5 IfWinExist,QQ595076941_MasterSeeker ExitApp } Gui, Show, Hide,QQ595076941_MasterSeeker ; 强制自身以 ansi + 管理员权限 运行。 runwith("","ansi") #Persistent ; #NoTrayIcon DetectHiddenWindows,On SetTitleMatchMode,2 ActivateOrHideWindowHotkey_MasterSeeker() return ActivateOrHideWindowHotkey_MasterSeeker() { ;等待指定标题窗口出现 ; WinWait, MasterSeeker 1.5.1 by DxCK ahk_class WindowsForms10.Window.8.app.0.218f99c IfWinActive,MasterSeeker 1.5.1 by DxCK ahk_class WindowsForms10.Window.8.app.0.218f99c { WinMinimize,MasterSeeker 1.5.1 by DxCK ahk_class WindowsForms10.Window.8.app.0.218f99c ExitApp } else { IfWinNotExist,MasterSeeker 1.5.1 by DxCK ahk_class WindowsForms10.Window.8.app.0.218f99c { Run,C:\Prog\MasterSeeker\MasterSeeker.exe } ; Send,#{Right} ; WinMove,ahk_class 窗口类名,窗口文本,窗口左上角与屏幕上边沿的距离,窗口左上角与屏幕左边沿的距离,窗口左右宽度,窗口上下高度 loop,3 { WinActivate,MasterSeeker 1.5.1 by DxCK ahk_class WindowsForms10.Window.8.app.0.218f99c WinWaitActive,MasterSeeker 1.5.1 by DxCK ahk_class WindowsForms10.Window.8.app.0.218f99c,,5 ; 改变指定窗口的位置和/或大小. WinMove,MasterSeeker 1.5.1 by DxCK ahk_class WindowsForms10.Window.8.app.0.218f99c,,A_ScreenWidth/2,20,A_ScreenWidth/2-10,A_ScreenHeight-90 loop,9 { Sleep,10 ; 设置输入焦点到窗口的指定控件上. ControlFocus,Filename,MasterSeeker 1.5.1 by DxCK ahk_class WindowsForms10.Window.8.app.0.218f99c } } ExitApp } } ; 强制自身进程以 管理员权限 或 普通权限 或 ANSI 或 U32 或 U64 版本运行。 ; 例1: runwith("admin","u32") 强制自身以 u32 + 管理员权限 运行。 ; 例2: runwith("","ansi") 强制自身以 ansi 版本运行(权限不变)。 ; 例3: runwith("normal") 强制自身以 普通权限 运行(版本不变)。 RunWith(RunAsAdmin:="Default", ANSI_U32_U64:="Default") { ; 格式化预期的模式 switch, RunAsAdmin { case "Normal","Standard","No","0": RunAsAdmin:=0 case "Admin","Yes","1": RunAsAdmin:=1 case "default": RunAsAdmin:=A_IsAdmin default: RunAsAdmin:=A_IsAdmin } switch, ANSI_U32_U64 { case "A32","ANSI","A": ANSI_U32_U64:="AutoHotkeyA32.exe" case "U32","X32","32": ANSI_U32_U64:="AutoHotkeyU32.exe" case "U64","X64","64": ANSI_U32_U64:="AutoHotkeyU64.exe" case "default": ANSI_U32_U64:="AutoHotkey.exe" default: ANSI_U32_U64:="AutoHotkey.exe" } ; 获取传递给 “.ahk” 的用户参数(不是 /restart 之类传递给 “.exe” 的开关参数) for k, v in A_Args { if (RunAsAdmin=1) { ; 转义所有的引号与转义符号 v:=StrReplace(v, "\", "\\") v:=StrReplace(v, """", "\""") ; 无论参数中是否有空格,都给参数两边加上引号 ; Run 的内引号是 " ScriptParameters .= (ScriptParameters="") ? """" v """" : A_Space """" v """" } else { ; 转义所有的引号与转义符号 ; 注意要转义两次 Run 和 RunAs.exe v:=StrReplace(v, "\", "\\") v:=StrReplace(v, """", "\""") v:=StrReplace(v, "\", "\\") v:=StrReplace(v, """", "\""") ; 无论参数中是否有空格,都给参数两边加上引号 ; RunAs.exe 的内引号是 \" ScriptParameters .= (ScriptParameters="") ? "\""" v "\""" : A_Space "\""" v "\""" } } ; 判断当前 exe 是什么版本 if (!A_IsUnicode) RunningEXE:="AutoHotkeyA32.exe" else if (A_PtrSize=4) RunningEXE:="AutoHotkeyU32.exe" else if (A_PtrSize=8) RunningEXE:="AutoHotkeyU64.exe" ; 运行模式与预期相同,则直接返回。 ANSI_U32_U64="AutoHotkey.exe" 代表不对 ahk 版本做要求。 if (A_IsAdmin=RunAsAdmin and (ANSI_U32_U64="AutoHotkey.exe" or ANSI_U32_U64=RunningEXE)) return ; 如果当前已经是使用 /restart 参数重启的进程,则报错避免反复重启导致死循环。 else if (RegExMatch(DllCall("GetCommandLine", "str"), " /restart(?!\S)")) { 预期权限:=(RunAsAdmin=1) ? "管理员权限" : "普通权限" 当前权限:=(A_IsAdmin=1) ? "管理员权限" : "普通权限" ErrorMessage= (LTrim 预期使用: %ANSI_U32_U64% 当前使用: %RunningEXE% 预期权限: %预期权限% 当前权限: %当前权限% 程序即将退出。 ) MsgBox 0x40030, 运行状态与预期不一致, %ErrorMessage% ExitApp } else { ; 获取 AutoHotkey.exe 的路径 SplitPath, A_AhkPath, , Dir if (RunAsAdmin=0) { ; 强制普通权限运行 switch, A_IsCompiled { ; %A_ScriptFullPath% 必须加引号,否则含空格的路径会被截断。%ScriptParameters% 必须不加引号,因为构造时已经加了。 ; 工作目录不用单独指定,默认使用 A_WorkingDir 。 case, "1": Run, RunAs.exe /trustlevel:0x20000 "\"%A_ScriptFullPath%\" /restart %ScriptParameters%",, Hide default: Run, RunAs.exe /trustlevel:0x20000 "\"%Dir%\%ANSI_U32_U64%\" /restart \"%A_ScriptFullPath%\" %ScriptParameters%",, Hide } } else { ; 强制管理员权限运行 switch, A_IsCompiled { ; %A_ScriptFullPath% 必须加引号,否则含空格的路径会被截断。%ScriptParameters% 必须不加引号,因为构造时已经加了。 ; 工作目录不用单独指定,默认使用 A_WorkingDir 。 case, "1": Run, *RunAs "%A_ScriptFullPath%" /restart %ScriptParameters% default: Run, *RunAs "%Dir%\%ANSI_U32_U64%" /restart "%A_ScriptFullPath%" %ScriptParameters% } } ExitApp } } ; AutoHotkey热键有时候会失效,点击任务栏才恢复热键,所以请使用Maye来设置 MasterSeeker 的热键 ; https://www.autoahk.com/archives/43181 ; 我的腾讯QQ电子邮箱地址是 595076941@.qqcom ; 此脚本到此行结束

  

posted @ 2022-10-17 10:05  QQ595076941  阅读(81)  评论(0编辑  收藏  举报
595076941@qq.com