1

Konu: Network sürücüsünün (Z:) varlığını anlamak

Merhaba,

Hata yakalama rutini konusunda kullanmak için; örneğin Z: gibi bir network sürücüsünün yazdığım programın çalıştırıldığı bir teminalde var olduğunu nasıl anlayabilirim. Burada iki durumu da ayrı ayrı anlamam gerek:
1-  Z: sürücüsü progamın çalıştırıldığı terminalde map edilmiş mi edilmemiş mi?
2- Map edilmiş ise network bağlantısı kurulabiliyor mu?

Yardımlarınız için şimdiden teşekkürler.

2

Re: Network sürücüsünün (Z:) varlığını anlamak

bunu asagidaki gibi yolla anlayabilirsin saniyorum, hem network baglantisi varmi yokmu anlamis olursun hemde istedigin Ağ sürücüsünü oluşturmuş olursun...


Visual Fox Pro
if !Create_Net_Map("\\server\data","Z:\")

messagebox('Hata Oluştu',16,'NetWork Map Oluşturma...')
else
messagebox('Ağ Bağlantısı Var...İstediğiniz Ağ Sürücüsü Oluşturuldu',32,'NetWork Map Oluşturma...')
endif
 
Function Create_Net_Map
lparam tcPath,tcDrive
Local lnDurum
Declare Integer WNetAddConnection In Win32Api String, String, String
Declare Integer WNetGetConnection In Win32Api String, String, Integer
 
m.lnDurum = WNetGetConnection("
Z:", "", 0)
If m.lnDurum = 2250
= WNetAddConnection(m.tcPath, "
", m.tcDrive)
EndIf
endfunc

3 Son düzenleyen, cetinbasoz (31.01.2010 17:29:52)

Re: Network sürücüsünün (Z:) varlığını anlamak

Diyelimki Z: surucusu var ve baglanti kurulabiliyor. Bu nasil senin isine yariyor anlamadim. Z: surucusu sana gerekenle alakasiz bir yerin surucu harfi de olabilir, mesela ben Z:'yi CD surucume veriyorum. CD'de bir CD varsa, Z:'de var, baglanti da kurulabiliyor. Bence hic surucu harfine bagimli kod yazma.

Soykan,
Yazdigin kodu anlayamadim. Tercume eder misin. F: nereden cikti? 2250 nereden geldi?

4

Re: Network sürücüsünün (Z:) varlığını anlamak

Soykan,

cetinbasoz yazdı:

Yazdigin kodu anlayamadim. Tercume eder misin. F: nereden cikti? 2250 nereden geldi?

kod bana ait degil alinti (: , alinti oldugunu belirtmeyi unuttum smile arsivimde vardi ise yarar diye dusundum...

5

Re: Network sürücüsünün (Z:) varlığını anlamak

Yanıtlar için teşekkürler.
Çetin Bey, Terminalden programım ilk çalıştırıldığında adı sistem.dbf olan ve yerel olarak (terminalde programın kurulu olduğu klasörde) bulunan bir dosyadan network sürücüsünün harfini ve path'ini öğreniyor. Ondan sonra bu path ile ilişki kuruyor. Eğer networkte bir sorun varsa bunu kullanıcıya bildirsin istiyorum.
ON ERROR ile hatayı yakalamaktansa (zaten "file does not exist" gibi bir hata alacak kullanıcı ve muhtemelen anlamayacak) açıkça "Ağda sorun var düzeltin" gibi bir mesaj çıksın istiyorum.

Soykan Bey; kod için teşekkür ederim. Daha denemedimn ama, eğer map edilmiş ise bu kod yeni bir drive oluşturmuyor değil mi?

6

Re: Network sürücüsünün (Z:) varlığını anlamak

O zaman basit bir yol orada bir dosya acmayi/yazmayi denemek.

Visual Fox Pro
Procedure TestZ

local lcFile, llResult
lcFile = 'Z:\'+sys(2015)+'.tmp'
handle = fcreate(m.lcFile)
llResult = ( m.handle > 0 )
if m.llResult
   fclose( m.handle )
   erase (m.lcFile)
endif
return m.llResult
endproc