知道一个软件的路径,怎么样用CreateProcess()打开这个软件。能给出具体一点的代码吗?
解决方案 »
- ENUMWINDOWS列举窗口,怎么出来一堆的窗口啊?
- 请问,怎样用DAO给access数据库设置密码?
- 帮忙看一下这个程序
- UDP通讯问题,请教各位
- 如何使窗口一启动就不可见?我创建的是对话框.多谢
- 是用什么方法能够改变系统鼠标!
- MFC打印问题:如何在进入打印循环之前,得到纸的大小?
- 兄弟们,又来撒分啦!小问题
- 请问怎么样分配得到一块比较的的内存空间?比如10M左右。
- WINAPI、CALLBACK什么意思?
- 小弟初学COM,向高手请教! 自动化的COM组件为什么没有实现类工厂,AddRef(),QueryInterface(),Release()
- 100分 用wininet编写HTTP程序,无论用多少个线程,但wininet一次只让五个线程调用
PROCESS_INFORMATION pi;
STARTUPINFO si;
si.cb=sizeof(si);
si.lpReserved=NULL;
si.lpDesktop=NULL;
si.lpTitle=NULL;
si.cbReserved2=0;
si.lpReserved2=NULL;
si.dwFlags=STARTF_USEPOSITION;
si.dwX=0;
si.dwY=0;
CreateProcess("c:\\windows\\notepad.exe",NULL,NULL,NULL,FALSE,
CREATE_DEFAULT_ERROR_MODE,NULL,"c:\\windows",&si,&pi);
参看MSDN:
BOOL CreateProcess(
LPCTSTR lpApplicationName,
// pointer to name of executable module
LPTSTR lpCommandLine, // pointer to command line string
LPSECURITY_ATTRIBUTES lpProcessAttributes, // process security attributes
LPSECURITY_ATTRIBUTES lpThreadAttributes, // thread security attributes
BOOL bInheritHandles, // handle inheritance flag
DWORD dwCreationFlags, // creation flags
LPVOID lpEnvironment, // pointer to new environment block
LPCTSTR lpCurrentDirectory, // pointer to current directory name
LPSTARTUPINFO lpStartupInfo, // pointer to STARTUPINFO
LPPROCESS_INFORMATION lpProcessInformation // pointer to PROCESS_INFORMATION
);
typedef struct _STARTUPINFO { // si
DWORD cb;
LPTSTR lpReserved;
LPTSTR lpDesktop;
LPTSTR lpTitle;
DWORD dwX;
DWORD dwY;
DWORD dwXSize;
DWORD dwYSize;
DWORD dwXCountChars;
DWORD dwYCountChars;
DWORD dwFillAttribute;
DWORD dwFlags;
WORD wShowWindow;
WORD cbReserved2;
LPBYTE lpReserved2;
HANDLE hStdInput;
HANDLE hStdOutput;
HANDLE hStdError;
} STARTUPINFO, *LPSTARTUPINFO;
//pi由系统传回
typedef struct _PROCESS_INFORMATION { // pi
HANDLE hProcess;
HANDLE hThread;
DWORD dwProcessId;
DWORD dwThreadId;
} PROCESS_INFORMATION;