_arraydisplay geht net-_-

  • hier mein testcode... die PID bekomm ich, aber der array wird ums verrecken nicht angezeigt.
    laut forensuche machen das alle so! was mach ich den falsch?

    [autoit]

    #include <array.au3>

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

    $te = ProcessExists("oracle.exe")
    msgbox(0,"",$te)
    $1234 = ProcessGetStats($te)
    _ArrayDisplay($1234)

    [/autoit]

    EDIT: @error wird auf 1 gesetzt, und laut hilfe heißt es "1 - $avArray ist kein Array"

    aber laut hilfe muss doch ein array bei ProcessGetStats zurückgegeben werden?

  • ja ich habs auch mal probiert mit nem anderen prozess, da funktioniert es! nur mit dem oracle.exe nicht... der prozess ist aber da.
    versteh ich nicht^^

    edit: vll weil der prozess zu einem Service gehört?

  • Du kannst dir zum debuggen auch mal eine vollständige Prozessliste ausgeben lassen:

    [autoit]


    $temp=ProcessList()
    _arrayDisplay($temp)

    [/autoit]

    Möglicherweise musst du dein Script auch explizit als Administrator ausführen wenn der Prozess nicht auf deinem User Account läuft (System Service?). Selbst wenn du als Administrator angemeldet bist könnte UAC verhindern, dass du das Script mit Administratorrechten ausführst. Im Zweifel solltest du ein #requireadmin an den Scriptanfang setzen.

  • UAC is aus, habe aber trotzdem mal als admin ausgeführt, immernoch selbes problem, obwohl es bei processlist angezeigt wird!

    EDIT: und ja es ist ein system prozess

    [autoit]

    #include <array.au3>
    #requireadmin
    ;$temp=ProcessList()
    ;_arrayDisplay($temp)

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

    $te = ProcessExists("oracle.exe")
    msgbox(0,"",$te)
    $1234 = ProcessGetStats($te,1)
    _ArrayDisplay($1234)
    msgbox(0,"",@error)

    [/autoit]
  • EDIT: und ja es ist ein system prozess


    Vielleicht solltest du dein Programm dann auch mit Systemrechten starten - nur mal testweise.

    In der Konsole (cmd.exe):

    Code
    at UHRZEIT /interactive 'PFAD'


    wobei UHRZEIT und PFAD durch entsprechende Werte ersetzt werden müssen.
    Uhrzeit = Jetzige Uhrzeit + 1 min.
    Pfad = Pfad deines Programmes

    mal schauen, ob es jetzt funktioniert.

  • chip: alles klar, glaub damit hat sich dann das problem auch geklärt^^


    SEuBo: meinst du das autoit programm oder die oracle.exe?

  • Warning: Due to security enhancements, this task will run at the time
    expected but not interactively.

    kommt als fehlermeldung^^

  • Vielleicht helfen ja die Debug-Rechte weiter: SetPrivilege("SeDebugPrivilege", 1) (Ich weiß gerade nur nicht mehr, wo es die Funktion gibt)
    Natürlich musst du um das aufrufen zu können auch Adminrechte haben (Bei UAC muss auch der UAC-Prompt bestätigt werden)