asmazh Posted March 1, 2011 Share Posted March 1, 2011 [color="#FF0000"]Arkadaslar uzun zamandır bu konu hakkında arastırma yapıyorum...[/color] [color="#FF00FF"] bir projem var 1 button'a tıklayacağım ve işletim sisteminin bulunduğu disk yada tum diskler birlestirilecek... bir kaç arkadas şu kodları verdiler ;[/color] [code]RunWait(@ComSpec & "/start "&@HomeDrive&" /M /M ", "", @SW_SHOW) [/code] yada bunu ; [code]RunWait(@ComSpec & " /C defrag /H /C /M", "", @SW_SHOW) [/code] [color="#FF00FF"]Fakat bu kodlarla disk birleştirme işlemi olmuyor. Açıldığı gibi kapanıyor. BAŞLAT/TumProgramlar/Donatılar/Sistem Araçları/Disk Birleştirici burada örneğin "C" diskini birlestiriyorum bu AutoİT ile mumkun degilmi ? EĞER MUMKUNSE: Disk birlestirilirken Progress in dolması mumkunmu ?[/color] [color="#FF0000"]Bu konu hakkında sizden acil yardım bekliyorum...[/color] Quote Link to comment Share on other sites More sharing options...
blue_life Posted March 1, 2011 Share Posted March 1, 2011 @asmazh defrag.exe nin haliyle farklı sistemler için farklı parametreleri mevcut olabilir. Kullandığın sistem nedir bilmiyorum, lakin komut istemini açıp, komut isteminde defrag /? yazıp entera bas. Ilgili programın parametreleri çıkar. Parametrelere gözatıp, kendin için uygun parametreleri kullanırsın. Tabi genel bir çalışma yapmak istersen, diğer farklı sistemlerdeki defrag.exe nin parametrelerine bakman lazım... Umarım anlamıştırsın, kolay gelsin... Quote Link to comment Share on other sites More sharing options...
asmazh Posted March 1, 2011 Author Share Posted March 1, 2011 Öncelikle ilgilendiğin için sağol. kullandığım işletim sistemi WİNXP SP3 CMD e defrag yaziyorum. Soyle bir komut girmem isteniyor; Defrag <birim> [-f] [-f] [-v] [-?] -f: birleştirme bunun autoit ile kodladını verebilirmisiniz ? disk birleştirilirken progress in dolmasını istiyorum. bu konu hakkındada yardım ederseniz sevinirim... Quote Link to comment Share on other sites More sharing options...
asmazh Posted March 1, 2011 Author Share Posted March 1, 2011 AYRICA cmd ye :defrag <C:> [-f] yazıp enterliyorum ERİSİM ENGELLENDİ DİYOR... Quote Link to comment Share on other sites More sharing options...
Akozdem!R Posted March 1, 2011 Share Posted March 1, 2011 Birde Cmd'de aşağıdakini dene. [code]%windir%\SYSTEM32\DEFRAG.EXE c: -f[/code] Quote Link to comment Share on other sites More sharing options...
blackman12 Posted March 1, 2011 Share Posted March 1, 2011 neden yeni konu açtın bunun için bilmiyorum o kodları ben vermiştim ve Win7 de bu kodlar geçerli sen xp için demiş olsaydın yapardık bişiler. Quote Link to comment Share on other sites More sharing options...
asmazh Posted March 1, 2011 Author Share Posted March 1, 2011 (edited) Kusura Bakmayın Lütfen... Bu arada winxp için kod verebilirmisiniz. Onun yanında birleştirme çalışırken misal progresin dolmasını istiyorum böyle bir şey olabilirmi? Edited March 1, 2011 by asmazh Quote Link to comment Share on other sites More sharing options...
blackman12 Posted March 1, 2011 Share Posted March 1, 2011 [code]Local $foo = Run(@ComSpec & " /C defrag "&@HomeDrive&" -f", @SystemDir, @SW_HIDE, 6), $line = "" While ProcessExists($foo) $line &= StdoutRead($foo) If @error Then ExitLoop $line &= StderrRead($foo) If @error Then ExitLoop Wend MsgBox(0, "STDERR read:", $line)[/code] Bu kod ile cmd deki yazılanlan verileri çekebilirsin.Ve buradan çekeceğin değerlere göre progresi ayarlayabilirsin. Oradan progress değerini nasıl çekicem, progresi nasıl ayarlıcam tarzı sorularına yanıt vermicemi şimdiden söylim de ben Quote Link to comment Share on other sites More sharing options...
burak_489 Posted March 3, 2011 Share Posted March 3, 2011 [font="Courier New"][size="3"][b]Progressbar değerini çekmek için [/b][/size][/font][font="Courier New"][size="3"][b]msctls_progress321 isimli elementi yakaladıktan sonra [/b][/size][/font][font="Courier New"][size="3"][b]SendMessage(Elementin handle değeri, PBM_DELTAPOS , 0, 0) dedikten sonra değeri çekebilirler.aynı zamanda minimum ve maksimum değerler de alınabilir.[/b][/size][/font] Quote Link to comment Share on other sites More sharing options...
asmazh Posted March 9, 2011 Author Share Posted March 9, 2011 Blackman12 verdiğiniz kodlarda sanırım hata var 1. sütünda hata veriyor... Quote Link to comment Share on other sites More sharing options...
blackman12 Posted March 9, 2011 Share Posted March 9, 2011 1. sutun derken Quote Link to comment Share on other sites More sharing options...
burak_489 Posted March 10, 2011 Share Posted March 10, 2011 [b]1. sutün değil 1. satır.en sona ) eklediğinde çalışması lazım...[/b] Quote Link to comment Share on other sites More sharing options...
blue_life Posted March 10, 2011 Share Posted March 10, 2011 (edited) @burak_489 Bu tip hatalar bazen gözden kaçabiliyor... Bu arada parametre xp ve benzerleri içindir. Düzeltme; [codebox]Local $Drive = "C:" Local $foo = Run(@ComSpec & " /C defrag " & $Drive & " -f ", @SystemDir, @SW_HIDE, 6), $line While ProcessExists($foo) $line &= StdoutRead($foo) If @error Then ExitLoop WEnd MsgBox(0, "StdoutRead:", $line)[/codebox] Edited March 10, 2011 by blue_life Quote Link to comment Share on other sites More sharing options...
blackman12 Posted March 10, 2011 Share Posted March 10, 2011 Eehe napmışım ben ya Kodları değiştirirken eski kod kalmış üstünde neyseki blue_life olması gerekeni vermiş. Bende mesajımı düzenledim. 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.