Benutzer mit den meisten Antworten
Programm permanent aktiv im Vordergrund halten?

Frage
-
Hallo,
ich möchte ein Programm permanent im Vordergrund und aktiv halten, sprich, wenn das Programm den Focus verliert (User schaltet z.B. mit ALT-TAB um) soll sich das Programm dennoch sofort wieder in den Vordergrund bringen und aktivieren. Hintergrund: Es soll eine Anwendung werden, welche auf einem Rechner ohne Monitor läuft, an welchem der User Barcodes einscannen kann und entsprechende Ausdrucke erhält. Wäre soetwas möglich? Wenn ja, wie?
Für Eure Tipps dankend,
Klaus
No Brain - No Pain
Antworten
-
Hallo Klaus,
- Ich brauch [noch] den Focus ...
Lösungen diesbzgl. zum Beispiel (zunächst mal ungeprüft) :
[winforms - C# Force Form Focus - Stack Overflow]
http://stackoverflow.com/questions/46030/c-force-form-focus
ciao Frank- Als Antwort markiert Klaus Mayer Montag, 23. Mai 2011 17:54
Alle Antworten
-
Hallo Klaus,
Obwohl es technisch machbar ist, würde ich davon abraten. Siehe:
Raymond Chen - How do I create a topmost window that is never covered by other topmost windows?
http://blogs.msdn.com/b/oldnewthing/archive/2011/03/10/10138969.aspxIch denke: Wenn Deine Anwendung keinen Monitor benötigt, dann benötigt sie auch keine Benutzeroberfläche, oder? Vielleicht könntest Du dir mal POS anschauen.
Microsoft Point of Service for .NET
http://www.microsoft.com/windowsembedded/de-de/products/readyproducts/posready/overview.mspxGruß
Marcel -
Hallo Klaus,
solche Anforderungen gibt es und das ist (dann) vollkommen ok und das ist natürlich möglich.
Wenn das abgesprochen ist mit dem Kunden und dies auch der Sinn der App ist, würde ich dann in dem Fall davon nicht abraten.
Es ist nun entscheidend, ob und was noch alles verhindert werden soll/muss.
Zunächst würde man natürlich zumindest das TopMost = true benutzen. Etwa:
this.TopMost=true; // this.ControlBox=false;
Dann kann man zum Beispiel einen Timer benutzen, der das Fenster ggf. mittels SetForeGroundWindow in den Vordergrund holen.
Bei stärken Anforderungen zum Beispiel:
[How to disable windows start key, (Alt +F4), (ctrl + Alt +Del ) in c# windows application C# .NET]
http://www.eggheadcafe.com/community/aspnet/2/10076502/how-to-disable-windows-start-key-alt-f4-ctrl--alt-del--in-c-windows-application.aspx
ciao Frank -
Hi,
danke Euch für Eure Tipps! Der Kunde bin ich in diesem Fall selbst :) Daher habe ich auch wenig Bedenken, eine solche Lösung einzusetzen. Ich hab nur keinen Bock mehr darauf, mich jeden Tag per Remote durch x Rechner zu hangeln und eine alte Access-Anwendung in den Vordergrund zu klicken oder irgendwelche USB-Drucker neu anzupassen. Die Drucker hab ich schon im Griff, die drucken jetzt auch ohne Treiber. Und mit dem Programm will ich halt auf Nummer sicher gehen :) Hab nur leider keinen Plan, wie ich mein o.g. Problem lösen könnte. SetForeGroundWindow habe ich mir schon angeschaut, ist aber eben nur die halbe Miete. Ich brauch den Focus wieder auf meiner Anwendung....
Schöne Grüße,
Klaus
No Brain - No Pain -
Hallo Klaus,
- Ich brauch [noch] den Focus ...
Lösungen diesbzgl. zum Beispiel (zunächst mal ungeprüft) :
[winforms - C# Force Form Focus - Stack Overflow]
http://stackoverflow.com/questions/46030/c-force-form-focus
ciao Frank- Als Antwort markiert Klaus Mayer Montag, 23. Mai 2011 17:54
-
Hallo Klaus,
Und was machst Du bei einem UAC-Prompt? Oder bei einem anderen wichtigen, systemmodalen Dialog? - Wie willst Du denn da die Anwendung "permanent im Vordergrund und aktiv halten"? - Bevor Du mit copy & paste den verlinkten Code wiederkehrend ausführst, lies Dir doch die Dokumentation zur SetForegroundWindow-Funktion durch (vor allem die "Remarks"). Das erspart Dir spätere Enttäuschung und evtl. Datenverlust. Windows ist ein kooperatives Betriebsystem und ist nicht dafür gedacht, eine einzige Anwendung auszuführen.
Gruß
Marcel- Als Antwort vorgeschlagen Marcel RomaModerator Montag, 23. Mai 2011 18:28