Entwickler-Ecke
Windows API - "Fenster vor Taskleiste verstecken" die Dritte
†halia - Di 04.03.08 14:20
Titel: "Fenster vor Taskleiste verstecken" die Dritte
Ich habe mit Delphi 7 ein Programm geschrieben, von dem ich gern möchte, dass es auf dem Screen erscheint, allerdings ohne in der Taskleiste angezeigt zu werden.
Ich weiß, das wurde hier schon oft genug gefragt und ich will ja auch keinem auf den Keks gehen, aber ich weiß immer noch net wie ich's lösen kann. Hab auch brav die Suche bedient und trotzdem nichts gefunden, was bei mir funktioniert hat ... *verzweifeltsei* Die einen Codes waren laut Compilermeldung überhaupt nicht vorhanden, und die anderen haben das Formular an sich gleich mit unsichtbar gemacht.
Kann mir bitte irgendwer helfen? :flehan:
Martin1966 - Di 04.03.08 14:27
Zeig doch mal welchen Sourcecode du ausprobiert hast und was genau daran dann nicht funktioniert bzw. der Compiler meckert.
Lg, Martin
†halia - Di 04.03.08 14:41
z.B. den
ShowWindow(Handle,sw_hide)
kennt er nicht, obwohl das laut
Wotan89 hätte funtionieren sollen
und der
Application.ShowMainForm:=False
enfernt das Programm zwar aus der Taskleiste, aber macht es auch gleich ganz unsichtbar
Und nachdem ich nach 2 Stunden Suche nur Sachen in der Richtung gefunden hab, weiß ich immer noch nicht weiter :bawling:
Gruß,
†halia
†halia - Mi 05.03.08 16:42
...
Brauche immer noch dringend Hilfe. :|
Also, wenn irgendwer eine Idee hat, dann sagt es mir bitte, möchte das Programm langsam fertig kriegen.
Danke schon mal,
†halia
Delete - Mi 05.03.08 16:44
Die Fehlermeldung des Compilers wäre hilfreicher.
†halia - Mi 05.03.08 16:55
Ach ja, ShowWindow(Handle,sw_hide) ist dem Compiler doch bekannt, sry, mein Fehler ... aber das macht das Formular unsichtbar (was es ja nicht soll) und entfernt es nicht aus der Taskleiste. :(
jakobwenzel - Mi 05.03.08 16:59
Probiers mit Application.Handle anstatt von Handle.
†halia - Mi 05.03.08 17:08
Super! Danke
jakobwenzel, jetzt geht's!
:D:D:D:D:D:D:D
†halia
CarpeDiem - So 30.03.08 09:49
Hallo, ich arbeite mit CodeGear 2007, allerdings mit C++.
Ich habe es auch schon mit
ShowWindow(Application->Handle,SW_HIDE) probiert, funktionierte dann nicht. Dann habe ich es probiert mit:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| .... WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) { DWORD dwExStyle=GetWindowLong(Application->Handle,GWL_EXSTYLE); dwExStyle |= WS_EX_TOOLWINDOW; SetWindowLong(Application->Handle,GWL_EXSTYLE,dwExStyle); try { Application->Initialize(); Application->CreateForm(__classid(TForm4), &Form4); Application->Run(); } catch (Exception &exception) .... |
funktioniert aber nur unter BCB 2006. Hab auch schon die gesamten Projekteigenschaften durchgeforstet. Vielleicht weiß von Euch noch einer was.
Silas - So 30.03.08 10:09
AFAIK muss die
ShowWindow-Zeile nach
Application->Initialize() stehen, weil vorher das Handle noch 0 ist.
Ansonsten versuch's mal mit
C#-Quelltext
1:
| ShowWindow(GetWindow(Handle, GW_OWNER), SW_HIDE); |
in
FormCreate. Ich hoffe da ist jetzt kein Fehler drin, ich programmiere unter C++ sonst nie mit der VCL.
CarpeDiem - So 30.03.08 10:17
Hab ich leider schon beides probiert, und funktioniert nicht.
Silas - So 30.03.08 10:42
Ich habe gerade mein RAD Studio angeworfen und ein bisschen experimentiert, in OnShow funktioniert es, wenn du ShowMainFormOnTaskBar auskommentiert lässt. Das ist zwar nicht ganz optimal, da die Form beim Anzeigen kurz in der Taskleiste erscheint, aber etwas besseres ist mir nicht eingefallen.
CarpeDiem - So 30.03.08 10:56
Ok, danke. So könnte man es fürs erste lassen, schaut halt nicht ganz optimal aus, da muß ich Dir recht geben.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2024 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!