使用.Net Framework,可以在此处实现:How to get the current ProcessID?。
但是如何在UWP中获得当前的PorcessId? System.Diagnostics甚至没有Process类。
答案 0 :(得分:5)
using Windows.System.Diagnostics;
var processId = ProcessDiagnosticInfo.GetForCurrentProcess().ProcessId;
答案 1 :(得分:0)
由于UWP允许使用win32 api GetCurrentProcessId,因此可以从c#中调用它。我以前是从c ++ / winrt uwp项目中调用它的。
using System.Runtime.InteropServices;
class public xxx{
[DllImport("Kernel32.dll", EntryPoint = "GetCurrentProcessId")]
static extern UInt32 GetCurrentProcessId();
public void xxx(){
var processId = GetCurrentProcessId();
Debug.WriteLine("my process Id:"+ processId.ToString());
}
}
Ps1:
Windows.System.Diagnostics.ProcessDiagnosticInfo.GetForCurrentProcess()
有时在我的uwp c#项目中崩溃(并非总是崩溃)。获得“尝试读取或写入受保护的内存。这通常表明其他内存已损坏。”
Ps2:
System.Diagnostics.Process.GetCurrentProcess()
在我的uwp c#项目中不存在。 https://docs.microsoft.com/en-us/dotnet/api/system.diagnostics.process.getcurrentprocess?view=netframework-4.8