首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CreateProcessWithLogonW和mmc.exe

CreateProcessWithLogonW和mmc.exe
EN

Stack Overflow用户
提问于 2009-09-28 06:34:49
回答 1查看 3K关注 0票数 1

我写了一个程序,它应该像RunAs一样工作。它工作得很好,但我有一个问题。如果我想运行例如compmgmt.msc,那么我应该运行mmc.exe和compmgmt.msc作为它的参数。“计算机管理”将会打开,但不是在我想要运行它的用户下。它将在登录的用户名下运行。有没有人能告诉我为什么会这样,我怎样才能纠正它?下面是我的代码:

代码语言:javascript
复制
void createproc(
         wchar_t * user, 
         wchar_t * domain, 
         wchar_t * pass, 
         wchar_t * applicationname)
{
    int errorcode; 
    char cmd[Buf_Size];

    STARTUPINFO StartInfo;
    PROCESS_INFORMATION ProcInfo;
    memset(&ProcInfo, 0, sizeof(ProcInfo));
    memset(&StartInfo, 0 , sizeof(StartInfo)); 
    StartInfo.cb = sizeof(StartInfo); 
    StartInfo.wShowWindow = SW_HIDE; 

    int bFuncRetn =
     CreateProcessWithLogonW
     (
        user,
        domain,
        pass,
        LOGON_NETCREDENTIALS_ONLY,
        L"C:\\Windows\\System32\\mmc.exe", //applicationname,
        L" compmgmt.msc",
        CREATE_UNICODE_ENVIRONMENT,
        NULL,
        NULL,
        (LPSTARTUPINFOW)&StartInfo,
        &ProcInfo
     );

    errorcode = GetLastError();

    if ( bFuncRetn == 0 ) 
    {
       CloseHandle(ProcInfo.hProcess); 
       CloseHandle(ProcInfo.hThread); 
       printf("\nGetLastError :: %d CreateProcessWithLogonW Failed!", 
           errorcode);
       printf("\nFor more information type :: Net Helpmsg %d", 
           errorcode);
       getch();
       exit(1);
    }

    CloseHandle(ProcInfo.hProcess); 
    CloseHandle(ProcInfo.hThread); 

}//createproc

谢谢你的帮忙!

kampi

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-09-28 16:41:59

你看过在线的MSDN文档了吗?

http://msdn.microsoft.com/en-us/library/ms682431(VS.85).aspx

请看一下示例代码。看起来很简单。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1485697

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档