kostenloser Webspace werbefrei: lima-city


[C#]Fenster in den vordergrund bringen

lima-cityForumProgrammiersprachenProgrammieren mit .NET & Mono

  1. Autor dieses Themas

    raff

    raff hat kostenlosen Webspace.

    Hey
    ich versuch grad ein programm zu schreiben das eine anwendung in den vordergrund bringt (ein spiel), eine taste drückt und dann die anwendung in der man gearbeitet hat wieder zurück in den vordergrund bringt.

    mein versuch sieht so aus:
    System.IntPtr curProcess = GetForegroundWindow(); //offenen prozess ermitteln
    System.IntPtr MainHandle = Process.GetProcessById(ID).MainWindowHandle; //Spiel ermitteln
    SetForegroundWindow(MainHandle); //Spiel maximieren
    SendKeys.Send(key);  //Taste drücken
    SetForegroundWindow(curProcess);//Alten prozess in vordergrund bringen


    allerdings wird nur das spiel maximiert und die taste gedrückt.
    der alte prozess bleibt aber im hintergrund.

    kann mir da pls jemand helfen?

    Beitrag zuletzt geändert: 6.6.2011 14:34:09 von raff
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. t******r

    Hallo raff,

    Kannst du curProcess mal ausgeben und den Integer mit der ProzessID vergleichen?

    Gruss
    pete
  4. Autor dieses Themas

    raff

    raff hat kostenlosen Webspace.

    thegeter schrieb:
    Hallo raff,

    Kannst du curProcess mal ausgeben und den Integer mit der ProzessID vergleichen?

    Gruss
    pete


    ok
    curProcess: 723504 (ändert sich auch wenn ich ein anderes fenster im vordergrund hatte)
    MainHandle: 199506

    achja.. wenn ich das spiel offen habe ist mainhandle und curporcess identisch
  5. t******r

    raff schrieb:
    achja.. wenn ich das spiel offen habe ist mainhandle und curporcess identisch


    Wird dabei MainHandle gleich curProcess, oder umgekehrt?
    Je nach dem hätten wir dann schon den Fehler ^^

  6. Autor dieses Themas

    raff

    raff hat kostenlosen Webspace.

    hat sich erledigt.
    war nen ganz dummer fehler^^
    sendkeys braucht nen bischen deswegen musste ich ne kleine pause einbauen^^
    System.IntPtr curProcess = GetForegroundWindow();
                System.IntPtr MainHandle = Process.GetProcessById(ID).MainWindowHandle;
                SetForegroundWindow(MainHandle);
                SendKeys.Send(key);
                Thread.Sleep(100);
                SetForegroundWindow(curProcess);


    danke für die hilfe
  7. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!