Autor Beitrag
Barzi
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 24.03.10 21:45 
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:
ausblenden Delphi-Quelltext
1:
2:
3:
program Test;

{$APPTYPE CONSOLE}
SAiBOT
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 323
Erhaltene Danke: 6

XP SP2; 7
D7; D2009
BeitragVerfasst: Do 25.03.10 12:05 

_________________
Debuggers don't remove bugs, they only show them in slow-motion.
Barzi
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: 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
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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 323
Erhaltene Danke: 6

XP SP2; 7
D7; D2009
BeitragVerfasst: Do 25.03.10 17:34 
Das Handle bekommst du ganz leicht mit Suche im MSDN GETCONSOLEWINDOW.

Beispiel:
ausblenden 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.

_________________
Debuggers don't remove bugs, they only show them in slow-motion.