我需要編輯或替換Inno Setup的About Setup
對話框文本中的文本。Inno Setup - 如何編輯「About Setup」對話框文本框
這裏有一個畫面:
在網上找我得到這個代碼:
[Setup]
AppName=My Program
AppVerName=My Program v 1.5
DefaultDirName={pf}\My Program
OutputDir=.
[Languages]
Name: "default"; MessagesFile: "compiler:Default.isl"
[Files]
Source: CallbackCtrl.dll; Flags: dontcopy
[Code]
type
TWFProc = function(h:hWnd;Msg,wParam,lParam:Longint):Longint;
function CallWindowProc(lpPrevWndFunc: Longint; hWnd: HWND; Msg: UINT; wParam: Longint; lParam: Longint): Longint; external '[email protected] stdcall';
function SetWindowLong(Wnd: HWnd; Index: Integer; NewLong: Longint): Longint; external '[email protected] stdcall';
function WrapWFProc(Callback: TWFProc; ParamCount: Integer): Longword; external '[email protected]:CallbackCtrl.dll stdcall';
var
OldProc:Longint;
procedure AboutSetupClick;
begin
//Edit your text here
MsgBox('CUSTOM TEXT HERE', mbInformation, MB_OK);
end;
function WFWndProc(h:HWND;Msg,wParam,lParam:Longint):Longint;
begin
if (Msg=$112) and (wParam=9999) then begin
Result:=0;
AboutSetupClick;
end else begin
if Msg=$2 then SetWindowLong(WizardForm.Handle,-4,OldProc);
Result:=CallWindowProc(OldProc,h,Msg,wParam,lParam);
end;
end;
procedure InitializeWizard;
begin
OldProc:=SetWindowLong(WizardForm.Handle,-4,WrapWFProc(@WFWndProc,4));
end;
似乎做工精細..
但如果我關閉安裝程序,我會碰撞m essage。
請我需要幫助解決這一問題的代碼,或給一個更好的例子來改變在關於設置對話框文本框中的文本。
我使用的DLL。 HERE
好吧,如果我忽略你打算做什麼(你知道這億韓元是不是合法的,對吧?)以及你正在使用哪種庫(某種可疑的「我在互聯網上發現它,並不在意它可能包含病毒庫」),則需要提供原始窗口過程回到嚮導窗體。嘗試在'DeinitializeSetup'事件中恢復它。並且,-4,$ 2和$ 112不是命名常量;-) – TLama 2013-02-12 12:41:31
:(我在此論壇中被問到......我不會使用,放置或給出任何病毒,該dll來自inno setup的dll包(超),我不知道這是一個問題,我只是想定製我的安裝程序...我需要一些幫助:( – Dielo 2013-02-12 14:05:42
我看到這不是你的意圖,但要非常小心,如果我是病毒的開發者,安裝程序擴展會是一個很好的地方,因爲它們通常運行得很高(可能會讓病毒做任何你需要的東西)我不想測試那個庫,我只知道你需要給出原始的窗口過程(在你的例子中是'OldProc')在退出前返回到嚮導窗體,所以也許像'SetWindowLong(WizardForm.Handle,-4,OldProc);'從'DeinitializeSetup'事件調用應該幫助你解決你的問題。 – TLama 2013-02-12 14:13:28