1. 获取当前进程的句柄。
2. 使用 GetPackageId 函数获取 Package Id。
以下是一个示例代码:
#include <windows.h>
#include <appmodel.h>
int main() {
HANDLE hProcess = GetCurrentProcess();
PACKAGE_ID packageId;
HRESULT result = GetPackageId(hProcess, &packageId);
if (SUCCEEDED(result)) {
wprintf(L"Current Package Id: Name=%s, Version=%s\n",
packageId.name,
packageId.version);
// 没有需要释放的内存,因为 name 和 version 都是指向内部缓冲区的指针
} else {
// 处理错误
wprintf(L"Error: 0x%x\n", result);
}
return 0;
}
这里使用了 GetPackageId 函数,而不是 GetCurrentPackageId。确保在调用任何 Win32 API 函数之前,您已经正确链接到相应的库。请注意,PACKAGE_ID 结构包含 name 和 version 成员,它们都是指向内部缓冲区的指针,并且不需要额外的内存释放。
转载请注明出处:http://www.zyzy.cn/article/detail/23830/Win32 API/Appmodel.h/GetCurrentPackageId