Entwickler-Ecke

Windows API - Ermitteln, ob Konsolenanwendung sichtbar ist


Delete - Mi 24.03.10 21:45
Titel: Ermitteln, ob Konsolenanwendung sichtbar ist
Hallo,
Ich suche eine Möglichkeit, herauszufinden / abzufragen, ob mein Konsolenprogramm sichtbar ist.
Ich habe leider keinen Ansatz dazu vorzubringen, weil meine Suche nach ähnlichen Themen nicht aufschlussreich war.
Ich hoffe, jemand weiß Rat.

Vielleicht noch zur Info, wie ich die Konsolenanwendung erstelle:

Delphi-Quelltext
1:
2:
3:
program Test;

{$APPTYPE CONSOLE}


SAiBOT - Do 25.03.10 12:05

Suche im MSDN ISWINDOWVISIBLE


Delete - Do 25.03.10 16:09

Oh :oops:
Ich hab nicht gedacht, dass es so einfach ist. Ich bin die ganze Zeit davon ausgegangen, dass Konsolen kein Handle haben - aber ich wurde eines besseren belehrt klick [http://support.microsoft.com/kb/124103/de]
Ich werd die Funktion posten, wenn sie funktioniert. Habe gerade keine Zeit, sie zu implementieren.

Auf jeden Fall vielen Dank für die schnelle Antwort ;)


SAiBOT - Do 25.03.10 17:34

Das Handle bekommst du ganz leicht mit Suche im MSDN GETCONSOLEWINDOW.

Beispiel:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils,
  windows;

function GetConsoleWindow():HWND; stdcallexternal 'kernel32.dll';

var
  h:HWND;
begin
  h := GetConsoleWindow();
  if IsWindowVisible(h) then
    WriteLn('HALLO1!');
  ShowWindow(h, SW_HIDE);
  if IsWindowVisible(h) then
    WriteLn('HALLO2!');
  ShowWindow(h, SW_SHOWNORMAL);
  if IsWindowVisible(h) then
    WriteLn('HALLO3!');
  ReadLn;
end.