Inno Setup如何在任务栏菜单中隐藏"pin"命令

fra*_*r81 3 windows winapi inno-setup

当我通过Inno Setup构建.exe时,我运行.exe,当我右键单击我的应用程序的任务栏按钮时,我只能看到一个项目"关闭窗口".当我通过Visual Studio或Windows中的任何其他程序构建exe时,当我单击鼠标右键时,我可以看到有3个项目.

  1. 我的应用程序的名称.
  2. 将此程序固定到任务栏.
  3. 关闭窗口.

我的问题是Inno Setup如何做到这一点,我如何以编程方式实现它?

Bar*_*ani 6

发件人:
如何阻止用户将我的程序固定到任务栏?
https://blogs.msdn.microsoft.com/oldnewthing/20110601-00/?p=10523

使用System.AppUserModel.PreventPinning直接在程序中:

#include <Windows.h>
#include <shellapi.h>
#include <propsys.h>
#include <propkey.h>

HRESULT MarkWindowAsUnpinnable(HWND hwnd)
{
    IPropertyStore *pps;
    HRESULT hr = SHGetPropertyStoreForWindow(hwnd, IID_PPV_ARGS(&pps));
    if(SUCCEEDED(hr)) 
    {
        PROPVARIANT var;
        var.vt = VT_BOOL;
        var.boolVal = VARIANT_TRUE;
        hr = pps->SetValue(PKEY_AppUserModel_PreventPinning, var);
        pps->Release();
    }
    return hr;
}

...
case WM_CREATE:
    MarkWindowAsUnpinnable(hwnd);
    ...
Run Code Online (Sandbox Code Playgroud)