Új hozzászólás Aktív témák

  • Capricornus

    aktív tag

    Sziasztok!

    A probléma a következő: egy graf. felületű progit kell win xp alatt vezérelni automatikusan, ezt megoldottam virtuális billentyű lenyomásokkal (keybd_event), viszont ez csak akkor működik, ha aktív a kérdéses ablak.
    Most próbálok a progiba beépíteni egy olyan megoldást, hogy PID alapján mindig előtérbe hozza és aktívvá tegye az ablakot, arra az esetre, ha valami miatt lekerülne róla a fókusz.
    Egy ismerősöm küldött egy forrást amit próbálok beépíteni a progimba, de ez csak félig jó, mert előtérbe hozza az ablakot, de utána nem aktiválja:(
    Ha valakinek van valami ötlete, vagy javaslta azt szivesen fogadom. a Forrás:

    #include <windows.h>
    #include <stdio.h>
    #include <iostream>

    using namespace std;

    int procId;

    HWND windowHandle;

    BOOL CALLBACK MyEnumProc(HWND hWnd, LPARAM lParam)
    {
    DWORD processId;
    GetWindowThreadProcessId(hWnd,&processId);
    int id = processId;
    if(procId == id)
    {
    windowHandle = hWnd;
    return FALSE;
    }
    return TRUE;
    }

    int main(int argc, char **argv) {
    if (argc < 2) {
    cout << "Használat: filenév processId" << endl;
    } else {
    procId = atoi(argv[1]);
    EnumWindows(MyEnumProc,0);
    if (windowHandle != NULL) {
    SetForegroundWindow(windowHandle);
    SetActiveWindow(windowHandle);
    }
    }
    }

Új hozzászólás Aktív témák