Brauche Kleine Hilfe (bin anfänger)

  • Hallöchen an alle,

    ich habe folgendes problem:

    ich will eine art benchmark machen... ich will den arbeitsspeicher arbeiten lassen und 4 verschiedene programme gleichzeitig immer wieder aufrufen lassen, und dannach sofort wieder schließen. ich habe jetzt 5 scripte gemacht, eins zum starten der 4 anderen scripte und die 4, die die programme !Gleichzeitig! ausführen sollen. Meine erste frage ist, ob ich das auch mit multithreads machen kann, also mit einem script. soweit ich weiß geht das bei Autoit nicht, aber eine klare antwort habe ich noch nicht gefunden, weiß einer von euch bescheid?

    meine 2. frage ist, wie ich diese schleife (vom öffnen und schließen der Programme) nur eine bestimmte zeit lang ausführen kann. z.b 10 minuten, ein fenster zum auswählen der zeit wäre auch sehr praktisch :-), aber das werd ich sowieso net hinbekommen :rofl:

    hab schon die hilfe hundert mal durchgelesen, aber werde einfach nicht schlau daraus

    hier sind mal die 5 scripts, soweit ich imoment bin:

    [autoit]

    ;startet die 4 scripts
    shellexecute ("C:\Dokumente und Einstellungen\x-winter\Desktop\winword.exe")
    shellexecute ("C:\Dokumente und Einstellungen\x-winter\Desktop\powerpoint.exe")
    shellexecute ("C:\Dokumente und Einstellungen\x-winter\Desktop\excel.exe")
    shellexecute ("C:\Dokumente und Einstellungen\x-winter\Desktop\acrobat reader.exe")

    [/autoit][autoit]

    ;startet worddatei
    $word = 0
    For $ii =1 to 10
    For $i = 10 to 1 Step -1
    $dir1 = ShellExecute ("C:\Der Ordner\SUPPORT.DOT")
    if $dir1 then $word = $word+1
    winkill ($dir1)
    next
    next
    msgbox(0,"Auswertung","Die Datei Support.dot wurde in ?? Minuten " &$word&" mal ausgeführt")

    [/autoit][autoit]

    ;startet powerpointdatei
    $point = 0
    For $ii =1 to 10
    For $i = 10 to 1 Step -1
    $dir2 = ShellExecute ("C:\Der Ordner\QUIKANIM.PPT")
    if $dir2 then $point = $point+1
    winkill ($dir2)
    next
    next
    msgbox(0,"Auswertung","Die Datei Qikantm.PPt.dot wurde in ?? Minuten " &$point&" mal ausgeführt")

    [/autoit][autoit]

    ;startet exceldatei
    $excel = 0
    For $ii =1 to 10
    For $i = 10 to 1 Step -1
    $dir3 = ShellExecute ("C:\Der Ordner\SAMPLES.XLS")
    if $dir3 then $excel = $excel+1
    winkill ($dir3)
    next
    next
    msgbox(0,"Auswertung","Die Datei Samples.xls wurde in ?? Minuten " &$excel&" mal ausgeführt")

    [/autoit][autoit]

    ;startet adobedatei
    $adobe = 0
    For $ii =1 to 10
    For $i = 10 to 1 Step -1
    $dir4 = shellexecute ("C:\Programme\VPraster V8\Manual\Tutorial.pdf")
    if $dir4 then $adobe = $adobe+1
    winkill ($dir4)
    next
    next
    msgbox(0,"Auswertung","Die Datei Tutorial.pdf wurde in ?? Minuten " &$adobe&" mal ausgeführt")

    [/autoit]


    hoffe mir kann jemand helfen, wäre sehr dankbar :thumbup: und im vorraus schonmal danke :P

    ps: bin noch ein blutiger anfänger, also bitte Idiotenverständlich posten :D

    Einmal editiert, zuletzt von Assault Recon (5. September 2008 um 08:01)

  • hey,

    also jetzt sieht es folgendermaßen aus:

    [autoit]

    ;startet worddatei
    $word = 0
    $begin = timerinit()
    For $ii =1 to 10
    For $i = 10 to 1 Step -1
    $dir1 = ShellExecute ("C:\Der Ordner\SUPPORT.DOT")
    if $dir1 then $word = $word+1
    winkill ($dir1)
    next
    next
    timerdiff($begin)
    msgbox(0,"Auswertung","Die Datei Support.dot wurde in ?? Minuten " &$word&" mal ausgeführt")

    [/autoit]

    wo genau muss jetzt die zeit drin stehn?, so wie es jetzt aussieht, zeigt es mir ja die zeit nur in millisekunden an.

    • Offizieller Beitrag
    [autoit]

    Global $sktiptTime = 30 ; Sekunden
    Global $startSktipt = TimerInit()

    [/autoit][autoit][/autoit][autoit]

    AdlibEnable('_checkTime', 500)

    [/autoit][autoit][/autoit][autoit]

    While 1
    Sleep(100)
    ToolTip(@Hour & ":" & @MIN & ':' & @SEC, 0,0)
    WEnd

    [/autoit][autoit][/autoit][autoit]

    Func _checkTime()
    If TimerDiff($startSktipt) > 30 * 1000 Then Exit(0)
    EndFunc

    [/autoit]
  • das sieht jetzt imom. so bei mir aus:

    [autoit]

    ;startet worddatei
    Global $sktiptTime = 5 ; Sekunden
    Global $startSktipt = TimerInit()
    AdlibEnable('_checkTime', 500)

    [/autoit][autoit][/autoit][autoit]

    $word = 0
    For $ii =1 to 10
    $dir1 = ShellExecute ("C:\Der Ordner\SUPPORT.DOT")
    if $dir1 then $word = $word+1
    winkill ($dir1)
    next
    While 1
    Sleep(100)
    ToolTip(@Hour & ":" & @MIN & ':' & @SEC, 0,0)
    WEnd
    Func _checkTime()
    If TimerDiff($startSktipt) > 30 * 1000 Then Exit(0)
    EndFunc
    msgbox(0,"Auswertung","Die Datei Support.dot wurde in ?? Minuten " &$word&" mal ausgeführt")

    [/autoit]

    wird eher nicht gehn^^

    kannst du mir noch sagen wie ich deinen code bei mir einfügen muss?

    wie gesagt bin halt ein totaler anfänger sry^^

    • Offizieller Beitrag

    Ich würde es so machen:

    [autoit]


    ;startet worddatei
    Global $sktiptTime = 5000 ; in Millisekunden
    Global $startSktipt = TimerInit()

    [/autoit][autoit][/autoit][autoit]

    $word = 0
    While TimerDiff($startSktipt) < $sktiptTime
    $dir1 = ShellExecute ("C:\Der Ordner\SUPPORT.DOT")
    if $dir1 then
    $word += 1 ; Kurzform von $word = $word + 1
    WinKill('SUPPORT.DOT') ; Hier muss der Titel des Fensters eingetragen sein!
    EndIf
    WEnd
    msgbox(0,"Auswertung","Die Datei Support.dot wurde in " & Int(TimerDiff($startSktipt)/1000) & " Sekunden " & $word & " mal ausgeführt")

    [/autoit]
  • genau so hab ich mir das vorgestellt!

    vielen dank ihr beiden ist perfekt ;)

    edit: das winkill ist nicht zu empfehlen, da die programme dann alle (im taskmanager nachgesehn) als prozesse laufen XD

    aber sonst läuft es einwandfrei :)

    Einmal editiert, zuletzt von Assault Recon (4. September 2008 um 15:09)