| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1685 人关注过本帖
标题:请教可以检测到Messagebox()在运行吗?
只看楼主 加入收藏
csyx
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:火星
等 级:版主
威 望:37
帖 子:707
专家分:2833
注 册:2018-3-13
收藏
得分:0 
以下是引用wxzd123在2023-5-14 10:55:56的发言:
通过另一台机器端口发信息去检测

你这是要远程控制吗,上位机控制下位机?
那么首先你得完成上/下位机之间通讯的事儿,兴许这才是关键,下位机上需要有一个监听或服务进程,在收到/检测到指令后,查找并关闭 MessageBox 对话框
查找对话框窗口的方法我上面已提过不再赘述,找到后给窗口 PostMessage WM_CLOSE 消息即可

这家伙很懒,啥也没留下
2023-05-14 13:11
wxzd123
Rank: 2
等 级:论坛游民
帖 子:393
专家分:69
注 册: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
来 自:火星
等 级:版主
威 望:37
帖 子:707
专家分:2833
注 册:2018-3-13
收藏
得分:0 
36+4096 试试

这家伙很懒,啥也没留下
2023-05-14 14:49
wxzd123
Rank: 2
等 级:论坛游民
帖 子:393
专家分:69
注 册:2012-9-6
收藏
得分:0 
回复 13楼 csyx
您好,谢谢,显示前面了,说明这没有这个
2023-05-14 14:58
kangss
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:14
帖 子:272
专家分:604
注 册: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: 7Rank: 7Rank: 7
等 级:贵宾
威 望:14
帖 子:272
专家分:604
注 册:2014-6-12
收藏
得分:0 
刚刚说的这个现象:+4096,也就是 +0x1000 同样无效。
按理说,任何时候 messagebox 都不应该在表单的后面。
2023-05-14 15:25
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
上传表单上来看看

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

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

4096(0x1000)消息对话框具有WS_EX_TOPMOST样式
试试:
8192(0x2000)禁用当前线程的所有顶层窗口
2023-05-14 20:45
快速回复:请教可以检测到Messagebox()在运行吗?
数据加载中...
 
   



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

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