SimpsoN_Bart Posted July 9, 2010 Share Posted July 9, 2010 Arkadaslar güzel bir fikir geldi aklıma varmı bilmiyorum ama ben yapmak istiyorum. Sorunumu kısca şöle acıklayayım. attrib +h parametresini sağ tıka koyarak dosyayı gizliyorum.Ama 2 saniyeliğinde olsa cmd ekranı geliyor. Bende autoit de denedim olmadı.Arkadaslar yaptığım örnek içinde indirip bakarsanız daha iyi yardımcı olacağınıza eminim.. TEşekkürler... http://rapidshare.com/files/405950610/a__ae_klama.rar Link to comment Share on other sites More sharing options...
MostWanted Posted July 9, 2010 Share Posted July 9, 2010 Ah bu rapid ah..Yedi beni dosyalarının kodlarını göremiyorum ama senin için küçük bir program hazırladım.. If $Cmdline[0] = 1 Then $returnattrib=FileSetAttrib($Cmdline[1], "+H") If $returnattrib Then $dosyaisim=StringSplit($Cmdline[1], "\") Msgbox(64, "Başarılı!", $dosyaisim[$dosyaisim[0]]&" dosyası başarıyla gizlendi!") Else MsgBox(16, "Hata!", "İşlem sırasında bir hata oluştu!") EndIf EndIf Bu tek bir tane dosya için geçerli.Daha fazlasını sen yazabilirsin.. Not:Kafadan yazdığım için syntax problemleri olabilir.. Link to comment Share on other sites More sharing options...
blue_life Posted July 9, 2010 Share Posted July 9, 2010 @ SimpsoN_Bart Bu kadarcık ufak bir komutu niye upload ettin Direkt burda verseydin. Neyse isteğin biraz basit kaçmış. Biraz geliştirelim. Misal şöyle yapabiliriz. Dosya gizliyse gizlilik özlliğini iptal etsin. Gizli deyilse gizlesin. Yada diğer seçeneklerde konabilir. Kafanda şekillendirmelisin. Dur ben sana basit bir örnek verim. #NoTrayIcon #RequireAdmin If $CMDLINE[0] = 0 Then MsgBox(16,"Hata","Parametre yok!" & @crlf & "Işte istediğni yaz") Exit EndIf If Not FileExists($CMDLINERAW) Then MsgBox(16,"Parametre hatalı.",$CMDLINERAW & " dosyası yok!") Exit EndIf Global $Attrib = "+H" If StringInStr(FileGetAttrib($CMDLINERAW),"H") Then $Attrib = "-H" FileSetAttrib($CMDLINERAW, $Attrib,1) @talha_252 Benden önce davrandın Link to comment Share on other sites More sharing options...
SimpsoN_Bart Posted July 10, 2010 Author Share Posted July 10, 2010 Öncelikle ilgilendiğiniz için çok tesekkür ederim:D @ talha_252 arkadasım senin verdiğin kodla oldu...Ama dediğin gibi tek dosya için gecerli. benim bu aralar kafam cok yoğun staj yerimde bi program üstünde çalısıyorum.Nasıl birden fazla yapacağımı bilmiyorum ayrıca nete cok giremiyorum:S Onun için bana hem birden çok klasör secip gizleme hemde bunu tüm uzantılar için gizleme yazıp paylasırsan cok mutlu olurm.. @ blue_life ın yazdığı kodla birleştirebilirseniz harika olr ama mesajbox da bilgi vermesin coklu secimde sıkıntılı olur... Şimdiden c0k tşk ederim Link to comment Share on other sites More sharing options...
MostWanted Posted July 10, 2010 Share Posted July 10, 2010 If $Cmdline[0] <> 0 Then $hata=False For $i=1 To $Cmdline[0] If StringInStr(FileGetAttrib($Cmdline[$i]), "D") Then $dosyalarilistele=_FileFolderList($Cmdline[$i]) If Not @error Then For $t = 1 To $dosyalarilistele[0][0] $returnattrib=FileSetAttrib($dosyalarilistele[0][$t], "+H") If Not $returnattrib Then $hata=True Next Else $returnattrib=FileSetAttrib($Cmdline[$i], "+H") If Not $returnattrib Then $hata=True EndIf Next If $hata Then MsgBox(16, "Hata!", "Bazı dosyaların özellikleri değiştirilirken hata oluştu!") Else MsgBox(64, "Başarılı!", "Bütün dosyalar başarıyla gizlendi!") EndIf EndIf Func _FileFolderList($path) Dim $return[2][1000000] If StringRight($path,1) <> "\" Then $path &="\" $search = FileFindFirstFile($path & "*") If @error = 1 Then SetError(2) If Not StringInStr(FileGetAttrib ($path), "D") Then Return SetError(1) $afile = 0 $folder = 0 While 1 $file = FileFindNextFile($search) If @error = 1 Then ExitLoop If @extended = 1 Then $folder += 1 $return[1][$folder]=$path & $file Else $afile += 1 $return[0][$afile]=$path & $file EndIf WEnd FileClose($search) $return[1][0]=$folder $return[0][0]=$afile ReDim $return[2][_Max($folder, $afile)+1] Return $return EndFunc ;==>_FileFolderList Func _Max($nNum1, $nNum2) If $nNum1 > $nNum2 Then Return $nNum1 Else Return $nNum2 EndIf EndFunc ;==>_Max Buyur senin için hazırladım sabah sabah Dosya klasör mü değil mi diye kontrol eder klasör ise içindeki dosyaları da gizli yapar...Ben kendi fonksiyonum olan _FileFolderList kullandım (Diğerine uyuz oluyorum ) Sen isterse _FileListToArray kullanabilirsin tabiki..Bu arada klasörü gizli yapmıyor onun içinde FileSetAttrib("KLASÖR DİZİNİ", "+H", 1) bunu kullanabiirsin Link to comment Share on other sites More sharing options...
SimpsoN_Bart Posted July 10, 2010 Author Share Posted July 10, 2010 Dostum sen varya kralsın..Trabzonda olsan sana iyi yemek yedirirdim:D Çok sağol ilgilendiğin için yanlız program çalısmadı desem kızar mısın bilmemm Şöyle bir hata veriyor... Autoıt Error Line 15 (file ""): Error : "Next" Statement with no matching "For" statement. Eğer bunu yapamadıysan dediklerimi coda dökersen sevinirim Şöyle Eğer klasör veya uzantılı dosya gizliyse gizliliği kaldır..Else yani değilse dosyayı veya klasörü gizle..Bunları yaparkene lütfen msgboxda bilgi vermesin:D ayrıca da yukarda yazdığın gibi de birden fazla dosya ve klasör secip gizleme veya gizlilği iptal etme olursaa Dile benden ne dilersen.. Bunları istiyorum çünkü 1 haftaya kalmaz xp yapıyorum uploadlaycam sitenize Şimdiden cok saol senide yordum ama.... (Ayrıca sonda yazdığın gibi de klasörü gizli ypasın lütfen:D) Link to comment Share on other sites More sharing options...
MostWanted Posted July 10, 2010 Share Posted July 10, 2010 If $Cmdline[0] <> 0 Then $attrib="+H" $hata=False For $i=1 To $Cmdline[0] If StringInStr(FileGetAttrib($Cmdline[$i]), "D") Then If StringInStr(FileGetAttrib($Cmdline[$i]),"H") Then $attrib ="-H" FileSetAttrib($Cmdline[$i], $attrib,1) $dosyalarilistele=_FileFolderList($Cmdline[$i]) If Not @error Then For $t = 1 To $dosyalarilistele[0][0] $returnattrib=FileSetAttrib($dosyalarilistele[0][$t], $attrib) If Not $returnattrib Then $hata=True Next EndIf Else If StringInStr(FileGetAttrib($Cmdline[$i]),"H") Then $attrib ="-H" $returnattrib=FileSetAttrib($Cmdline[$i], $attrib) If Not $returnattrib Then $hata=True EndIf Next If $hata Then MsgBox(16, "Hata!", "Bazı dosyaların özellikleri değiştirilirken hata oluştu!") Else MsgBox(64, "Başarılı!", "Bütün dosyalar başarıyla gizlendi!") EndIf EndIf Func _FileFolderList($path) Dim $return[2][1000000] If StringRight($path,1) <> "\" Then $path &="\" $search = FileFindFirstFile($path & "*") If @error = 1 Then SetError(2) If Not StringInStr(FileGetAttrib ( $path), "D") Then Return SetError(1) $afile = 0 $folder = 0 While 1 $file = FileFindNextFile($search) If @error = 1 Then ExitLoop If @extended = 1 Then $folder += 1 $return[1][$folder]=$path & $file Else $afile += 1 $return[0][$afile]=$path & $file EndIf WEnd FileClose($search) $return[1][0]=$folder $return[0][0]=$afile ReDim $return[2][_Max($folder, $afile)+1] Return $return EndFunc ;==>_FileFolderList Func _Max($nNum1, $nNum2) If $nNum1 > $nNum2 Then Return $nNum1 Else Return $nNum2 EndIf EndFunc ;==>_Max Hızlı yazayım derken küçük bir endif i kaçırmışım Bu arada klasörü de gizle olayını hallettim.Hem klasörü hemde içindekiler dosyaları gizliyor..Bu arada ben Trabzonluyum Vakfıkebirde oturuyorum yemeği isterim bak Edit:Gizliyse görünür görünürse gizli yapar..Ayrıca msg boxu istemiyosan kendin kaldırabilirsin ama zaten bir kere Msgbox veriyor bence kaldırma yani.. Link to comment Share on other sites More sharing options...
SimpsoN_Bart Posted July 10, 2010 Author Share Posted July 10, 2010 Program süper oldu yaptum xpde kulllancam cokk saol++++++++++++++++++++++++:D.D Link to comment Share on other sites More sharing options...
MostWanted Posted July 10, 2010 Share Posted July 10, 2010 Dediğim gerçekten doğru v.kebirde oturuyorum ama gerek yok yemeğe tşk ederim Sen sorularını burdan sormaya devam et ben sana yardım ederim merak etme Link to comment Share on other sites More sharing options...
SimpsoN_Bart Posted July 10, 2010 Author Share Posted July 10, 2010 Saolsaın... Link to comment Share on other sites More sharing options...
SimpsoN_Bart Posted July 10, 2010 Author Share Posted July 10, 2010 Yaaa son olarak birden fazla dosya secip gizle dediğimde nie bu öge taşı menüsü geliyor onada bi baksan iyi olur..Yeni fark ettim kusura bakma :S Link to comment Share on other sites More sharing options...
MostWanted Posted July 11, 2010 Share Posted July 11, 2010 Kusra bakma dün yorgundum erkenden yattım sorunu şimdi gördüm Onun çıkmasının sebebi sanırım birden fazla dosyanın özelliğini değiştirdiğinden oluyor.Sadece 1 dosya seçiliyken yapıyorsa gerçekten bir sorun ama diğer türlü yapabileceğimiz bişe yok windows işte Bu arada ben yomra fen de okuyorum ama özel konuları öm den konuşalım Link to comment Share on other sites More sharing options...
SimpsoN_Bart Posted July 11, 2010 Author Share Posted July 11, 2010 ++++Çok sağol ilgilendiğin için ufakk bi konu içinde seni yordum k.bakma basarılarının devamını dilerim.. sağlıcakla Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.