Prüfen ob BB-Fenster aktiv ist

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

faeX

Betreff: Prüfen ob BB-Fenster aktiv ist

BeitragSo, Mai 01, 2011 15:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo. Smile

Habe hier schon gesucht wie man überprüft ob das B3D-Fenster aktiv ist (kein B+!). Von der WinAPI habe ich absolut keine Ahnung, zumal ich auch nicht weiß, wie man an das eigene Fensterhandle kommt. AutoSuspend ist NICHT das was ich suche. Wie sehen die decls aus um a) an das eigene Fensterhandle, b) an das aktive Fensterhandle zu kommen?

Mit freundlichen Grüßen Smile

Der Eisvogel

BeitragSo, Mai 01, 2011 15:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Für das eigene Fenster-Handle kannst du SystemProperty mit dem Parameter "ApphWnd" verwenden.
Um das aktive Fenster deines Programms zu bekommen, nutze GetActiveWindow() aus der WinAPI.
Um das aktive Fenster generel oder auch das Vordergrundfenster zu bekommen, nutze GetForegroundWindow().

Decls:
Zitat:
.lib "user32.dll"
GetActiveWindow%() = "GetActiveWindowA@0"
GetForegroundWindow%() = "GetForegroundWindow@0"


Ich hoffe die Decls stimmen. Hab schon lange keine mehr für B3D geschrieben Wink

MfG
Der Eisvogel
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D
Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB
Projekte: Window-Crasher
Ich liebe es mit der WinAPI zu spielen.

faeX

BeitragSo, Mai 01, 2011 15:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Ohne Witz: Blitz3D startet mit der .decls nicht mehr. Shocked Im Taskmanager kann man Blitz3D und blitzcc noch unter den Prozessen sehen, aber es kommt kein Fenster. Ohne die .decls gehts...
Hab IDE V1.106.

Edit: Win7 64bit

faeX

BeitragSo, Mai 01, 2011 16:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
.lib "user32.dll"
GetActiveWindow%(): "GetActiveWindowA@0"
GetForegroundWindow%(): "GetForegroundWindow@0"


Edit:
Zitat:
User lib function not found

bei GetActiveWindow(). Wird aber gehighlightet, die Userlib akzeptiert er also.

Edit:
Zitat:
.lib "user32.dll"
GetActiveWindow%(): "GetActiveWindow"
GetForegroundWindow%(): "GetForegroundWindow"

Jetzt geht's. Smile

Der Eisvogel

BeitragSo, Mai 01, 2011 16:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Jau stimmt hab "=" mit ":" verwechselt. Und GetActiveWindow hat wohl doch kein A hinten dran. Ich hätte schwören können es hätte mal eins gehabt.
Also so sollte es dann gehen:
Zitat:
.lib "user32.dll"
GetActiveWindow%() : "GetActiveWindow@0"
GetForegroundWindow%() : "GetForegroundWindow@0"


MfG
Der Eisvogel
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D
Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB
Projekte: Window-Crasher
Ich liebe es mit der WinAPI zu spielen.

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group