簡體   English   中英

Inno Setup如何在任務欄菜單中隱藏“pin”命令

[英]How Inno Setup hides “pin” command in the Taskbar menu

當我通過Inno Setup構建.exe時,我運行.exe,當我右鍵單擊我的應用程序的任務欄按鈕時,我只能看到一個項目“關閉窗口”。 當我通過Visual Studio或Windows中的任何其他程序構建exe時,當我單擊鼠標右鍵時,我可以看到有3個項目。

  1. 我的應用程序的名稱。
  2. 將此程序固定到任務欄。
  3. 關閉窗口。

我的問題是Inno Setup如何做到這一點,我如何以編程方式實現它?

從:

直接在程序中使用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);
    ...

這可能與安裝程序的執行方式有關。

Inno Setup-made mysetup.exe (默認情況下)只是一個加載器,它將內部安裝程序提取到臨時文件夾並運行內部安裝程序。

Windows可能以某種方式啟發式地決定從一個臨時文件夾固定一個以這種方式執行的應用程序是沒有任何意義的。 所以它隱藏了選項。

請注意,如果在Inno Setup中禁用加載程序,則會出現“pin”命令。

[Setup]
UseSetupLdr=no

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM