关于窗口句柄的问题,请大家帮忙看看,谢谢!

xpyilin 2003-04-10 09:33:51
最近作了一些PowerPoint的文件,由于PPT文件不能生成可执行文件,于是打包后用MS的ppviewer32.exe来调用,但是在程序中执行SheelExecute(NULL,"open","ppview32.exe",NULL,NULL,SW_SHOWNORMAL)后,再调用FindWindow()竟然找不到ppview32的句柄了,利用资源管理器查看可以看到ppview32的窗口标题为:Microsoft PowerPoint Viewer,但是 hwnd = FindWindow(NULL,"Microsoft PowerPoint Viewer")的结果为NULL,GetLastError()返回为126,"找不到指定的模块",我想不明白为什么利用标题找不到句柄?特向大家求教,如果大家机器上有PowerPoint,请大家也试一下,看看能不能找到.
...全文
65 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
ybluo 2003-04-16
  • 打赏
  • 举报
回复
刚打开的那个对话框窗体不是顶级窗体,所以不能用FindWindow(NULL,"Microsoft PowerPoint Viewer")找到。
pp616 2003-04-11
  • 打赏
  • 举报
回复
呵呵。没powerpoint
myy 2003-04-11
  • 打赏
  • 举报
回复
不巧,俺的PowerPoint不能打包,没装。 :(
xpyilin 2003-04-11
  • 打赏
  • 举报
回复
to: ljiang()
执行ppview32.exe后,我不打开任何文件,此时标题依然是"Microsoft PowerPoint Viewer",但是我依然找不到句柄.

to: all
我搜索了一下,ppview32这个程序就在MS-OFFICE安装路径的\office\xlators路径下,如果大家的机器有,可以试试,呵呵.研究一下,总有好处的.
ljianq 2003-04-11
  • 打赏
  • 举报
回复
真如ybluo()所说。
由于你打开文件后,ppviewer32.exe的标题已经改变,再利用
FindWiondow(NULL,"")是找不到的;
只有他的窗口类是不变的,所以请利用FindWiondow(screenClass,NULL);
xc2927 2003-04-11
  • 打赏
  • 举报
回复
学习,
ybluo 2003-04-11
  • 打赏
  • 举报
回复
用spy++
ybluo 2003-04-11
  • 打赏
  • 举报
回复
ppview32.exe主窗体的类名是screenClass,

HWND hwnd=FindWindow("screenClass" ,NULL);
Behard 2003-04-11
  • 打赏
  • 举报
回复
用 WinSight32 看看
或者使用 EnumWindows 查看
sprewellkobe 2003-04-11
  • 打赏
  • 举报
回复
FindWindow(NULL,"Microsoft PowerPoint Viewer")
的第一个参数应该为类名

这样吧,你用GetForgroudWindow看看,我原来调IE时就这么抓HANDLE
的,因为一开始,肯定是激活窗口
Behard 2003-04-11
  • 打赏
  • 举报
回复
没有 ppviewer32.exe
xpyilin 2003-04-11
  • 打赏
  • 举报
回复
ppview32不是powerpoint的进程名,是一种用来播放powerpoint文件的程序名,我现在想用这个程序播放Powerpoint文件.有关FindWindow()第一个参数可以为NULL,这是毫无疑问的.我还是不知道为什么找不到句柄,我用MS的附带的程序"计算器"来作试验,很顺利就找到了.:(.....
ybluo 2003-04-11
  • 打赏
  • 举报
回复
ppview32.exe 是PowerPoint的进程名吗?我机器上的好像是POWERPNT.EXE啊?
hitbabiq 2003-04-11
  • 打赏
  • 举报
回复
第一个参数能为NULL吗?帮助上只是说第二个参数可以为NULL
penu 2003-04-11
  • 打赏
  • 举报
回复
你做个试验:

从桌面窗口开始枚举所有窗体,看是否能抓得到。
xpyilin 2003-04-11
  • 打赏
  • 举报
回复
TO : penu
用spy++看到的也是"Microsoft PowerPoint Viewer"阿,所以我才很困惑.

可惜不能贴图,不然贴出来给大家研究.
penu 2003-04-11
  • 打赏
  • 举报
回复
TO:香蕉

你用spy++看看它的Caption是什么?

在标题栏显示的不一定是。QQ的登录窗口就是一例:标题栏显示“QQ用户登录”,其实该窗体是没有Caption的。

13,825

社区成员

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

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