小编Ans*_*nse的帖子

如何在Delphi中检测通用Windows平台(UWP)

要将用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)

c# delphi kernel32 desktop-bridge

3
推荐指数
1
解决办法
445
查看次数

标签 统计

c# ×1

delphi ×1

desktop-bridge ×1

kernel32 ×1