我写个测试程序执行以下代码:
nRet = ::WinExec("C:\\Program Files\\ACD Systems\\ACDSee\\5.0\\ACDSee5.exe", SW_SHOW);
发现ACDSee不能执行起来。而用ShellExecute可以执行起来。
但如果把以上代码在服务中执行,则ACDSee立刻被启动。是由于权限的问题吗?
我不希望通过服务来执行WinExec(那样会导致执行起来的ACDSee具备系统权限),也不想用ShellExecute(由于我的程序是个拦截程序,会使我陷入死循环),我该如何通过函数执行WinExec?
或者通过CreateProcess,如何设置参数,达到执行ACDSee的目的?谢谢
nRet = ::WinExec("C:\\Program Files\\ACD Systems\\ACDSee\\5.0\\ACDSee5.exe", SW_SHOW);
发现ACDSee不能执行起来。而用ShellExecute可以执行起来。
但如果把以上代码在服务中执行,则ACDSee立刻被启动。是由于权限的问题吗?
我不希望通过服务来执行WinExec(那样会导致执行起来的ACDSee具备系统权限),也不想用ShellExecute(由于我的程序是个拦截程序,会使我陷入死循环),我该如何通过函数执行WinExec?
或者通过CreateProcess,如何设置参数,达到执行ACDSee的目的?谢谢
解决方案 »
- OpenSSL 做本地验证
- 请教,关于如何实现大幅JPG图片的显示,请指教!!
- 急急!请高手帮我看看我学习的代码中的问题--屏幕不能刷新
- 90分求程序源代码
- 请问各位高手,怎么写setup那样的程序啊???
- 如何在VC6中为控件增加事件?如何在VC7中为控件增加属性?
- 关于workspace 中external dependencies 和 project 链接的加入
- 34岁的人开始学VC,不知道有没有好的结果?
- 请问各位大侠一个关于模板的问题
- 请问有关CFormView中控件的问题
- 高分求救!如何安装USB驱动?不够分我再开贴。
- 工程为什么有的类的方法我看不到它的实现?只看到它的声明?怎样看它的实现代码?
PROCESS_INFORMATION ProcessInfo;
StartupInfo.cb = sizeof(StartupInfo);
StartupInfo.dwFlags = STARTF_USESHOWWINDOW;
StartupInfo.wShowWindow = SW_SHOWNOACTIVATE ;
GetStartupInfo(&StartupInfo); BOOL fRet=::CreateProcess(NULL,
"c:\\winnt\\notepad.exe d:\\11.txt",
NULL,
NULL,
FALSE,
CREATE_NEW_CONSOLE | NORMAL_PRIORITY_CLASS,
NULL,
NULL,
&StartupInfo,
&ProcessInfo);