Zitat Zitat von Sawyer Beitrag anzeigen
Code:
using System.Runtime.InteropServices;
Benötigte API:
Code:
[DllImport("user32.dll")]
public static extern int GetAsyncKeyState(Keys vKey);
Code:
Code:
while (true)
{ 
     if ((GetAsyncKeyState(Keys.Escape) == -32767)) {
          MessageBox.Show("ESC-Taste wurde betätigt!");
     }
}
Du solltest das ganze (Wenn du es in einer WinForms Anwendung Verwendest) in einem Extra Thread auslagern , da sonst deine Anwendung "Einfriert".
Also, ich werde erstmal diese Möglichkeit hier nutzen, da sie mir im Moment erstmal am Einfachsten erscheint ( wenn ich in den Ferien mehr Zeit habe, werde ich das noch mal optimieren und mich den anderen Varianten zuwenden).

Also ich habe jetzt das hier oben hinzugefügt:

Code:
using System.Runtime.InteropServices;
using System.Threading;
Zudem habe ich nun noch folgendes geändert:

Code:
public Form1()
        {
            
            
           
            InitializeComponent();
            update();  // update funktion

            KeyPress += new KeyPressEventHandler(keypressed); //brauche ich für die ursprüngliche Hotkey Variante, die leider nicht funktionierte, wie sie sollte
            while (true)
            {
                Thread.Sleep(50);
                if ((GetAsyncKeyState(Keys.Escape) == -32767))
                {
                    MessageBox.Show("ESC-Taste wurde betätigt!");
                }
            }
Problem: Wenn ich das Programm starte läuft zwar die Updatefunktion (merke ich daran, dass Zone Alarm bei dem Programm nach der Internetverbindung fragt), aber danach kommt nichts mehr (auch komischerweise das Fenster nicht (Form)).

Vermutlich liegt das daran/ am falschen Einbau der "while-Schleife" : "Du solltest das ganze (Wenn du es in einer WinForms Anwendung Verwendest) in einem Extra Thread auslagern , da sonst deine Anwendung "Einfriert"."

Es wäre sehr freundlich, wenn du mir das noch etwas eingehender erklären könntest.

Danke

MfG. -DoS