要将用Delphi编写的应用程序添加到Windows应用商店,我必须禁用内部更新机制.例如,通过商店政策10.2.5禁止"检查更新"等内容
所以,我IsRunningAsUwp()在DesktopBridgeHelpers项目代码中找到了C#helper函数.我的计划是将该帮助器转换为Delphi代码,但是packageFullName这里的字符串总是空的,即使我通过DesktopBridge转换的项目运行应用程序:
[DllImport("kernel32.dll", CharSet = CharSet.Unicode, SetLastError = true)]
static extern int GetCurrentPackageFullName(ref int packageFullNameLength, StringBuilder packageFullName);
public bool IsRunningAsUwp()
{
if (IsWindows7OrLower)
{
return false;
}
else
{
int length = 0;
StringBuilder sb = new StringBuilder(0);
int result = GetCurrentPackageFullName(ref length, sb);
sb = new StringBuilder(length);
result = GetCurrentPackageFullName(ref length, sb);
return result != APPMODEL_ERROR_NO_PACKAGE;
}
}
Run Code Online (Sandbox Code Playgroud)
我当前(不工作)的Delphi转换如下所示:
function GetCurrentPackageFullName(out Length: DWORD; out fullName: String): DWORD; stdcall; external kernel32 delayed; …Run Code Online (Sandbox Code Playgroud)