pilgetir Posted June 26, 2012 Share Posted June 26, 2012 (edited) Merhaba arkadaşlar aşağıdaki kodları hazırladım fakat doğru çalışmıyor herhangi bir hata mesajda varmiyor.Bu koddaki amacım programımın çalıştığı diskin ismini labela yazdırmak fakat masaüstüne atınca C:\ yazıyor bu doğru tamam ama ben flashıma atıncada c yazıyor dye atıncada c yazıyor istiyorum ki bulunduğu diskin ismini alsın nereden yanlışım var.Kodlar sanırım doğru ama çalışmıyor acaba benim sistemimdemi sorun dedim radyofon abimede yolladım ondada aynı sorun.Şimdiden teşekkürler.. [quote]DrivesTB = Drive.Enumerate(); for nIndex, DrvLetter in pairs (DrivesTB) do if Drive.GetType(DrvLetter) == 5 then Label.SetText("cdismi", DrvLetter); error = Application.GetLastError(); if (error ~= 0) then Dialog.Message("Error", _tblErrorMessages[error], MB_OK, MB_ICONEXCLAMATION); end end end local Split = String.SplitPath(_SourceFolder); Label.SetText("calisan",Split.Drive.."\\"); [/quote] Edited June 26, 2012 by pilgetir Quote Link to comment Share on other sites More sharing options...
MostWanted Posted June 26, 2012 Share Posted June 26, 2012 (edited) Muhtemelen tek exe yapıyosun tek exe yapınca program açıldığında kendini temp e atacağı için temp de c de olduğu için hep c yazacaktır.Hard drive folder gibi seçenekti onu yaparsan sorunun hallolur.Ayrıca _SourceDrive direk bunu da kullanabilirsin. Edited June 26, 2012 by MostWanted Quote Link to comment Share on other sites More sharing options...
pilgetir Posted June 26, 2012 Author Share Posted June 26, 2012 (edited) İnan Allaha aklıma geldide cahillikten bakmadım.Eee akıl akıldan üstündür sözünün doğruluğunu bir defa daha gördük.Çok teşekkür ederim talha Allah razı olsun. İkinci bir sorunumda şu ben bu seferde usb girişlerini almak istiyorum.Aldımda fakat döngü ile sadece tek bir labela yazdırabildim.Ben istiyorum ki meslea benim bilgisarımdaki tüm usb girişlerinin isimlerini alsın yani (F:\,E:\) vs daha sonra bunları progreamın çalıştığı konumla karşılaştırsın oradaki if yapısını kuramadım yardımcı olur musun. [quote] drive_type = "2" tblDrives = Drive.Enumerate(); for n, DriveLetter in pairs (tblDrives) do nType = Drive.GetType(DriveLetter) if nType == String.ToNumber(drive_type) then sSerial = DLL.CallFunction("AutoPlay\\Docs\\DriveSer.dll", "DriveSerialNumber", "\""..DriveLetter.."\"", DLL_RETURN_TYPE_STRING, DLL_CALL_STDCALL) if sSerial ~= "ERROR" then Dialog.Message("Notice", "Sürücü " .. DriveLetter, MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1); end end end[/quote] [quote]http://s2.dosya.tc/server17/RZInH0/MyProject.rar.html[/quote] Edited June 26, 2012 by pilgetir Quote Link to comment Share on other sites More sharing options...
radyofon Posted June 26, 2012 Share Posted June 26, 2012 [code] DrivesTB = Drive.Enumerate(); for nIndex, DrvLetter in pairs (DrivesTB) do if Drive.GetType(DrvLetter) == 5 then Label.SetText("cdismi", DrvLetter); error = Application.GetLastError(); if (error ~= 0) then Dialog.Message("Error", _tblErrorMessages[error], MB_OK, MB_ICONEXCLAMATION); end end end Current_Drive = Drive.GetInformation(_SourceDrive).Label; --Split = String.SplitPath(Current_Drive); Label.SetText("calisan",Current_Drive); s1 = Label.GetText("cdismi"); s2 = Label.GetText("calisan"); if s1 ~= s2 then INIFile.SetValue(_DesktopFolder.."\\My Settings.ini", "My Section", "My Value", "My Data"); else end[/code] Quote Link to comment Share on other sites More sharing options...
MostWanted Posted June 26, 2012 Share Posted June 26, 2012 Yapmak istediğin programın usb den çalışmasını engellemek ise ; [code]if Drive.GetType(_SourceDrive) == 2 then --kodların vs. end[/code] yapabilirsin.Tabi dediğim gibi tek exe de bu işe yaramaz. Quote Link to comment Share on other sites More sharing options...
pilgetir Posted June 26, 2012 Author Share Posted June 26, 2012 (edited) Teşekkür ederim sorum bu deĞildi ama senin verdiğin koddan yola çıkarak yardım dosyasına baktım oradaki parametreleri tek tek denedim.Hangisi masaüstünde ve cd/dvd romda çalıştırmıyorsa onları kullandım.Şöyle bir kod çıktı ortaya. Bu "DRIVE_REMOVABLE" parametresi tüm usb girişlerini algılıyor değilmi [quote]if Drive.GetType(_SourceDrive) == 2 or Drive.GetType(_SourceDrive) == 3 or Drive.GetType(_SourceDrive) == 5 then os.exit() end[/quote] Edited June 26, 2012 by pilgetir Quote Link to comment Share on other sites More sharing options...
MostWanted Posted June 26, 2012 Share Posted June 26, 2012 Herhangi bi sorun olmaz kullan böyle. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.