Yorumları: 53
Konuları: 21
Kayıt Tarihi: 11-10-2017
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 15 Başlangıç
Arkadaşlar merhaba,
Muhtemelen çok basit ancak benim takıldığım bir sorunum var, ağ klasörüne bağlanıp dosya kopyalamak istiyorum, ancak ağ klasörü şifreliyse ve kullandığım bilgisayarın yetkisi yoksa ulaşamıyorum.
Baglan('\\192.168.0.13\klasor' , 'username','password') şeklinde fonksiyon gibi bir şeyde olabilir.
yardımcı olabilecek var mıdır?
Yorumları: 101
Konuları: 7
Kayıt Tarihi: 30-06-2019
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 334 Acemi
(16-12-2020, Saat: 21:40)ermanispir@gmail.com Adlı Kullanıcıdan Alıntı: Arkadaşlar merhaba,
Muhtemelen çok basit ancak benim takıldığım bir sorunum var, ağ klasörüne bağlanıp dosya kopyalamak istiyorum, ancak ağ klasörü şifreliyse ve kullandığım bilgisayarın yetkisi yoksa ulaşamıyorum.
Baglan('\\192.168.0.13\klasor' , 'username','password') şeklinde fonksiyon gibi bir şeyde olabilir.
yardımcı olabilecek var mıdır?
https://jonlennartaasenden.wordpress.com...h-by-code/
Yorumları: 1.902
Konuları: 23
Kayıt Tarihi: 05-08-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 21.290 Üstad
@ bibilen güzel bir kaynak sunmuş.
Arşivimden çalıştığım kurumda kullandığım basit şeklini de ben sunayım. Sistem tek zaten.
function MakeDriveMapping(DriveLetter: string; DirectoryPath: string;
Username: string; Password: string; RestoreAtLogon: Boolean): DWORD;
var
NetResource: TNetResource;
dwFlags: DWORD;
begin
with NetResource do
begin
dwType := RESOURCETYPE_DISK;
lpLocalName := PChar(DriveLetter);
lpRemoteName := PChar(DirectoryPath);
lpProvider := nil;
end;
if (RestoreAtLogon) then
dwFlags := CONNECT_UPDATE_PROFILE
else
dwFlags := 0;
Result := WNetAddConnection2(NetResource, PChar(Password),
PChar(Username), dwFlags);
end;
Bağlantı için bir network drive sürücü harfini vererek bağlanır. Button2'de de bunu devre dışı bırakmayı gösterdim. Dilerseniz her bilgisayar açıldığında bağlantıyı korusun/kalıcı olsun derseniz parametre olan FALSE kısmını TRUE yaparsınız.
Temsili Kullanımı :
procedure TForm1.Button1Click(Sender: TObject);
begin
if ( MakeDriveMapping('X:', '\\192.168.0.15\D', 'loginname', 'password', False) = 0 )
then
ShowMessage('OK')
else
ShowMessage('Error!');
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
if ( WNetCancelConnection2(PChar('X:'), 0, false) = 0 )
then
ShowMessage('OK')
else
ShowMessage('Error!');
end;
Saygılarımla
Muharrem ARMAN
Yorumları: 510
Konuları: 64
Kayıt Tarihi: 05-02-2017
Aktif Kullandığınız Delphi Sürümü:
- Delphi 10.2
- Delphi 10.1
- Delphi 7
Rep Puanı: 3.359 Uzman
(16-12-2020, Saat: 22:55)mrmarman Adlı Kullanıcıdan Alıntı: @bibilen güzel bir kaynak sunmuş.
Arşivimden çalıştığım kurumda kullandığım basit şeklini de ben sunayım. Sistem tek zaten.
function MakeDriveMapping(DriveLetter: string; DirectoryPath: string;
Username: string; Password: string; RestoreAtLogon: Boolean): DWORD;
var
NetResource: TNetResource;
dwFlags: DWORD;
begin
with NetResource do
begin
dwType := RESOURCETYPE_DISK;
lpLocalName := PChar(DriveLetter);
lpRemoteName := PChar(DirectoryPath);
lpProvider := nil;
end;
if (RestoreAtLogon) then
dwFlags := CONNECT_UPDATE_PROFILE
else
dwFlags := 0;
Result := WNetAddConnection2(NetResource, PChar(Password),
PChar(Username), dwFlags);
end;
Bağlantı için bir network drive sürücü harfini vererek bağlanır. Button2'de de bunu devre dışı bırakmayı gösterdim. Dilerseniz her bilgisayar açıldığında bağlantıyı korusun/kalıcı olsun derseniz parametre olan FALSE kısmını TRUE yaparsınız.
Temsili Kullanımı :
procedure TForm1.Button1Click(Sender: TObject);
begin
if ( MakeDriveMapping('X:', '\\192.168.0.15\D', 'loginname', 'password', False) = 0 )
then
ShowMessage('OK')
else
ShowMessage('Error!');
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
if ( WNetCancelConnection2(PChar('X:'), 0, false) = 0 )
then
ShowMessage('OK')
else
ShowMessage('Error!');
end;
Muharrem hocam öncelikle paylaşım için teşekkürler. Bu sizin gösterdiğiniz işlem komut satırında (CMD) Net Use komutu ile yaptığımızdan farksız. Delphi ortamında bu işlemin yapılması aydınlatıcı ve güzel bir bilgi. Peki Map Drive yapmadan bu işlemi yapmamız mümkün mü?
Yani şifreli bir paylaşım var ve bazı kullanıcılar erişebilir durumda fakat ben buraya özel bir şekilde uygulama vasıtasıyla erişim hakkı olmayan kullanıcılar için de uygulama ile bir dosyayı kendi Temp klasörüne kopyalayacak ve ön izleme yaptıracak.
Basit mantıkla Map tanımla işin bitince kapat yapılabilir. Fakat daha pratik bir yolu var mı bunu öğrenmek istedim.
Yorumları: 1.902
Konuları: 23
Kayıt Tarihi: 05-08-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 21.290 Üstad
16-12-2020, Saat: 23:35
(Son Düzenleme: 16-12-2020, Saat: 23:40, Düzenleyen: mrmarman.)
@ 3ddark
Aşağıdaki kod ile
rundll32.exe keymgr.dll, KRShowKeyMgr
ağ üzerinde nerelere geçici veya kalıcı olmak üzere, login bilgilerim ile bağlantı attığımı görebiliyorum. Buradan silmek de mümkün ama ben harf ataması ile kontrolün bende olmasını tercih ediyorum ve şiddetle öneriyorum, açık söyleyeyim.
* İşim bittiğinde bağlantıyı bu harf ataması anahtar olarak kullanarak kapattığımda tanımlı parola erişimi de otomatik olarak kapanıyor.
* adı yoksa
ile her şeyi kaldırmak istemiyorum.
* Bu bana, büro tipi yerlerde aynı bilgisayardan sadece benim yazılımımın ulaşabileceği ağ yollarına kontrolsüz geçişi olumlu anlamda sınırlandırıyor. Bunu severek kullanıyorum.
Saygılarımla
Muharrem ARMAN
Yorumları: 53
Konuları: 21
Kayıt Tarihi: 11-10-2017
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 15 Başlangıç
Tekrar merhaba.
Öncelikle değerli cevaplarınız için hepinize teşekkür ederim, Projemde onlarca klasöre aynı anda bağlantı yapacağımdan Map Drive çözümü benim için verimli bir çözüm olmayacak, Map drive yapmadan bunu çözebilmem gerekiyor ( Örn:goodsync) Bu programda da map drive yapmadan paylaşıma şifreli erişim yapılabiliyor. Buna benzer birşey yapmak istiyorum, Webde günlerdir arıyorum bu çözümü ancak bulamadım. Yardımcı olacaklara şimdiden teşekkür ederim.
Yorumları: 1.902
Konuları: 23
Kayıt Tarihi: 05-08-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 21.290 Üstad
17-12-2020, Saat: 09:24
(Son Düzenleme: 17-12-2020, Saat: 09:25, Düzenleyen: mrmarman.)
* İstediğiniz şekildeki örnek :
function ConnectNetoworkShare( DirectoryPath: string; Username: string; Password: string; RestoreAtLogon: Boolean): DWORD;
var
NetResource: TNetResource;
dwFlags: DWORD;
begin
with NetResource do
begin
dwType := RESOURCETYPE_DISK;
lpLocalName := 0;
lpRemoteName := PChar(DirectoryPath);
lpProvider := nil;
end;
if (RestoreAtLogon) then
dwFlags := CONNECT_UPDATE_PROFILE
else
dwFlags := 0;
Result := WNetAddConnection2(NetResource, PChar(Password), PChar(Username), dwFlags);
end;
function DisConnectNetoworkShare( DirectoryPath: string; forceDisconnect: Boolean = false): DWORD;
begin
Result := WNetCancelConnection2( PChar(DirectoryPath), 0, forceDisconnect);
end;
// Temsili Kullanımı
procedure TForm1.Button1Click(Sender: TObject);
begin
if ConnectNetoworkShare( '\\192.168.0.15\D', 'loginname', 'password', False ) = 0
then
ShowMessage('OK')
else
ShowMessage('Error!');
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
if DisConnectNetoworkShare( '\\192.168.0.15\D', True ) = 0
then
ShowMessage('OK')
else
ShowMessage('Error!');
end;
Saygılarımla
Muharrem ARMAN
Yorumları: 53
Konuları: 21
Kayıt Tarihi: 11-10-2017
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 15 Başlangıç
(17-12-2020, Saat: 09:24)mrmarman Adlı Kullanıcıdan Alıntı: * İstediğiniz şekildeki örnek :
function ConnectNetoworkShare( DirectoryPath: string; Username: string; Password: string; RestoreAtLogon: Boolean): DWORD;
var
NetResource: TNetResource;
dwFlags: DWORD;
begin
with NetResource do
begin
dwType := RESOURCETYPE_DISK;
lpLocalName := 0;
lpRemoteName := PChar(DirectoryPath);
lpProvider := nil;
end;
if (RestoreAtLogon) then
dwFlags := CONNECT_UPDATE_PROFILE
else
dwFlags := 0;
Result := WNetAddConnection2(NetResource, PChar(Password), PChar(Username), dwFlags);
end;
function DisConnectNetoworkShare( DirectoryPath: string; forceDisconnect: Boolean = false): DWORD;
begin
Result := WNetCancelConnection2( PChar(DirectoryPath), 0, forceDisconnect);
end;
// Temsili Kullanımı
procedure TForm1.Button1Click(Sender: TObject);
begin
if ConnectNetoworkShare( '\\192.168.0.15\D', 'loginname', 'password', False ) = 0
then
ShowMessage('OK')
else
ShowMessage('Error!');
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
if DisConnectNetoworkShare( '\\192.168.0.15\D', True ) = 0
then
ShowMessage('OK')
else
ShowMessage('Error!');
end;
Muharrem hocam, tam istediğim şey bu,
Yardımınız için çok teşekkür eder saygılarımı sunarım.
Yorumları: 198
Konuları: 14
Kayıt Tarihi: 22-11-2017
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 809 Acemi
Muharrem abi teşekkür ederim... buna benzer bişey lazımdı...
Yorumları: 2
Konuları: 0
Kayıt Tarihi: 18-09-2018
Aktif Kullandığınız Delphi Sürümü:
- Delphi 10.2
- Delphi 10.1
- Delphi 7
Rep Puanı: 4 Başlangıç
(16-12-2020, Saat: 21:40)ermanispir@gmail.com Adlı Kullanıcıdan Alıntı: Arkadaşlar merhaba,
Muhtemelen çok basit ancak benim takıldığım bir sorunum var, ağ klasörüne bağlanıp dosya kopyalamak istiyorum, ancak ağ klasörü şifreliyse ve kullandığım bilgisayarın yetkisi yoksa ulaşamıyorum.
Baglan('\\192.168.0.13\klasor' , 'username','password') şeklinde fonksiyon gibi bir şeyde olabilir.
yardımcı olabilecek var mıdır?
Merhabalar,
Ağ klasörü için FTP kullanabilirsiniz. Sunucu üzerinde filezilla kurulup oradan hesap oluşturulup delphi FTP componenti ile bağlanabilirsin.
|