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         }
  • 相关阅读:
    Js获取URL中的QueryStirng字符串
    GridView分页操作
    c语言string的函数
    char *a 与char a[] 的区别
    htonl(),htons(),ntohl(),ntons()--大小端模式转换函数
    nfs 原理详解
    NFS和mount常用参数详解 本文目录
    网络安全过滤软件
    SNMP协议详解
    win7开启snmp服务
  • 原文地址:https://www.cnblogs.com/flying_bat/p/906439.html
Copyright © 2011-2022 走看看