나는 Inno Setup 설치 프로그램에서 net use
을 호출하여 공유 서버에 연결하려고합니다. 설치 관리자는 Windows XP에서 실행 중이지만 Windows 7에서는 실행되지 않는 서버에 연결할 수 있습니다. 동일한 명령을 입력하면 서버가 Windows 7에 연결되지만 설정은 admin
권한으로 실행됩니다. . 내가 Exec
또는 ShellExec
스크립트 기능을 통해 다음과 같은 net use
명령을 사용하고Windows 7에서 Inno 설치 프로그램의 "net use"명령을 실행하는 방법은 무엇입니까?
:
[Code]
var
ErrorCode: Integer;
cmdString: String;
intvalue: Integer;
str: String;
function InitializeSetup(): Boolean;
begin
cmdString := '/c net use \\servername password /USER:username';
ShellExec('', ExpandConstant('{cmd}'), cmdString , '', SW_SHOWNORMAL,
ewWaitUntilTerminated, ErrorCode)
if (ErrorCode = 0) then
begin
MsgBox(ExpandConstant('{cmd}'), mbInformation, MB_OK);
end;
end;
수있는 사람 : 사실
/c net use \\servername password /user:username
, 여기에 net use
명령 호출을 보여주는 스크립트의 일부입니다 Windows 7에서 Inno Setup의 net use
을 사용하는 방법을 제안 하시겠습니까? 우리는 단지 서버에 연결하여 사용자가 이름과 암호를 입력하게하려는 것입니다.
감사합니다.
네트워크 공유 (패스워드없이)를 매핑하기 위해'net use '를 시도했지만 작동했습니다. 진실은 명령 행을 통해서가 아니라'Exec'를 사용하여 직접'net.exe '를 호출했다는 것입니다 (어쩌면 명령 행이 mazy 결과를 반환 할지도 모르겠지만 시도하겠습니다). 그동안 나는 당신에게 나의 테스트 코드를 게시 할 것이다. 다른 사람들을 위해, 내가이 질문에했던 업데이트는 상당히 오래되었던 논평 토론에서 나온 것이므로 OP에게 * workspace *를 정리하도록 요청했습니다. – TLama
'net.exe'가 편리하지만, 항상 API를 직접 사용하는 편이 낫습니다 (이 경우에는 주어진 답안에서와 같이'WNetUseConnection'). 때로는 명령이 중지되고 예기치 않게 입력을 기다리는 경우가 있는데, 숨겨진 상태로 실행하려고하면 실제 문제가 발생할 수 있습니다. 숨겨진 상태로 실행하지 않으면 추한 콘솔 창이 나타납니다. 그것은 결국 소프트웨어가 아니라 콘솔에서 관리자가 사용하도록 설계되었습니다. 이것이 바로 API입니다. – Miral
안녕하세요, Miral, net.exe로 Windows 7에서 문제가 발생했습니다. net 명령이 실제로 실행되지 않는 것 같습니다. 반환 값이 ok라는 것을 보여줍니다. 나는 이것이 inno 버그인지 궁금해. 아니면 뭔가를 놓쳤다. – xiaoheixiaojie