import fsys.lnk
import inet.url
// 打开小程序,视频号
function openXiaoChenXu(){
var path,param = ..fsys.lnk.search("WeChat.exe");
..process.execute(path,param);
sleep(2000);
}
import win.ui;
import console;
user32 := raw.loadDll("user32.dll")
// 定义Windows API
var SetWinEventHook = user32.api("SetWinEventHook", "int(int eventMin, int eventMax, ptr hmod, ptr callback, int pid, int tid, int flags)")
var UnhookWinEvent = user32.api("UnhookWinEvent", "int(ptr hHook)")
// 获取目标窗口的进程ID
var targetHwnd = win.find( "WeChatMainWndForPC", "微信" )
..console.dump(targetHwnd)
var tid,pid = win.getThreadProcessId(targetHwnd)
..console.dump(tid,pid)
// 基本事件
_EVENT_OBJECT_CREATE = 0x8000
_EVENT_OBJECT_DESTROY = 0x8001
_EVENT_OBJECT_SHOW = 0x8002
_EVENT_OBJECT_HIDE = 0x8003
_EVENT_OBJECT_REORDER = 0x8004
// 焦点相关
_EVENT_OBJECT_FOCUS = 0x8005
_EVENT_OBJECT_SELECTION = 0x8006
_EVENT_OBJECT_SELECTIONADD = 0x8007
_EVENT_OBJECT_SELECTIONREMOVE = 0x8008
_EVENT_OBJECT_SELECTIONWITHIN = 0x8009
// 属性变更
_EVENT_OBJECT_STATECHANGE = 0x800A
_EVENT_OBJECT_LOCATIONCHANGE = 0x800B
_EVENT_OBJECT_NAMECHANGE = 0x800C
_EVENT_OBJECT_DESCRIPTIONCHANGE = 0x800D
_EVENT_OBJECT_VALUECHANGE = 0x800E
_EVENT_OBJECT_PARENTCHANGE = 0x800F
_EVENT_OBJECT_HELPCHANGE = 0x8010
_EVENT_OBJECT_DEFACTIONCHANGE = 0x8011
_EVENT_OBJECT_ACCELERATORCHANGE = 0x8012
WINEVENT_OUTOFCONTEXT = 0x0000
import winex.accObject;
// 定义事件回调
var eventCallback = raw.tostdcall(
function(hHook, event, hwnd, idObject, idChild, tid, time) {
..console.log(..string.format("0x%X", event))
try {
// 获取IAccessible对象
var acc = winex.accObject.fromWindow(hwnd,,idObject)
if !acc return
// 获取变更后的名称
console.log("名称变化检测到:")
console.log("窗口句柄:", hwnd, "对象ID:", idObject,"子对象ID:", idChild)
console.log("新名称:", acc.roleText(),acc.name(),acc.value(),acc.stateText())
console.log("-------------------")
} catch(e) {
console.log("处理错误:", e.message)
}
}, "void(int hHook,int event,int hwnd,int idObject,int idChild,int tid,int time)"
)
// 安装事件钩子
var hHook = SetWinEventHook(
_EVENT_OBJECT_CREATE,
_EVENT_OBJECT_ACCELERATORCHANGE,
,
eventCallback,
pid, // 指定目标进程
tid,
WINEVENT_OUTOFCONTEXT
)
// 保持脚本运行
win.loopMessage()
// 清理钩子(通常需要注册窗口关闭事件)
UnhookWinEvent(hHook)
msaa监听窗口消息事件
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 创建一个组件ev组件 import { EventEmitter } from "events"; export ...
- 先创建一个Button,然后给他加上自动触发的代码 有哪些Handler可以去这里查 API 为了验证是否有调到点...
- 使用 window 对象的 open() 方法可以打开一个新窗口。用法如下: 参数列表如下: URL:可选字符串,...