Windows phone 8.1 如何在Windows Phone 8.1应用商店应用程序中获取应用程序进程ID

Windows phone 8.1 如何在Windows Phone 8.1应用商店应用程序中获取应用程序进程ID,windows-phone-8.1,Windows Phone 8.1,我正在开发一个Windows Phone 8.1应用程序,需要从代码中获取应用程序进程ID。我可以使用任何API吗?您可以使用后面跟着DuplicateHandle(以及后来的CloseHandle)但我很好奇您需要它做什么。。。在商店应用程序中,您无法使用它,因此这可能无法完成您的场景。终于找到了解决方案 桌面应用程序和电话应用程序的Dll不同,但函数名相同 当尝试在WIn Phone 8.1中导入Kernal.dll库并使用p/invoke代码时,将引发异常DllNotFoundExcept

我正在开发一个Windows Phone 8.1应用程序,需要从代码中获取应用程序进程ID。我可以使用任何API吗?

您可以使用后面跟着
DuplicateHandle
(以及后来的
CloseHandle
)但我很好奇您需要它做什么。。。在商店应用程序中,您无法使用它,因此这可能无法完成您的场景。

终于找到了解决方案

桌面应用程序和电话应用程序的Dll不同,但函数名相同

当尝试在WIn Phone 8.1中导入Kernal.dll库并使用p/invoke代码时,将引发异常DllNotFoundException。在Win Phone 8.1中改用“api-ms-Win-core-processthreads-l1-1-1.dll”

要在Win Phone 8.1中获取进程ID:

1) 创建到WIN32 lib的绑定:

[DllImport("api-ms-win-core-processthreads-l1-1-1.dll", CharSet = CharSet.Unicode, ExactSpelling = false, PreserveSig = true)]
    internal static extern uint GetCurrentProcessId();
2) 调用函数:

  uint id= GetCurrentProcessId();
有关Win Phone 8支持的完整API集,请参阅MSDN链接:

谢谢您的回复。我想在转储到文件的日志语句中打印进程ID。我试图从Ui代码中定义的页面调用函数:GetCurrentProcess(),但其抛出编译错误。(无法找到此类API)。系统中没有进程类。也没有诊断。WP 8.1中是否不支持API?如果您可以提供一个代码片段示例,它可以从一个页面中访问GETCurrPurrices()API。它是Win32 API,因此您需要编写C++包装器或使用P/inCKE(更容易搜索Web而不是要求在那里进行采样)。但是,即使在日志文件中,您将如何处理它?我尝试使用“[DllImport(“kernel32.dll”,CharSet=CharSet.Unicode,SetLastError=true)]内部静态外部IntPtr GetCurrentProcess();”在我的UI类中,但是当试图从代码中访问GetCurrentProcess()时,它抛出了DllNotFoundException,ie找不到Kernal32.dll。在WinRT组件中尝试了相同的操作,但引发了相同的异常。获得了解决方案:在api-ms-win-core-processthreads-l1-1-1.dll库中使用GetCurrentprocessId(),而不是使用kernal32.dll。