C++ MFC 进程控制和系统控制示例
// GetInfo.cpp : Defines the class behaviors for the application. //
#include "stdafx.h" #include "GetInfo.h" #include "GetInfoDlg.h" #include <windows.h> // for process and system control
#ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = FILE; #endif
///////////////////////////////////////////////////////////////////////////// // CGetInfoApp
BEGIN_MESSAGE_MAP(CGetInfoApp, CWinApp) //{{AFX_MSG_MAP(CGetInfoApp) // NOTE - the ClassWizard will add and remove mapping macros here. // DO NOT EDIT what you see in these blocks of generated code! //}}AFX_MSG ON_COMMAND(ID_HELP, CWinApp::OnHelp) END_MESSAGE_MAP()
///////////////////////////////////////////////////////////////////////////// // CGetInfoApp construction
CGetInfoApp::CGetInfoApp() { // TODO: add construction code here, // Place all significant initialization in InitInstance }
///////////////////////////////////////////////////////////////////////////// // The one and only CGetInfoApp object
CGetInfoApp theApp;
///////////////////////////////////////////////////////////////////////////// // CGetInfoApp initialization
BOOL CGetInfoApp::InitInstance() { if (!AfxSocketInit()) { AfxMessageBox(IDP_SOCKETS_INIT_FAILED); return FALSE; }
AfxEnableControlContainer();
// Standard initialization
// If you are not using these features and wish to reduce the size
// of your final executable, you should remove from the following
// the specific initialization routines you do not need.
#ifdef _AFXDLL Enable3dControls(); // Call this when using MFC in a shared DLL #else Enable3dControlsStatic(); // Call this when linking to MFC statically #endif
CGetInfoDlg dlg;
m_pMainWnd = &dlg;
int nResponse = dlg.DoModal();
if (nResponse == IDOK)
{
// TODO: Place code here to handle when the dialog is
// dismissed with OK
}
else if (nResponse == IDCANCEL)
{
// TODO: Place code here to handle when the dialog is
// dismissed with Cancel
}
// Since the dialog has been closed, return FALSE so that we exit the
// application, rather than start the application's message pump.
// Process control
STARTUPINFO si;
PROCESS_INFORMATION pi;
ZeroMemory(&si, sizeof(si));
si.cb = sizeof(si);
ZeroMemory(&pi, sizeof(pi));
LPCTSTR szCommand = _T("notepad.exe");
if (CreateProcess(NULL, (LPTSTR)szCommand, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi))
{
// process created successfully
// you can do some actions here if you want
}
else
{
// failed to create process
// you can handle the error here
}
// System control
SetSystemTime(&systemTime); // assuming systemTime is initialized somewhere
return FALSE;
}
原文地址: https://www.cveoy.top/t/topic/obF2 著作权归作者所有。请勿转载和采集!