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         }
  • 相关阅读:
    常用快捷键知识汇总
    按照给定区间产生指定数目的随机数—C#
    OC (3) 类 与 类方法 (便利构造器) iOS
    OC (2) 基础知识分析对象,创建类,自定义初始化方法 iOS
    OC (1) 类和对象:ObjectiveC概述、面向对象编程、类和对象、实例变量操作 iOS
    OC (6) Block、数组高级:Block语法、Block使用、Block实现数组排序 iOS
    OC (7) 类的扩展 iOS
    OC (5) 字典、集、数组排序:字典类、集合类、数组数组排序、字典、集合的快速遍历、数组排序 iOS
    OC (4)NSString、NSArray、NSNumber、使用苹果帮助文档、值对象 iOS
    jquery 里 $(this)的用法
  • 原文地址:https://www.cnblogs.com/flying_bat/p/906439.html
Copyright © 2011-2022 走看看