急问:有什么办法阻止form和msgbox不被拦截???
frmMsg.show vbmodal和msgbox "abc "
有的人去掉了对frmMsg.show的调用,msgbox能不能,我不清楚。
有什么办法阻止form和msgbox不被拦截???
[解决办法]
你是不是说防止你的form被其他程序找到后关闭啊!通常他们都是找到窗口的标题才找到句柄然后关闭的。所以你将窗口的标题文本做成随机的就行了。再用API重绘一个标题栏,这样可以起点作用了。
[解决办法]
没有句柄应该是不可能的吧,windows就是依靠这些句柄来管理窗口的啊,hwnd在窗口每次创建时都是不同的,所以一般来讲都是先确定文本才找到hwnd的。如果你的文本不固定,那么也就不太好找了。GetForegroundWindow怎么能肯定就是你的窗口而不是其他窗口呢?
也许我根本就没明白你要做什么!
[解决办法]
创建没有句柄的窗口,微软没有公布,也许只有操作系统内部才有。我们都是微软的用户,凡是基于Windows系统开发的应用软件窗口统统都有句柄,只要有句柄就有可能被诸如木马这样的程序干掉。其他程序要拦截,也只有从句柄和窗口标题以及程序的行为特征这三方面入手,不会直接拦截代码。有的窗口是利用Windows消息创建的,而消息也是可以拦截的,Windows消息是固定的,有好几百条,常用的有400多条。
[解决办法]
当然能找到,就是确定的问题。如果某程序要不让你的程序弹出窗口那你的程序功能不就失去了?
如果只是不允许弹出模态窗口,模态窗口有什么标志?
没有研究过,如果能够判断某个窗口是否是模态台窗口哪你就别使用模态窗口。
想一个其他的方法。
[解决办法]
“ 我的窗体没有标题,上面只有一幅背景图(窗体的picture属性)和一个标签。它里面有一些代码。这样的窗体能够被找到吗?”
当然能够找到。用API函数EnumChildWindows、FindWindows就能够找到。不过你放心,只要你的程序不是病毒程序、不是操作系统服务程序,没人会拦截!
[解决办法]
没窗口栏的话,通过启动程序的主程序名字还能找到