Warten bis anderes Programm "idle" ist



  • hallo,

    ich möchte in meinem C-Programm eine Funktion aufrufen sobald eine andere Anwendung (zb Excel) "idle" also nicht beschäftigt ist. Wie kann ich das realisieren? Es würde auch reichen, wenn mein code einfach solange wartet bis die gewünschte anwendung "idle" ist

    vielen dank,

    mfg, TFTS



  • ich weiß nicht ob es das ist was du suchst...
    -> das heißt aber du startest excel aus deinem Programm heraus... und wartest dann auf Idle
    path ist der Pfad zu der *.exe die gestartet werden soll
    workingDir ist das Arbeitsverzeichnis der Exe

    STARTUPINFO si;
    PROCESS_INFORMATION pi;
    ZeroMemory( &si, sizeof(si) );
    si.cb = sizeof(si);
    ZeroMemory( &pi, sizeof(pi) );
    si.dwFlags = STARTF_USESTDHANDLES|STARTF_USESHOWWINDOW; 
    si.wShowWindow = SW_SHOWMINIMIZED;							
    CreateProcess(NULL, path ,NULL,NULL,FALSE,0,NULL, workingDir,&si,&pi);
    WaitForInputIdle( pi.hProcess, INFINITE );
    CloseHandle( pi.hProcess );
    CloseHandle( pi.hThread );
    


  • nee das ist es leider nicht. das hatte ich auch schon gefunden. aber ich hab das selbe problem, wie der in dem original thread. die waitforobject funktion springt schon weiter bevor das programm fertig ist mit laden

    trotzdem danke

    mfg, TFTS



  • TFTomSun schrieb:

    ich möchte in meinem C-Programm eine Funktion aufrufen sobald eine andere Anwendung (zb Excel) "idle" also nicht beschäftigt ist. Wie kann ich das realisieren? Es würde auch reichen, wenn mein code einfach solange wartet bis die gewünschte anwendung "idle" ist

    meinste das: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/waitforinputidle.asp ?



  • TFTomSun schrieb:

    nee das ist es leider nicht. das hatte ich auch schon gefunden. aber ich hab das selbe problem, wie der in dem original thread. die waitforobject funktion springt schon weiter bevor das programm fertig ist mit laden

    trotzdem danke

    mfg, TFTS

    also ich seh da keine WaitForObject Funktion...
    Oder meinst du die WaitForInputIdle(...) Funktion?
    Läuft der da einfach bei dir drüber?
    Und überhaupt... welcher thread?



  • jo ich meinte die waitforidle funktion ...

    es gibt da nen thread im forum, in dem genau das problem schon mal besprochen wurde. Der der den Thread erstellt hatte, hatte genau das selbe problem ... also dass bei waitforidle nicht wirklich gewartet wird bis das programm fertig mit laden ist

    mfg, TFTS

    PS: jo, es scheint so als ob er einfach drüber läuft (habs mal mit der steam.exe getestet)


Anmelden zum Antworten