| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 981 人关注过本帖, 1 人收藏
标题:请教吹版主关于API函数 openprocess
只看楼主 加入收藏
kmyz_yyl
Rank: 2
等 级:论坛游民
帖 子:61
专家分:28
注 册:2012-11-13
收藏
得分:0 
但是过滤出来的S (EXCEL文档名),用FINDWINDOW 死活得不到这个S 的句柄,请问吹版主这又是怎么回事,如何解决?
如果能用FINDWINDOW得到过滤出的EXCEL文档句柄,那么就可以随心关闭打开的任意EXCEL文档了。

[此贴子已经被作者于2023-7-7 22:22编辑过]

2023-07-07 22:07
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10545
专家分:42974
注 册:2014-5-20
收藏
得分:0 
回复 11楼 kmyz_yyl
先观察一下s是不是你想要的
=getwindowtext(hwndv,s,80)
试改为:
=getwindowtext(hwndv,@s,80)
2023-07-08 06:39
easyppt
Rank: 6Rank: 6
等 级:侠之大者
威 望:1
帖 子:242
专家分:455
注 册:2021-11-24
收藏
得分:0 
借LZ的宝贴,我想再提一下我之前发的帖子:就是VFP如何获取非VFP打开的EXCEL对象并加以控制,始终没解决。

2023-07-08 08:22
csyx
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:火星
等 级:版主
威 望:37
帖 子:641
专家分:2476
注 册:2018-3-13
收藏
得分:0 
以下是引用easyppt在2023-7-8 08:22:30的发言:
VFP如何获取非VFP打开的EXCEL对象并加以控制,始终没解决。

给你指条路
1. 遍历所有的 XLMAIN 窗口
2. 对找到的每个 XLMAIN 窗口 > 子窗口 XLDESK > 再找 book 子窗口(类名为 EXCEL7)
3. 对找到的 book 子窗口, AccessibleObjectFromWindow 转为 book 对象, book.Application 即为 Excel对象

这家伙很懒,啥也没留下
2023-07-08 09:28
kmyz_yyl
Rank: 2
等 级:论坛游民
帖 子:61
专家分:28
注 册:2012-11-13
收藏
得分:0 
回复 12楼 吹水佬
得到了句柄,但 PostMessage( m.hWnd, WM_CLOSE, 0, 0)    SendMessage( m.hWnd, WM_CLOSE, 0, 0) 都提示“缺少操作数”,请吹版主和各位高手指点一下,谢谢!

之前的代码我也是用FINDWINDOW得到的句柄,然后用postmessage关闭的EXCEL文档,但今天虽然也获得了句柄却出错误提示

[此贴子已经被作者于2023-7-8 22:09编辑过]

2023-07-08 22:05
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10545
专家分:42974
注 册:2014-5-20
收藏
得分:0 
回复 15楼 kmyz_yyl
给代码测试好了
2023-07-08 22:47
kmyz_yyl
Rank: 2
等 级:论坛游民
帖 子:61
专家分:28
注 册:2012-11-13
收藏
得分:0 
回复 16楼 吹水佬
我说了,因为代码是测试用,

[此贴子已经被作者于2023-7-9 15:31编辑过]

2023-07-08 23:26
kmyz_yyl
Rank: 2
等 级:论坛游民
帖 子:61
专家分:28
注 册:2012-11-13
收藏
得分:0 
不知什么原因,突然之间就可以删除了,真是奇怪。


[此贴子已经被作者于2023-7-8 23:35编辑过]

2023-07-08 23:34
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10545
专家分:42974
注 册:2014-5-20
收藏
得分:0 
给出的代码感觉思路有点乱,如:
        len_= GetClassName(hWnd, @buf, 256)
        hMain=FindWindow(buf,null)
hWnd是某个窗口,取这个窗口的类名,再按这个类名找窗口。如果这个“类名”当前窗口序列中只有一个,这时hWnd==hMain,否则就有可能hWnd!=hMain,也就是说hWnd与hMain有可能不是同属一个窗口体系、两者是没有关系的窗口。取得hWnd就可以了,无需再去绕圈。

另,查找到主窗口为何还要找子窗口,关闭主窗口应该会同时释放子窗口。

简单点遍历一下窗口就应该看到有想要有窗口
2023-07-09 10:43
快速回复:请教吹版主关于API函数 openprocess
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015963 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved