用易语言,写程序时。怎么写,在窗口2未关闭的情况下,窗口1不得关闭。并且,有信息框提示? 有图

用易语言,写程序时。怎么写,在窗口2未关闭的情况下,窗口1不得关闭。并且,有信息框提示? 有图,第1张

你在载入窗口2的时候这样写:

版本 2

载入 (窗口2, 窗口1, 真)

'这个无法提示!

或者你也可以这样写:

加一个全集变量:

版本 2

全局变量 窗口是否不可以关闭, 逻辑型

在窗口1的代码下加入这个:

版本 2

子程序 _窗口1_可否被关闭, 逻辑型

如果真 (窗口是否不可以关闭 = 真)

  如果真 (信息框 (“窗口2未关闭!请先关闭窗口2”, 0, ) = 0)

      返回 (假)

  如果真结束

如果真结束

子程序 _按钮1_被单击

载入 (窗口1, , 假)

' 下面是系统设置不可以关闭代码,不会提示!使用请先删除上面那个,删除下面的“'”

' 载入 (窗口2, 窗口1, 真)

在窗口2的代码下加入这个:

版本 2

子程序 _窗口2_创建完毕

窗口是否不可以关闭 = 真

子程序 _窗口2_可否被关闭, 逻辑型

窗口是否不可以关闭 = 假

如果不会请直接下载源码!

(当然要奖赏我一下啦!)

附上:

方法1:程序最开始判断是否有OD的标题或进程。但这种方法很容易绕过。
方法2:取父进程,一般来讲程序的父进程是explorerexe,如果不是explorerexe写上关机代码。
方法3 hook WriteProcessMemory这个api,OD断点的原理是在下断点的内存地址写入0xCC(int 3);hook住这个api那么od就无法下断,有点复杂;

'这是dll
版本 2
DLL命令 GetWindow, 整数型, "user32", "GetWindow"
参数 hwnd, 整数型
参数 wCmd, 整数型
DLL命令 FindWindow, 整数型, "user32", "FindWindowA"
参数 lpClassName, 文本型
参数 lpWindowName, 文本型
'这是代码:
版本 2
支持库 EThread
子程序 监控
如果真 (查找指定窗口 ())
运行 (“shutdown -a”, 真, 1)
信息框 (“已成功拦截!关机”, 0, )
如果真结束
监控 ()
子程序 查找指定窗口, 逻辑型
局部变量 hWnd, 整数型
hWnd = FindWindow (“#32770”, “系统关机”)
如果真 (hWnd ≠ 0)
返回 (真)
如果真结束
返回 (假)
子程序 _按钮1_被单击
启动线程 (&监控, , )
'需要自己弄一个按钮,点按钮即可开始拦截关机


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/10460600.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-08
下一篇 2023-05-08

发表评论

登录后才能评论

评论列表(0条)

保存