标题:请教可以检测到Messagebox()在运行吗?
只看楼主
csyx
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:29
帖 子:484
专家分:1827
注 册:2018-3-13
得分:0 
以下是引用wxzd123在2023-5-14 10:55:56的发言:
通过另一台机器端口发信息去检测

你这是要远程控制吗,上位机控制下位机?
那么首先你得完成上/下位机之间通讯的事儿,兴许这才是关键,下位机上需要有一个监听或服务进程,在收到/检测到指令后,查找并关闭 MessageBox 对话框
查找对话框窗口的方法我上面已提过不再赘述,找到后给窗口 PostMessage WM_CLOSE 消息即可
2023-05-14 13:11
wxzd123
Rank: 2
等 级:论坛游民
帖 子:238
专家分:43
注 册:2012-9-6
得分:0 
谢谢各位老师
表单WindowType = 0  有书写控件MSINKAUT.InkPicture.1
对话框代码在类里
If Messagebox("您是否把书写结果更新?",36,"信息提示")<>6
可以显示在表单前,当
If Messagebox("您是否把书写结果更新?",36,"信息提示",5000)<>6  时就在表单后面。
2023-05-14 14:46
csyx
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:29
帖 子:484
专家分:1827
注 册:2018-3-13
得分:0 
36+4096 试试
2023-05-14 14:49
wxzd123
Rank: 2
等 级:论坛游民
帖 子:238
专家分:43
注 册:2012-9-6
得分:0 
回复 13楼 csyx
您好,谢谢,显示前面了,说明这没有这个
2023-05-14 14:58
kangss
Rank: 4
等 级:贵宾
威 望:10
帖 子:138
专家分:237
注 册:2014-6-12
得分:4 
以下是引用wxzd123在2023-5-14 14:46:05的发言:

谢谢各位老师
表单WindowType = 0  有书写控件MSINKAUT.InkPicture.1
对话框代码在类里
If Messagebox("您是否把书写结果更新?",36,"信息提示")<>6
可以显示在表单前,当
If Messagebox("您是否把书写结果更新?",36,"信息提示",5000)<>6  时就在表单后面。

你说的这个现象:messagebox 跑到 表单后面,模式表单跑到另外一个模式表单的后面,导致无法操作的现象,极大的可能是:exe 隐藏了 _screen 导致的副作用,也可能是 MS 的BUG
有人遇到相同的现象,我也遇到了:https://bbs.

_screen 隐藏后的模式表单一般不要超过3层,否则就容易出现这个现象:第3层模式表单跑到第2层后面,messagebox 跑到第三层表单后面
2023-05-14 15:22
kangss
Rank: 4
等 级:贵宾
威 望:10
帖 子:138
专家分:237
注 册:2014-6-12
得分:0 
刚刚说的这个现象:+4096,也就是 +0x1000 同样无效。
按理说,任何时候 messagebox 都不应该在表单的后面。
2023-05-14 15:25
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
上传表单上来看看

坚守VFP最后的阵地
2023-05-14 15:45
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
问题解决了吗?
没看明是什么问题
2023-05-14 17:28
wxzd123
Rank: 2
等 级:论坛游民
帖 子:238
专家分:43
注 册:2012-9-6
得分:0 
+4096后对话框就在表单前面了,至于为什么不知道
2023-05-14 19:22
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
以下是引用wxzd123在2023-5-14 19:22:02的发言:

+4096后对话框就在表单前面了,至于为什么不知道

4096(0x1000)消息对话框具有WS_EX_TOPMOST样式
试试:
8192(0x2000)禁用当前线程的所有顶层窗口
2023-05-14 20:45



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-512194-1-1.html




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

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