亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

C#中CreateProcessAsUser服務調用的方法是什么

c#
小億
125
2023-09-15 14:14:49
欄目: 編程語言

在C#中,可以使用Advapi32.CreateProcessAsUser方法來調用CreateProcessAsUser服務。

以下是使用Advapi32.CreateProcessAsUser方法調用CreateProcessAsUser服務的示例代碼:

using System;
using System.Diagnostics;
using System.Runtime.InteropServices;
class Program
{
static void Main(string[] args)
{
// 獲取當前用戶的訪問令牌
IntPtr currentUserToken = WindowsIdentity.GetCurrent().Token;
// 創建進程信息結構體
ProcessInformation processInfo = new ProcessInformation();
// 填充啟動信息結構體
StartupInfo startupInfo = new StartupInfo();
startupInfo.cb = Marshal.SizeOf(startupInfo);
// 調用CreateProcessAsUser方法創建進程
bool success = Advapi32.CreateProcessAsUser(
currentUserToken,   // 當前用戶的訪問令牌
"C:\\Path\\To\\Program.exe",   // 要啟動的程序的路徑
null,   // 命令行參數
IntPtr.Zero,   // 進程安全屬性
IntPtr.Zero,   // 線程安全屬性
false,   // 是否繼承句柄
0,   // 創建標志
IntPtr.Zero,   // 環境變量
null,   // 當前目錄
ref startupInfo,   // 啟動信息結構體
out processInfo   // 進程信息結構體
);
// 檢查進程創建是否成功
if (success)
{
Console.WriteLine("進程創建成功");
}
else
{
Console.WriteLine("進程創建失敗,錯誤碼:" + Marshal.GetLastWin32Error());
}
}
}
// 定義啟動信息結構體
[StructLayout(LayoutKind.Sequential)]
public struct StartupInfo
{
public int cb;
public string lpReserved;
public string lpDesktop;
public string lpTitle;
public int dwX;
public int dwY;
public int dwXSize;
public int dwYSize;
public int dwXCountChars;
public int dwYCountChars;
public int dwFillAttribute;
public int dwFlags;
public short wShowWindow;
public short cbReserved2;
public IntPtr lpReserved2;
public IntPtr hStdInput;
public IntPtr hStdOutput;
public IntPtr hStdError;
}
// 定義進程信息結構體
[StructLayout(LayoutKind.Sequential)]
public struct ProcessInformation
{
public IntPtr hProcess;
public IntPtr hThread;
public int dwProcessId;
public int dwThreadId;
}
// 定義Advapi32類用來訪問Advapi32.dll中的方法
public class Advapi32
{
// 導入Advapi32.dll中的CreateProcessAsUser方法
[DllImport("advapi32.dll", SetLastError = true, CharSet = CharSet.Unicode)]
public static extern bool CreateProcessAsUser(
IntPtr hToken,
string lpApplicationName,
string lpCommandLine,
IntPtr lpProcessAttributes,
IntPtr lpThreadAttributes,
bool bInheritHandles,
int dwCreationFlags,
IntPtr lpEnvironment,
string lpCurrentDirectory,
ref StartupInfo lpStartupInfo,
out ProcessInformation lpProcessInformation
);
}

請注意,為了成功調用CreateProcessAsUser服務,你需要擁有適當的權限。

0
万盛区| 犍为县| 门头沟区| 巫溪县| 衡东县| 大埔区| 黄梅县| 旌德县| 思茅市| 宝应县| 蓝山县| 宁陕县| 沁水县| 宜章县| 仁怀市| 旬邑县| 秦皇岛市| 澄迈县| 吉木乃县| 灵丘县| 闻喜县| 舒兰市| 三明市| 吉林省| 乌什县| 伊通| 邻水| 抚远县| 和林格尔县| 静乐县| 综艺| 罗甸县| 崇义县| 红桥区| 盈江县| 会同县| 江阴市| 双江| 泗洪县| 曲靖市| 姜堰市|