23.07.2007, 10:41
общий
это ответ
Здравствуйте, Iksmensp!
Кроме ip Вам должны быть известны Имя и Пароль для доступа к оному компьютеру.
В приложении:
Path - ‘\\‘+IP_Address+‘\IPC$‘;
User и Password знает администратор.
Порядок вызова функций:
ConnectToResource(Path,User,Password);
AddShare(IP_Address,‘C$‘,‘C:\‘,‘Стандартный общий ресурс‘);
//Здесь процедура копирования
DisconnectFromResource(Path)
Приложение:
uses ActiveDs_TLB, ActiveX, ComObj;function ConnectToResource(const Path,User,Password: string): DWord; var NET: TNetResource; begin NET.dwScope := RESOURCE_GLOBALNET; NET.dwType := RESOURCETYPE_ANY; NET.dwDisplayType := RESOURCEDISPLAYTYPE_SHARE; NET.dwUsage := RESOURCEUSAGE_CONNECTABLE; NET.lpLocalName := nil; NET.lpComment := nil; NET.lpProvider := nil; NET.lpRemoteName := PChar(Path); Result:=WNetAddConnection2(NET,PChar(Password),PChar(User),0); end;procedure DisconnectFromResource(const Path: string);begin WNetCancelConnection2(PChar(Path),0,True);end;function GetObject(const Name: string): IDispatch;var Moniker: IMoniker; Eaten: integer; BindContext: IBindCtx; Dispatch: IDispatch;begin OleCheck(CreateBindCtx(0, BindContext)); OleCheck(MkParseDisplayName(BindContext, StringToOleStr(Name), Eaten, Moniker)); OleCheck(Moniker.BindToObject(BindContext, NIL, IDispatch, Dispatch)); Result := Dispatch;end;function AddShare(const Computer, Share, Path, Description: string): string;var objComputer: IADsContainer; objShare: IADsFileShare;begin Result:=‘Шара добавлена успешно.‘; try objComputer:=GetObject(‘WinNT://‘+Computer+‘/LanmanServer‘) as IADsContainer; objShare:=objComputer.Create(‘FileShare‘, Share) as IADsFileShare; objShare.Path:=Path; objShare.Description:=Description; objShare.SetInfo; except on E: Exception do begin Result:=‘Шару добавить не удалось. Ошибка = ‘+E.Message; end; end;end;