You are not logged in.

  • Login

1

Friday, May 20th 2011, 2:51pm

VB.NET bzw. C# : Erkennen ob die eigene >>>Konsolanwendung<<< gerade denn Focus hat, also das vom user ausgewählte Fenster(bzw. Anwendung) ist.

Hi,

ich schreibe ein kleines Spiel und als Herausforderung setze ich das in einer Konsolanwendung um. Da die .NET Key Abfragen zu lahm sind, verwende ich GetAsyncKeyState, welches aber leider die Taste im ganem System abhört, was ich aber brauche ist, das es NUR in der Anwendung abgehört wird. Deswegen dachte ich mir noch eine if Abfrage einzubauen, ist den das Fenster selektiert, bevor ich auf die Eingabe reagiere, aber ich habe keine Ahnung wie man das in einer Konsolanwendung anstellt. Amliebsten via WinAPI.

Kann mir einer Helfen?

2

Saturday, May 21st 2011, 3:15pm

GetForegroundWindow

GetActiveWindow
GetFocus

einfach überprüfen, ob das eigene Fenster das Fenster im Vordergrund ist.

3

Monday, May 23rd 2011, 8:41am

Funktioniert super, danke :),


Tue mich aber imemr noch schwer herauszufinden, was der Handler des aktuellen Konsolfensters ist. Bei Windows Forms anwendung ist es ja simpel. this.Handle aber bei Konsolanwendungen.

Habe bisher dashier versucht:

VisualBasic Quellcode

1
2
3
4
5
6
7
8
9
10
11
Public Shared ReadOnly Property Handle As IntPtr
        Get
            Dim p As Process() = Process.GetProcesses()
            For Each Prc As Process In p
                If Prc.ProcessName.Contains(Title) Then
                    Return Prc.Handle
                End If
            Next
            Return GetForegroundWindow()
        End Get
    End Property


Aber keine Reaktion.

Social bookmarks