为了账号安全,请及时绑定邮箱和手机立即绑定

如果我想找到这个程序的句柄 该怎么做?重命名不行啊?

如果我想找到这个程序的句柄 该怎么做?重命名不行啊?

喵喵时光机 2022-07-15 11:07:35
现在我想找一个应用程序的句柄,当然这个程序是一个游戏模拟器,我不懂他的类名。就剩那个窗口名了,可以这个窗口名要怎么弄,可以自己修改他的窗口名吗。这个窗口名 叫做 忆当年之GBAの时光 可以后面的 2%是会变的 有时候是102% 。如果我想找到这个程序的句柄 该怎么做?重命名不行啊。我试着打private static extern IntPtr FindWindow(string lpClassName, string lpWindowName);IntPtr hwndCalc = FindWindow(null, "忆当年之GBAの时光 ");if(hwndCalc != IntPtr.Zero){SetForegroundWindow(hwndCalc); //设为当前活动窗口}这个是失败的,等我改成了 IntPtr hwndCalc = FindWindow(null, "忆当年之GBAの时光 88%");就行了。这该怎么办啊
查看完整描述

2 回答

?
慕虎7371278

TA贡献1802条经验 获得超4个赞

第一步执行EnumWindowsProc API函数
第二步,在EnumWindowsProc的回调函数里执行GetWindowThreadProcessId API函数
获得Window句柄对应的ProcessID
然后判断ProcessID是否和这个游戏的ProcessID一致,就可以拿到窗体句柄了

查看完整回答
反对 回复 2022-07-18
?
慕慕森

TA贡献1856条经验 获得超17个赞

就用窗口类名这个很方便的,用vs自带的spy++可以很方便的检测到窗口类名.

查看完整回答
反对 回复 2022-07-18
  • 2 回答
  • 0 关注
  • 117 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号