2011-11-18 5 views
2

나는 inno pascal 스크립트에 어려움을 겪고있다. 필자는 파스칼과 함께 약간 익숙한 () 파스칼이 스크립트과 다를 수 있으므로 파스칼이 나에게 더 명확 해졌습니다.Inno pascal 스크립트로 컴퓨터 이름을 검색하려면 어떻게해야합니까?

다음 코드는 프리 파스칼로 잘 컴파일 :

program test; 

uses windows; 

function GetPCName: string; 
var 
    buffer: array[0..MAX_COMPUTERNAME_LENGTH + 1] of Char; 
    Size: Cardinal; 
begin 
    Size := MAX_COMPUTERNAME_LENGTH + 1; 
    Windows.GetComputerName(@buffer, Size); 
    Result := StrPas(buffer); 
end; 

begin 
    writeln('ComputerName: ' + (GetPCName)); 
    readln; 
end. 

어떻게 내 INNO이 같은 작업을 수행 할 수 있습니다 [코드] 섹션을? 위를 시도했지만 "창을 사용합니다."와 같이 보이지 않습니다.

답변

5

먼저, 내장 된 GetComputerNameString 지원 기능을 사용할 수 있습니다.


라이브러리 함수를 호출 할 수 있도록 코드 섹션에서 함수를 선언 할 수 있습니다. 다음과 같은 뭔가 작업을해야합니다 : INNO 설정의 예 폴더에

[Code] 
function GetComputerName(lpBuffer: AnsiString; var nSize: DWORD): BOOL; 
external '[email protected]'; 

function GetPCName: string; 
var 
    Size: Cardinal; 
    buffer: AnsiString; 
begin 
    Size := MAX_COMPUTERNAME_LENGTH + 1; 
    SetLength(buffer, Size); 
    GetComputerName(buffer, Size); 
    Result := buffer; 
end; 


페이지의 'codedll.iss을'.

+0

Super, GetComputerNameString은 내가 원했던 것입니다. 나는 문서를 조금 더 쏟아야 할 것이다. – red888