zoukankan      html  css  js  c++  java
  • 在服务程序中创建用户进程的方法

     1 HWND deskton;
     2     DWORD desktonID;
     3     HANDLE hProc;
     4      
     5     deskton = FindWindow("Progman""Program Manager");
     6     GetWindowThreadProcessId(deskton,&desktonID);
     7     hProc = OpenProcess(PROCESS_QUERY_INFORMATION,FALSE,desktonID);
     8     if ( hProc == NULL )
     9     {
    10         return 0;
    11     }
    12     if ( !OpenProcessToken(hProc,TOKEN_DUPLICATE,&hToken) )
    13     {
    14         return 0;
    15     }
    16     if ( DuplicateTokenEx(hToken,TOKEN_ALL_ACCESS,NULL,SecurityImpersonation,TokenPrimary,&hTokenNew ))
    17     {
    18         memset(&startinfo, 0sizeof(STARTUPINFO));
    19         startinfo.cb = sizeof(STARTUPINFO);
    20         startinfo.dwFlags = STARTF_USESHOWWINDOW;
    21         startinfo.wShowWindow = SW_SHOWNORMAL;
    22     } 
    23     CreateProcessAsUser( hTokenNew,
    24                                         "C:\WINDOWS\system32\notepad.exe",
    25                                           NULL,
    26                                           NULL,
    27                                           NULL,
    28                                           FALSE,
    29                                           CREATE_DEFAULT_ERROR_MODE,   
    30                           NULL,
    31                                           NULL,
    32                                          &startinfo,&procinfo);
    33 
    方法2:
     1         if(::LogonUser(L"user", L"Domain", L"password", LOGON32_LOGON_INTERACTIVE, NULL, &hToken))
     2         {
     3             BOOL bResult = ::CreateProcessAsUser(hToken, L"C:\\WINDOWS\\system32\\notepad.exe", NULL,
     4                 NULL, NULL, FALSE, CREATE_DEFAULT_ERROR_MODE, NULL, NULL, &startinfo, &procinfo);
     5             if(bResult)
     6             {
     7                 ODS(L"OK");
     8             }
     9             else
    10             {
    11                 ODS(L"NO");
    12             }
    13             return bResult;
    14         }
  • 相关阅读:
    ScheduledExecutorService改为一次性延时任务
    layer弹框倒计时结束后执行
    pom.xml如何使用本地库的jar-jar包上传到远程库-jar包安装到本地库
    Windows+WinRAR 压缩后备份文件夹
    java DES加密
    JAVA RSA加密公私钥
    Microsoft 语音服务异常 java.lang.UnsatisfiedLinkError: com.micros oft.cognitiveservices.speech.internal.carbon_javaJNI.swig_module_init()
    Java 线程池
    jsp页面导入excel文件的步骤及配置
    正则表达式校验时间格式(2018-01-02)
  • 原文地址:https://www.cnblogs.com/flying_bat/p/906439.html
Copyright © 2011-2022 走看看