请教:知道程序的句柄,怎样得到其主窗体的句柄?

leonatcs 2005-09-12 09:19:40
rt!
...全文
213 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
HeavenMonkey 2005-09-16
  • 打赏
  • 举报
回复
楼猪的问题太强啦,我建议大家推举他为小斑竹,如何?同意的接分!
alloutoflove 2005-09-15
  • 打赏
  • 举报
回复
明白啦...
如果纯粹要从程序进程中取得主窗口, 我想可以用调试程序(比如ollydbg)知道这个程序的主窗体Handle在其进程中存放的位置,然后通过进程ID打开进程, 再然后用ReadProcessMemory读取该处的值...
bachelor2004 2005-09-14
  • 打赏
  • 举报
回复
不好意思,没看明白。一般是底层调用的时候用到句柄,如窗体,文件等。但是程序的句柄,没有具体用过。不知道和窗口句柄有什么联系。。。
leonatcs 2005-09-14
  • 打赏
  • 举报
回复
我要编程序运行另一个程序,然后在那个程序的主窗体内模拟几个键按下的效果(比如按下空格键1.5秒)。

楼上的倒不失为一个办法,虽然有一点麻烦。
我本来也采用了类似的方法:枚举所有窗体,获得类名(classname)和标题(title),然后用FindWindow(classname,title)。但是我想有了程序的句柄,会不会有什么简单的方法获得他的主窗体句柄。

so,没有必要吗?
binbin 2005-09-14
  • 打赏
  • 举报
回复
楼上的,楼主的问题跟你说的是两回事.
alloutoflove 2005-09-14
  • 打赏
  • 举报
回复
楼主想做什么???

可以用EnumWindows枚举系统中的窗口,然后GetWindowThreadProcessId得到每个窗口对应的进程ID, 再然后与你的进程句柄通过GetProcessId得到的ID对比......

but, 有必要吗?
leonatcs 2005-09-14
  • 打赏
  • 举报
回复
多谢各位的讨论,这二者之间至少有意义上的关系吧,难道知道进程的句柄,对获得主窗体的句柄没有任何帮助吗?
那主窗体的句柄应该如何获得?难道只能FindWindow?
bachelor2004 2005-09-13
  • 打赏
  • 举报
回复
程序的句柄可能是用:Application->Handle;得到
窗体的句柄可能是用:FormName->Handle;得到
COKING 2005-09-13
  • 打赏
  • 举报
回复
主窗体 ??
ccrun.com 2005-09-13
  • 打赏
  • 举报
回复
>>> 程序的句柄

是个啥东东?
ccrun.com 2005-09-13
  • 打赏
  • 举报
回复
楼主所说的两个句柄,恐怕没有什么直接的联系吧。
binbin 2005-09-13
  • 打赏
  • 举报
回复
程序的主窗口好象没有什么特别的特征吧.
leonatcs 2005-09-13
  • 打赏
  • 举报
回复
比如用CreateProcess()或者ShellExecuteEx()等函数打开一个notepad,返回了notepad程序的句柄,
可是怎样得到notepad主窗体的句柄呢?(就是那个标题为“未命名-记事本”的窗体)

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧