2017-12-23 27 views
3

Inno 설치를 통해 .exe를 빌드 한 후 .exe를 실행하고 응용 프로그램의 작업 표시 줄 단추를 마우스 오른쪽 단추로 클릭하면 볼 수 있습니다. 항목 "창 닫기". Visual Studio 또는 Windows의 다른 프로그램을 통해 실제로 exe를 빌드 할 때 마우스 오른쪽 버튼을 클릭하면 3 개의 항목을 볼 수 있습니다.Inno Setup에서 작업 표시 줄 메뉴의 "pin"명령을 숨기는 방법

  1. 내 앱의 이름.
  2. 이 프로그램을 작업 표시 줄에 고정하십시오.
  3. 창을 닫습니다.

제 질문은 Inno Setup이 어떻게 프로그래밍 방식으로 프로그래밍 할 수 있습니까?

답변

3

아마도 설치 프로그램이 실행되는 방법과 관련이 있습니다.

Inno Setup-made mysetup.exe은 내부 설치 프로그램을 임시 폴더로 추출하고 내부 설치 프로그램을 실행하는 로더 (기본값)입니다.

Windows는 아마 임시 폴더에서 이런 방식으로 실행되는 응용 프로그램을 고정하는 것이 아무런 의미가 없다고 판단합니다. 그래서 옵션을 숨 깁니다.

Inno Setup에서 로더를 비활성화하면 "pin"명령이 나타납니다. 내가 작업 표시 줄에 내 프로그램을 고정하지 못하도록하려면 어떻게
:에서

[Setup] 
UseSetupLdr=no 
+0

감사합니다. 정말 도움이되었습니다! – frankdexter81

6

? 직접 프로그램
https://blogs.msdn.microsoft.com/oldnewthing/20110601-00/?p=10523

사용 System.App­User­Model.Prevent­Pinning :

#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); 
    ...