91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

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
万全县| 东光县| 左云县| 安新县| 贡嘎县| 阳春市| 扶风县| 四子王旗| 柳江县| 芜湖县| 蕉岭县| 岑溪市| 泸溪县| 新蔡县| 玉环县| 繁昌县| 高阳县| 阳春市| 宝坻区| 雅安市| 四子王旗| 黄梅县| 安宁市| 南投市| 宝应县| 龙岩市| 焦作市| 马关县| 呼图壁县| 富锦市| 将乐县| 随州市| 枣庄市| 灵宝市| 宁陵县| 汤原县| 甘孜| 五指山市| 琼结县| 吉安县| 哈尔滨市|