在一窗口中,用WINEXEC执行一可执行文件,如何使该可执行文件一直处于前台?(100分)

  • 主题发起人 主题发起人 jxzt-cj
  • 开始时间 开始时间
什么意思,应该是可执行文件的主窗口一直处于前台吧?
 
不能用 WinEXEC函数的
有一条 WinAPI 可以实现你的要求的
 
用WINEXEC执行一可执行文件,无法使该可执行文件一直处于前台,
用进程来控制执行文件,能比较细致的控制该文件,应该可以达到你
的要求。主要的函数:createprocess(),改函数可以建立进程,
但该函数的参数较多,可以参考MSDN。
 
不管是什么函数都不能保证你启动的程序一直在前台,
如果你启动的程序要一直前台,那要在你启动的那个程序里面写代码才行
 
use shellexecute() instead of winexec.
then get the HWND of application you have just run, maybe by getforegroundwindow().
then use setwindowpos(hwnd, HWND_TOPMOST,x,y,cx,cy, SWP_NOMOVE )
~~~~~~~~~~~~
maybe you should check every several seconds to make sure that it is
still the active window
 
用CreateProcess建立进程,
得到该进程的主窗口的句柄,可以用FindWindow API
然后用setwindowpos将其设置为总在最前面
 
不可能总在前台,只能总在前面
 
前面诸位:

真有办法让你的窗口永远在最上面么?据我的理解,应该是无法做到这
一点。

无论你用什么样的方式,你的窗口总会在一些情况下被别的窗口盖住。

在WINDOWS系统中,唯一永远不被盖住的窗口只有一个:鼠标窗口。它也
是据说最可靠的窗口:当其他的系统程序都CRASH了,但鼠标窗口却通常
是有效的。

可以结束问题了。
 
你是不是让主程序等到WinExec调用程序结束,如果这样,我有个Function
 
多人接受答案了。
 
后退
顶部