1
현재 Inno Setup에서 Wi-Fi 용 고정 IP를 설정하는 설치 프로그램 유틸리티를 만들려고합니다. 다음 사용자 정의 페이지 버튼을 누르면 올바른 명령을 삽입하는 방법을 찾는 데 어려움이 있습니다. NextButtonClick
메서드는 제대로 호출되지만 실제로 내 페이지의 다음 단추를 누르면 쿼리를 실행하지 않고 종료됩니다.NextButtonClicked 메서드에서 프로 시저에 값 전달 Inno Setup
procedure InitializeWizard();
var
Page: TInputQueryWizardPage;
ipAddress, subnetMask, defaultGateway, prefferredDNSServer: String;
ResultCode: Integer;
begin
Page := CreateInputQueryPage(wpWelcome,
'Set Network Config', 'A window for setting the wifi configuration',
'Please indicate the IP address and press next when finished.');
{ Add items (False means it's not a password edit) }
Page.Add('IP Address:', False);
Page.Add('Subnet mask:', False);
Page.Add('Default gateway:', False);
Page.Add('Preferred DNS server:', False);
{ Set initial values (optional) }
Page.Values[0] := ExpandConstant('0.0.0.0');
ipAddress := Page.Values[0]
Page.Values[1] := ExpandConstant('0.0.0.0');
subnetMask := Page.Values[1]
Page.Values[2] := ExpandConstant('0.0.0.0');
defaultGateway := Page.Values[2]
Page.Values[3] := ExpandConstant('0.0.0.0');
prefferredDNSServer := Page.Values[3]
if NextButtonClick(Page.ID) then
begin
Exec('cmd.exe',
'/k ' + 'netsh interface ip set address "Wi-Fi" static ' + ipAddress + ' ' +
subnetMask + ' ' + defaultGateway + ' ' + prefferredDNSServer,
'', SW_SHOW, ewWaitUntilTerminated, ResultCode)
end;
end;
function NextButtonClick(CurPageID: Integer): Boolean;
var
ipAddress, subnetMask, defaultGateway, prefferredDNSServer: String;
ResultCode: Integer;
begin
Result := True
Log('NextButtonClick(' + IntToStr(CurPageID) + ') called');
case CurPageID of
100:
{ ipAddress := getParams(ipAddress); }
{ setWifi(ipAddress, subnetMask, defaultGateway, prefferredDNSServer); }
Result:= True;
end;
end;
감사합니다,하지만 난 당신의 코드를 사용할 때, 나는에서 PROC 오류를 호출 할 수있는 점점 계속 만약 CurPageID = NetPage.ID라면 첫 번째 블록에서 ipAddress : = NetPage.Values [0]; 이게 질서와 관련이 있니? –
이 메서드를 호출 할 때 NetPage가 null과 같다고 문제가 있다고 생각합니다. –
'NextButtonClick'은'InitializeWizard' 전에 호출 될 수 없으므로'NetPage'는'NextButtonClick'에서'nil'이 될 수 없습니다. 'NextButtonClick'에 대한 명시 적 호출을 제거하는 것을 잊지 않았는지 확인하십시오. –