bir makinede açık paylaşılan dosyaları ADSI (Active Directory Hizmet Arabirimleri) kullanabilir listelemek için. Eğer Sonra bu yöntem Resources
denilen bir yöntem paylaşılan tüm ile bir koleksiyon dönmek içeren IADsFileServiceOperations
arayüze erişmek Aktif DS tür kitaplığı
aktarmanız gerekir delphi bu arayüzleri kullanmak için
kaynaklar açıldı.
Kontrol
{$APPTYPE CONSOLE}
uses
ActiveDs_TLB,
Variants,
ActiveX,
SysUtils;
function ADsGetObject(lpszPathName:WideString; const riid:TGUID; out ppObject):HRESULT; safecall; external 'activeds.dll';
procedure ListSharedResourcesInUse;
var
FSO : IADsFileServiceOperations;
Resources : IADsCollection;
Resource : OleVariant;
pceltFetched : Cardinal;
oEnum : IEnumvariant;
begin
//establish the connection to ADSI
ADsGetObject('WinNT://./lanmanserver', IADsFileServiceOperations, FSO);
//get the resources interface
Resources := FSO.Resources;
//get the enumerator
oEnum:= IUnknown(Resources._NewEnum) as IEnumVariant;
while oEnum.Next(1, Resource, pceltFetched) = 0 do
begin
Writeln(Format('Resource %s User %s',[Resource.Path,Resource.User]));
Resource:=Unassigned;
end;
end;
begin
try
CoInitialize(nil);
try
ListSharedResourcesInUse;
finally
CoUninitialize;
end;
except
on E:Exception do
Writeln(E.Classname, ':', E.Message);
end;
Writeln('Press Enter to exit');
Readln;
end.
bir istemci makineden sunucu tarafında o da yapabilecek istiyorsunuz bu örnek kod? – RRUZ
Tam olarak aradığınızı tam olarak bilmiyorsanız, SysInternal'ın [PsFile] (http://technet.microsoft.com/en-us/sysinternals/bb897552) belirli bir makinede açık dosyalara sahip olduğunu söyleyebilir. Aşina olmadığım bazı NET API'larından bahsetmişler, ancak sizin için bir lider olabilir. – eran
@RRUZ İdeal olarak bir istemci uygulaması olacaktır. İstemci uygulamasının sunucuda bazı updater.exe işlemlerini çalıştırması gerekip gerekmediğini bilmiyorum. @eran Teşekkürler, ben kontrol edeceğim. – Wodzu