ActivateWindow für Konsole

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Ironsmurf
Beiträge: 111
Registriert: 04.01.2006 12:57
Computerausstattung: AMD FX(tm)-6300 Six-Core Processor
3.50 GHz / 8 GB Ram
Windows 7 / 64bit / Ultimate
Purebasic 5.20 LTS (Windows - x86)
Wohnort: Deutschland

ActivateWindow für Konsole

Beitrag von Ironsmurf »

Hallo zusammen

habe ein Konsolenprogramm geschrieben, das andere Programme über RunProgram aufruft, funktioniert auch alles gut, aber es gibt ja immer einen kleinen Wermutstropfen.
Wenn der RunProgram Befehl ausgeführt wurde, ist das gestartete Programm aktiv und nicht das Konsolenprogramm.
Frage: Wie muss ActivateWindow in einem Konsolenprogramm eingebaut werden, so das nach der Ausführung des Runprogram Befehls das Konsolenprogramm wieder aktiv ist ?

Vielen Dank für eure Mühe im voraus
Es kommt immer auf die Sichtweise des Betrachters an.
myself
Beiträge: 67
Registriert: 18.03.2006 12:48

Beitrag von myself »

Du musst mal das handle des konsolenfensters rausbekommen, dafür gibts mehrere methoden aber am einfachsten wirds wohl mit FindWindow_(0,"Fenstertitel") gehen.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

geht das nicht mehr mit

Code: Alles auswählen

 hWnd = OpenConsole( #Nr, ... )
afaik wird beim öffnen mit nummer (nicht mit #PB_Any) das Handle zurückgegeben.
jedenfalls war das unter 3.9x so...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Kaeru Gaman hat geschrieben: afaik wird beim öffnen mit nummer (nicht mit #PB_Any) das Handle zurückgegeben.
jedenfalls war das unter 3.9x so...
Seit wann hat die Console ne Numer ?
Es kann nur eine Console geöffnet werden, das war schon immer so, deshalb
auch keine Nummer und kein #PB_Any :wink:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag von edel »

Hatte OpenConsole ueberhaupt jemals nen Parameter ?
Und zurueck kommt auch kein Handle.

>> ... aber am einfachsten wirds wohl mit FindWindow_(0,"Fenstertitel") gehen.

Nein , mit GetConsoleWindow geht es einfacher.

Beispiel :

Code: Alles auswählen

import "kernel32.lib"
  GetConsoleWindow_() as "_GetConsoleWindow@0"
endimport

If OpenConsole()
  Handle = GetConsoleWindow_()
  
  RunProgram("calc.exe") 
  Delay(50) ; warten bis das programm fertig geladen wurde 
  SendMessage_(Handle,#WM_ACTIVATE,#WA_ACTIVE,0)
  
  Input()
  CloseConsole()
EndIf
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

eine andere Idee wäre diese:
Zu dem Zeitpunkt, wo du gena weißt, das das Konsolenfenster aktiv und im Vordergrund ist, speicherst du sein Handle ganz einfach mit GetForegroundWindow_().

Wenn das Programm in den Vordergrund geholt werden soll, reicht dann ein einfaches SetForeGroundwindow_(hWnd).
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

ok, keine nummer und kein any.. egal..

aber warum sollte kein handle zurückgegeben werden? is dochn fenster...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
#NULL
Beiträge: 2238
Registriert: 20.04.2006 09:50

Beitrag von #NULL »

wäre eigentlich praktisch.
aber OpenConsole() gibt nur 0 oder 1 zurück,
in 3.94 und 4.
my pb stuff..
Bild..jedenfalls war das mal so.
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Meinstest du mich jetzt Kaeru?
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
MVXA
Beiträge: 3823
Registriert: 11.09.2004 00:45
Wohnort: Bremen, Deutschland
Kontaktdaten:

Beitrag von MVXA »

Edel, gibt es den Befehl nicht nur unter WinXP o_O?
Bild
Antworten