【发布时间】:2012-11-02 16:47:16
【问题描述】:
您好,我对编程完全陌生。请有人帮助我。
我正在尝试从服务启动进程。 我需要通过提示用户输入管理员凭据来启动新进程。
我尝试使用CreateProcessWithLogonW()。
我是否使用了正确的功能。 我尝试将输入用户名、密码、域作为 localhost。我为需要启动的 .exe 文件提供了完整的路径。
这是一段代码。
CreateProcessWithLogonW(L"Administrator",
L"localhost",
L"password",
0,
NULL,
L"c:\myupdates\myapp.exe",
NORMAL_PRIORITY_CLASS | CREATE_CONSOLE,
NULL,
NULL,
&si,
&pi);
Si.cb = sizeof(si);
Si.lpDesktop = L"winsta0\\default";
但这个过程从未开始。你们能告诉我我做错了什么吗? 我需要做些什么来提示用户输入管理员的凭据而不是对其进行硬编码。
【问题讨论】:
-
GetLastError()说什么? -
您做错的一件事是在调用
CreateProcessWithLogonW后分配给si结构。你应该先这样做。 -
是我,还是正确使用 Windows API
CreateProcessWithLogin()和“我对编程完全陌生”似乎有点令人不安...... -
在进行此调用之前,我正在分配 si 结构。此功能是否提示用户输入管理员凭据
-
您是否检查了您正在调用的函数的documentation?它对管理员提示有什么看法?
标签: c++ windows winapi windows-7 windows-services