LAN内の他のPC内のフォルダを操作しようとしてますが、
IDとパスワードをつかって プログラムで自動ログインってどうやるんでしょう?
BorlandのC++Builderでの例があります
http://www.borland.co.jp/tips/cbuilder/cb013/ntshut2.html
-----------------------
前もって LogonExecute() でログオンしておき
必要な処理が終わったら LogoffExecute()でログオフします。
ちょっとpascalに落としてみました。
動作確認はしていません・・・^^;)
動かなかったらスマソ。
-----------------------
uses に Windows,...を加えて
// HostにはIPアドレスも指定できます。
function LogonExecute(Host, UserName, Passwd: string): DWord;
var
NetRes : TNetResource;
str: string;
begin
FillChar(NetRes, SizeOf(NetRes), 0);
NetRes.dwType := RESOURCETYPE_DISK;
str := '\\' + Host + '\IPC$';
NetRes.lpRemoteName := PChar(str);
Result := WNetAddConnection2(NetRes, PChar(Passwd), PChar(UserName),
CONNECT_UPDATE_PROFILE);
{必要ならコメントをはずす
if retn <> NO_ERROR then begin
case retn of
ERROR_SESSION_CREDENTIAL_CONFLICT:
begin
ErrMsg('Error SessionConflict');
Result := False;
end;
else
begin
ErrMsg( 'Err :'+IntToStr(retn) );
Result := False;
end;
end;
end;
}
end;
// HostにはIPアドレスも指定できます。
function LogoffExecute(Host: string): DWord;
var
str: string;
begin
str := '\\' + Host + '\IPC$';
Result := WNetCancelConnection2(PChar(str), CONNECT_UPDATE_PROFILE, False);
{必要ならコメントをはずす
if retn <> NO_ERROR then begin
case retn of
ERROR_OPEN_FILES:
begin
Result := True;
end;
else
begin
ErrMsg( 'Err :'+IntToStr(retn) );
Result := False;
end;
end;
end;
}
end;
---------------
ありがとうございます。
うまくいきました。
今更ですみませんが上記の方法のやり方を解説してはいただけないでしょうか?
ツイート | ![]() |