2012-05-24 18 views
5

Ich möchte ein X-Chat-Plugin schreiben, mit dem Benutzer eine CTCP-Anfrage an meinen Client senden können, wobei das Plugin/X-Chat mit meinem aktuellen aktiven Fenstertitel antwortet.Aktueller Fenstertitel in C

Das wäre wirklich cool für andere IRC-Benutzer zu sehen, was ich vorhabe, damit sie bestimmen können, was ich mache, wenn ich im Vollbildmodus bin (ein Spiel spielen, ein Video ansehen usw.).

Plugins für X-Chat sind in C geschrieben, also brauche ich eine Möglichkeit, den aktuellen aktiven Fenstertitel mit Windows API-Calls von C zu ermitteln. Kann jemand darüber beraten, wie dies geschehen könnte?

Danke.

+0

Nein, Sie brauchen nicht zu. Sie können auch Python oder Perl verwenden. – Gandaro

Antwort

12

I denken Sie GetForegroundWindow() verwenden können, ein Handle auf das Fenster erhalten die Benutzer verwendet und dann GetWindowText() verwenden, um die Titel zu erhalten:

HWND foreground = GetForegroundWindow(); 
if (foreground) 
{ 
    char window_title[256]; 
    GetWindowText(foreground, window_title, 256); 
} 
+3

Verwenden Sie "GetForegroundWindow", wenn Sie nach dem aktuell aktiven Fenster unter * all * -Prozessen suchen, oder verwenden Sie "GetActiveWindow", wenn Sie nur in * Ihrem * Prozess nach dem aktiven Fenster suchen. Siehe [Schließlich ist nichts mehr besonders] (http://blogs.msdn.com/b/oldnewthing/archive/2008/10/06/8969399.aspx). –

+0

@AdamRosenfield, danke für diesen Link. – hmjd