Jump to content

Autoit Disk Birleştirme


asmazh
 Share

Recommended Posts

[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]
Link to comment
Share on other sites

@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...

Link to comment
Share on other sites

Ö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...

Link to comment
Share on other sites

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 by asmazh
Link to comment
Share on other sites

[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 :D

Link to comment
Share on other sites

[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]


Link to comment
Share on other sites

@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 by blue_life
Link to comment
Share on other sites

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...