问了一个月了,没人会,关于createprocess,来者有分!我的代码如下,shan.exe在windows\system32目录下面
STARTUPINFO si={sizeof(si)};
PROCESS_INFORMATION pi;
TCHAR szCommandLine[] = TEXT("shan");
CreateProcess(NULL,szCommandLine,NULL,NULL,FALSE,0,NULL,NULL,&si,&pi);1, windows用户登陆后,如果在一个exe文件中button事件加入上面代码,可以运行起来shan.exe.
2, 假如在windows用户登陆前,会执行一个dll文件,而我把上面的代码放入这个dll中,我发现CreateProcess返回为真,但是shan.exe却运行不起来.请问这是为什么啊???
STARTUPINFO si={sizeof(si)};
PROCESS_INFORMATION pi;
TCHAR szCommandLine[] = TEXT("shan");
CreateProcess(NULL,szCommandLine,NULL,NULL,FALSE,0,NULL,NULL,&si,&pi);1, windows用户登陆后,如果在一个exe文件中button事件加入上面代码,可以运行起来shan.exe.
2, 假如在windows用户登陆前,会执行一个dll文件,而我把上面的代码放入这个dll中,我发现CreateProcess返回为真,但是shan.exe却运行不起来.请问这是为什么啊???
解决方案 »
- 如何取得光标当前位置的句柄
- 请问有谁知道GPRS拨号上网,需要用到的NAT是啥类型的?有知道的不?
- 使用Dialogic板卡开发语音呼叫中心的问题
- 谁有Libtiff的安装文件呀
- 怎么在msdn.microsoft.com查找VC6.0的相关知识呢?
- 如何自画HICON,然后设置到系统托盘
- ADO调用存储过程(ORACLE),用CommandText的问题
- 900分, 谁有工资管理系统的源代码?用VC++做的,发到[email protected]好吗???高分!!
- 关于串口调试的问题???--在线等待
- 求助,如何在vc中添加CDatabase类的对象?
- 如何将CTreeCtrl的滚动条替换为自绘制的滚动条?
- 那位大哥有<Visual C++ 6.0 数据库高级编程>的源代码,能给我发一份吗,谢谢了
HWINSTA hwinsta;
hwinsta = OpenWindowStation("winsta0", FALSE,
WINSTA_ACCESSCLIPBOARD |
WINSTA_ACCESSGLOBALATOMS |
WINSTA_CREATEDESKTOP |
WINSTA_ENUMDESKTOPS |
WINSTA_ENUMERATE |
WINSTA_EXITWINDOWS |
WINSTA_READATTRIBUTES |
WINSTA_READSCREEN |
WINSTA_WRITEATTRIBUTES);
hdesk = OpenDesktop("default", 0, FALSE,
DESKTOP_CREATEMENU |
DESKTOP_CREATEWINDOW |
DESKTOP_ENUMERATE |
DESKTOP_HOOKCONTROL |
DESKTOP_JOURNALPLAYBACK |
DESKTOP_JOURNALRECORD |
DESKTOP_READOBJECTS |
DESKTOP_SWITCHDESKTOP |
DESKTOP_WRITEOBJECTS);
STARTUPINFO si;
PROCESS_INFORMATION pi;
ZeroMemory ((PVOID)&si, sizeof(si)); si.cb = sizeof (si);
si.lpDesktop = _T("default"); CreateProcess (NULL, // image name
"shan", // command line
NULL, // process security attributes
NULL, // thread security attributes
TRUE, // inherit handles
CREATE_DEFAULT_ERROR_MODE|CREATE_SEPARATE_WOW_VDM,
NULL, // environment block
NULL, // current directory
&sui, // STARTUPINFO
&pi); // PROCESS_INFORMATION
}
s.Format("%d",D);
MessageBox(s);
请通过GetLastError() 看看出错原因
人气没有以前火了,牛人也不出现了~~
偶也是一新手,无奈啊
WIDOWS用户登陆后,WINDOWS将加载路径,SYSTEM是一个默认路径,所以你在其他EXE中调用这个SHAN的时候,系统会自动在SYSTEM下找到SHAN,但是你在登陆前调用SHAN,系统可能还没有加载SYSTEM路径