• 大小: 3KB
    文件类型: .cpp
    金币: 1
    下载: 0 次
    发布日期: 2021-05-24
  • 语言: C/C++
  • 标签: mfc  嵌入  外部程序  

资源简介

关键实现代码。不是完整的demo。主要利用CreateEvent、StartProcess、MoveWindow等函数。

资源截图

代码片段和文件信息

static HANDLE g_hEvent=NULL;		//event handle



static HANDLE handle;//process handle
static HWND apphwnd;//window handle

/*************Global functions for hosting******************/
//Function to enumerate all windows.
int CALLBACK EnumWindowsProc(HWND hwnd LPARAM param)
{
DWORD pID;
DWORD TpID = GetWindowThreadProcessId(hwnd &pID);//get process id
if (TpID == (DWORD)param)
{
apphwnd=hwnd;//hwnd is the window handle
SetEvent(g_hEvent);
return false;
}
ResetEvent(g_hEvent);
return true;
}


//Functio to start a orocess and return the process handle
HANDLE StartProcess(LPCTSTR program LPCTSTR args)
{

HANDLE hProcess = NULL;
PROCESS_INFORMATION processInfo;
STARTUPINFO startupInfo;
::ZeroMemory(&startupInfo sizeof(startupInfo));
startupInfo.cb = sizeof(startupInfo);
startupInfo.dwFlags=STARTF_USESHOWWINDOW;
startupInfo.wShowWindow=SW_HIDE;
if(::CreateProcess(program (LPTSTR)args 
NULL  // process security
NULL  // thread security
FALSE // no inheritance
0     // no startup flags
NULL  // no special environment
NULL  // default startup directory
&startupInfo
&processInfo))
{ /* success */
WaitForInputIdle(processInfo.hProcess-1);
::EnumWindows(&EnumWindowsProc processInfo.dwThreadId);//Ite

评论

共有 条评论