首页 > 解决方案 > 如何仅在向导参数内的 Inno Setup 中设置自定义 .cur 或 .ani 光标?

问题描述

我在一个安装程序的 innosetup 脚本中写了这个我试图加载一个自定义光标,该光标只在安装程序向导的参数中可见,并且鼠标离开向导参数它应该回到默认光标,但仍然它不起作用提前感谢您的帮助。

[files]

#ifexist "Setup\Cursor.cur"
Source: Setup\Cursor.cur; DestDir: {tmp}; Flags: dontcopy
#endif

[code]

const
  GCL_HCURSOR = (-12);
  OCR_NORMAL = 32512;

var

 OldCursor, NewCursor: Longint;

function LoadCursorFromFile(FileName: String): Longint; external 'LoadCursorFromFileW@user32 stdcall';
function SetClassLong(hWnd: HWND; Index, NewLong: Longint): Longint; external 'SetClassLongW@user32 stdcall';
function SetCursor(Cursor: Longint): Longint; external 'SetCursor@user32 stdcall';
function SetSystemCursor(Cursor, CurType: Longint): Longint; external 'SetSystemCursor@user32 stdcall';
function SetWindowPos(hWnd: HWND; hWndInsertAfter: HWND; X, Y, cx, cy: Integer; uFlags: UINT): BOOL; external 'SetWindowPos@user32.dll stdcall';
function GetCursor(): Longint; external 'GetCursor@user32 stdcall';

procedure SettingCursor;
begin
  if FileExists(ExpandConstant('{tmp}\Cursor.cur')) then begin
  NewCursor:= LoadCursorFromFile(ExpandConstant('{tmp}\Cursor.cur'));
  OldCursor:= SetClassLong(WizardForm.Handle, GCL_HCURSOR, NewCursor);
  end;
end;

procedure InitializeWizard;
begin
  SettingCursor;
end;

function InitializeSetup(): Boolean;
  begin
    #ifexist "Setup\Cursor.cur"
       ExtractTemporaryFile('Cursor.cur');
    #endif
  end;

标签: inno-setup

解决方案


推荐阅读