VC程序的三种执行外部程序好虚方法:
WinExec,ShellExecute,CreateProcess
如果你是控制台程序(DOS黑屏命令行),那么据我所知,应该都没办法隐藏窗口。
这三个函数都有隐藏虚袜返窗口的选项,但只针对窗口程序,控制台程序不行,你试试吧,呵呵。
像你这种情况,有几个办法建议:
将代码加入工程,应该是最简单的差饥
将a.exe做成a.dll,功能调用库,也可以
将a.exe的功能通过简单的窗口程序实现,这样无论外部调用还是内部控制,窗口都能隐藏
将a.exe做成系统服务service程序,这个是后台执行程序最合理的方式。
EnableWindow(hwnd,TRUE)或前念者看看
bool CTest::EnumWin()
{
HWND hHWWnd = FindWindow( NULL, "桐悔返我的窗口" )
if( hHWWnd == NULL )
{ AfxMessageBox("Faild")
return false}
else{
CString strT
strT.Format("hWnd: %X",hHWWnd )
AfxMessageBox( strT )
m_hHWWnd = hHWWnd }
EnumChildWindows( m_hHWWnd , (WNDENUMPROC)EnumChildProc, (LPARAM)NULL)
return true
}
BOOL CALLBACK EnumChildProc( HWND hwnd, LPARAM lParam)
{
if (hwnd)
{
//这里可以调局饥用getclassname来的到控件类名,然后分别处理。。。
//。。。
char chText[MAX_PATH]
ZeroMemory( chText, MAX_PATH )
GetWindowText( hWnd, chText, MAX_PATH )
//...
return TRUE
}
return FALSE
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)