有一个第三方程序,是.net开发的,已经知道主窗口句柄Hwnd。
那个程序如果手工正常点那个[X]关闭或者点退出按钮,或者点标题栏菜单的关闭,都会弹出一个提示“程序关闭”
但不知道为什么只要一执行
ShowWindow(Hwnd,SW_HIDE);
程序就直接退出了?连那个“程序关闭”的提示都不会出现。而且进程列表里也确实不没有这个程序的进程了。开发那个第三方程序的人让我看了他的代码,确实没有什么特别的地方。请大家帮我分析一下,什么原因可能导致ShowWindow(Hwnd,SW_HIDE);程序退出呢?
我只是想把那个窗体给隐藏起来而已。
那个程序如果手工正常点那个[X]关闭或者点退出按钮,或者点标题栏菜单的关闭,都会弹出一个提示“程序关闭”
但不知道为什么只要一执行
ShowWindow(Hwnd,SW_HIDE);
程序就直接退出了?连那个“程序关闭”的提示都不会出现。而且进程列表里也确实不没有这个程序的进程了。开发那个第三方程序的人让我看了他的代码,确实没有什么特别的地方。请大家帮我分析一下,什么原因可能导致ShowWindow(Hwnd,SW_HIDE);程序退出呢?
我只是想把那个窗体给隐藏起来而已。
解决方案 »
- 异常信息无法在窗体内显示出来?【 】
- delphi中dbgrid默认双击能修改里面的内容,怎么关闭这个功能
- 高分求助procedure的问题
- 关于stringgrid控件的问题?
- 镜像问题!高分相赠!!!!!!!!!!!!!!!!!!!!!!!
- 为什么总出错?
- 一DELPHI写的GIS GPS定位系统(包含部分硬件)和某市电子地图价值几何?
- 诚聘DELPHI高手——一个在深圳科技园的公司
- delphi做截获api好象不是很顺手,我想学汇编,用汇编+delphi做病毒防火墙,大家觉得能做不?
- 很简单的问题,望能解答!
- 藏拙导航上线了,全动态(包括首页),目前收录网址达100多万个!
- 用Firebird ISQL生成数据库的问题
开个玩笑,比较同意消息异常,用.net的开发工具写这个没问题吧?
放个timer在一定时间后this.Show();后看看就知道了
隐藏之前进程里能看到对应进程,ShowWindow(Hwnd,SW_HIDE);之后连进程都看不到了。
ShowWindow(Hwnd,SW_HIDE);好像不至于隐藏进程吧?
怎样才能让那个窗口看起来好像压根儿就没出现过呢?
我只能告诉你,虽然用了ShowWindowASync,但那个程序该退出还是退出。根本没解决问题。
另外,以后我发的帖子你最好都不要再做任何回答。相信CSDN上少你一个,并不会有什么变化。
我以前发的帖子,你也从来都是只知道要分,难道这分对你就那么重要?能换成RMB?
之所以那个程序我hide的时候,程序进程会退出,好像是因为
它是弹出的对话框窗口,虽然表面看起来是一个普通窗口。
弹出后面跟了一句:Application.exit frmPre.ShowDialog()
Application.Exit()然后在frmPre的后续操作中,又打开了一个frmMain。其实上,它是两个程序,A程序先打开B程序,然后关闭自己。
但表面看起来是一个程序。原因找到了,所以我对这个窗口就不能Hide了。
剩下的问题就是我不太理解,为什么这个窗口hide会导致Application.Exit()代码被执行。
但这个可能就属于.net代码执行机制的问题了。感兴趣的可以回答下。
有的人分不高,但并不能说明他水平低。