ccrun呢?如何能用程序A启动程序B,然后在程序A中控制程序B的窗口,有个例子,但不好使你们看看
ccrun呢?怎么能用程序A启动程序B,然后在程序A中控制程序B的窗口,有个例子,但不好使你们看看 - C++ Builder / Windows SDK/API
//---------------------------------------
#include <windows.h>
#pragma hdrstop
//---------------------------------------
#pragma argsused
static HWND s_hWnd = 0;
DWORD MYPID;//你的进程号
DWORD dwReavThreadId,dwSendThreadId;
DWORD dwProcessId;
DWORD dwResult;
STARTUPINFO lpStartupInfo;
PROCESS_INFORMATION lpProcessInfo;
BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lParam)
{
DWORD processID = 0;
GetWindowThreadProcessId(hwnd, &processID); // Windows api !!!!!
if (MYPID==processID )
{
s_hWnd = hwnd; // OK, found.
MessageBox(NULL, "t ", "d ",NULL);
return false;
}
}
HWND FindProcessWindow(DWORD processID)
{
s_hWnd = 0;
EnumWindows((int (__stdcall *)())EnumWindowsProc, processID);
return s_hWnd;
}
WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
ZeroMemory( &lpStartupInfo, sizeof(lpStartupInfo) );
lpStartupInfo.cb = sizeof(lpStartupInfo);
ZeroMemory( &lpProcessInfo, sizeof(lpProcessInfo) );
char he[255]= "regedit.exe ";
GetStartupInfo(&lpStartupInfo);
lpStartupInfo.cb = sizeof(lpStartupInfo);
lpStartupInfo.wShowWindow = SW_SHOW;
if(CreateProcess(NULL,he,NULL,NULL,FALSE,0,NULL,NULL,&lpStartupInfo,&lpProcessInfo)==0)
{
return -1;
}
//---------------------------------------
#include <windows.h>
#pragma hdrstop
//---------------------------------------
#pragma argsused
static HWND s_hWnd = 0;
DWORD MYPID;//你的进程号
DWORD dwReavThreadId,dwSendThreadId;
DWORD dwProcessId;
DWORD dwResult;
STARTUPINFO lpStartupInfo;
PROCESS_INFORMATION lpProcessInfo;
BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lParam)
{
DWORD processID = 0;
GetWindowThreadProcessId(hwnd, &processID); // Windows api !!!!!
if (MYPID==processID )
{
s_hWnd = hwnd; // OK, found.
MessageBox(NULL, "t ", "d ",NULL);
return false;
}
}
HWND FindProcessWindow(DWORD processID)
{
s_hWnd = 0;
EnumWindows((int (__stdcall *)())EnumWindowsProc, processID);
return s_hWnd;
}
WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
ZeroMemory( &lpStartupInfo, sizeof(lpStartupInfo) );
lpStartupInfo.cb = sizeof(lpStartupInfo);
ZeroMemory( &lpProcessInfo, sizeof(lpProcessInfo) );
char he[255]= "regedit.exe ";
GetStartupInfo(&lpStartupInfo);
lpStartupInfo.cb = sizeof(lpStartupInfo);
lpStartupInfo.wShowWindow = SW_SHOW;
if(CreateProcess(NULL,he,NULL,NULL,FALSE,0,NULL,NULL,&lpStartupInfo,&lpProcessInfo)==0)
{
return -1;
}