Hallo liebe C#'ler,
ich habe momentan ein Problem wo ich absolut keine Lösung für finde, weil mir der ganze Gedankenansatz fehlt (Brett vor'm Kopf 😉 ). Ich versuche mein Problem mal genau zu bescheiben:
Ich möchte ein Programm erstellen, was einen kleinen rechteckigen Kasten zeichnet der JEDERZEIT (und das ist das wichtigste) vor einer externen Anwendung ist. Nun wäre das ja kein Problem, wenn man erst die externe Anwendung öffnet und hinterher den Kasten zeichnet, nur gibt es das Problem dass sich die externe Anwendung aufgrund von Geschehnissen innerhalb des Programms selber den Focus gibt und damit OnTop springt. Das soll bzw darf aber nicht passieren. Sprich mein Programm sollte das direkt abfragen und sofort wieder vor die Anwendung springen (und wenn möglich ohne dass man auch nur einen Bruchteil einer sekunde den Teil der externen Anwendung sieht der vorher verdeckt war).
Ich weiß dass es geht, da ich das schonmal in einem Anderen Programm gesehen habe (hoffe das ist auch mit C# lösbar), aber ich weiß momentan gar nicht wie ich an die Sache rangehen soll und ich wäre hier für jeden Rat und jeden Tipp dankbar.
PS: Was ich noch vergessen habe zu erwähnen was aber eigentlich selbstverständlich sein sollte: Das ganze sollte Ressourcenschonend sein 🙂
Danke im Vorraus 👍
Jeder fängt mal klein an!
Ich weiss nicht, ob die TopMost Eigenschaft auch die Fenster anderer Prozesse nach hinten drückt. Ich glaube aber nicht.
Du kannst jedoch radikal immer SetForegroundWindow aufrufen um dein Fenster vorne zu halten.
Ich glaube ausserdem, das so etwas keine Applikation tun sollte und du das Problem an anderer Stelle lösen solltest. Was willst du genau tun?
Shift to the left, shift to the right!
Pop up, push down, byte, byte, byte!
YARRRRRR!
Moin,
vor allen Dingen ist die Frage interessant vor was für eine Anwendung du das Fenster legen willst. Deine Hinweis auf die Performance lässt mich vermuten, dass du es über ein Spiel legen willst?
Gruß,
Markus 🙂
bestimmt so ein sniper der sich selber ein fadenkreuz baut, damit er nicht anvisieren muss bzw vorteile hat im nahkampf^^
Use the source, Luke!
Nur, weil man vor sich eine CPU hat, muß man das Denken nicht
einstellen.
Hi
Auch wenn es vielleicht etwas an Thema vorbei geht ...
Also wenn es nur um das Fadenkreuz geht ...
Ich hab auch schon Leute gesehen die sich ein kleines Klebeband auf den
Monitor geklebt haben und darauf ihr Fadenkreuz gezeichnet haben ...
Ist mit Sicherheit Ressourcenschonend 🙂
Beantwortet die Frage aber nicht ... X(
Gruß
Erstmal danke schön für eure Anworten.
Nein es soll nicht als Fadenkreuz dienen, aber ihr habt schon recht es soll vor ein Spiel. Um genau zu sein vor eine Pokeranwendung die sich selber den Fokus gibt sobald man an der Reihe ist.
Also was sind eure Vorschläge? 🙂
Jeder fängt mal klein an!
Die Pokeranwendung, läuft die in einer Windows-Form oder ist die Fullscreen? Verwendet die DirectX o.Ä?
Die Pokeranwendung, läuft die in einer Windows-Form oder ist die Fullscreen? Verwendet die DirectX o.Ä?
Sie läuft in einer Windows-Form und nicht Fullscreen. Aber ob sie DirectX benutzt kann ich dir leider nicht sagen. Wie kann ich das rausfinden?
Jeder fängt mal klein an!
Wie man das herrausfinden kann, kann ich dir zwar nicht sagen, aber sollte die Windows-Form - die ja letzendlich nur das D3DX-Device kapselt - fremde Forms nicht blocken o.ä.
Vielleicht hilft da schon die WM_KILLFOCUS(0x07) abzufangen und, wie GMLOD sagte, SetForegroundWindow zu benutzen.
Religionskriege sind Konflikte zwischen erwachsenen Menschen, bei denen es darum geht, wer den cooleren, imaginaeren Freund hat
Ich gehe einfach mal davon aus dass DirectX nicht benutzt wird. Aber wie müsste ich jetzt genau vorgehen? Ich habe mir die SetForegroundWindow-Funktion mal angeschaut, aber das bringt mich momentan nicht weiter. Wüsste nicht wie ich das jetzt genau in die Anwendung mit einbaue. 🤔
Jeder fängt mal klein an!
Hast du Form.TopMost jetzt schon probiert? Warum immer kompliziert wenn es uU auch einfach geht. Ich habe das ganz mal mit Piontifex2(derzeit das einzige Spiel, das ich am Lappi installiert hab) probiert und da klappt das einwandfrei.
Achso entschuldigung, hatte ganz vergessen da was zu zu schreiben: TopMost klappt leider nicht, da die Anwendung trotzdem sobald der Pokertisch den Fokus bekommt in den Hintergrund springt.
Jeder fängt mal klein an!