Entwickler-Ecke
Windows API - aktives Programm aber ohne Symbol in der Taskleiste??
Pendergast - Mi 13.11.02 17:42
Titel: aktives Programm aber ohne Symbol in der Taskleiste??
Ist es möglich ein Programm mit aktiven Fenstern (also nicht minimiert oder im Tray) auszuführen, ohne dass es dabei in der Taskleiste sichtbar ist.
THX
bis11 - Mi 13.11.02 18:31
Schau Dir mal diese Links an, vielleicht helfen Dir die weiter ?
...das Programm von der Taskliste(Ctrl+Alt+Del) verstecken? [
http://www.swissdelphicenter.ch/de/showcode.php?id=106]:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21:
|
implementation
function RegisterServiceProcess(dwProcessID, dwType: DWORD): DWORD; stdcall; external 'KERNEL32.DLL';
procedure TForm1.Button1Click(Sender: TObject); begin RegisterServiceProcess(GetCurrentProcessID, 1); end;
procedure TForm1.Button2Click(Sender: TObject); begin RegisterServiceProcess(GetCurrentProcessID, 0); end; |
...ein Programm von der Taskbar verstecken? [
http://www.swissdelphicenter.ch/de/showcode.php?id=54]:
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: 25: 26: 27: 28: 29: 30: 31: 32:
| procedure TMainForm.FormShow(Sender: TObject); var hwndOwner: HWnd; begin hwndOwner := GetWindow(Handle, GW_OWNER); ShowWindow(hwndOwner, SW_HIDE); ShowWindowAsync(hwndOwner, SW_HIDE); ShowWindowAsync(Self.Handle, SW_HIDE); end;
private procedure WMSysCommand(var msg: TWMSysCommand); message WM_SysCommand;
implementation
procedure TMainForm.WMSysCommand(var msg: TWMSysCommand); begin if msg.CmdType and $FFF0 = SC_MINIMIZE then hide else inherited; end; |
Moderiert von
Tino: Sourcecode eingefügt.
Pendergast - Do 14.11.02 09:52
Danke genau das hatte ich gesucht.
Die Codes scheinen auch zu funzen.
Nur leider lässt sich das Programm nur vor dem 98er Task-Manager verbergen und nicht bei Win2000. Aber das ist wahrscheinlich aus Sicherheitsgründne auch gar nicht möglich
Delete - Do 14.11.02 10:11
Endlich mal jemand der die Dinge akzeptiert wie sie sind.
Jebaz - Fr 29.11.02 10:26
Titel: jow, geht glaub doch in win 2k
äm, ich hab das auch mal gesucht, und ich hab schlussendlich einen Code gefunde, der aus dem Hauptprogramm-Fenster einfach ein Tool-Window macht...und ToolWindows sind nie sichtbar in der Taskleist und das funzt auch unter NT4, Win 2k und somit garantiert auch auf win98. Geh einfach auf Project->ViewSource und dort fügst du zwei Zeilen Code ein:
(ich bin mal nett und zeige euch den ganzen code :wink: )
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: 25: 26: 27: 28: 29: 30:
| program YourApp;
uses Forms, Windows, ServerMain in 'ServerMain.pas' , Codec in 'Codec.pas';
{$R *.res} var ExtendedStyle : Integer;
begin Application.Initialize;
ExtendedStyle := GetWindowLong(Application.Handle, GWL_EXSTYLE);
SetWindowLong(Application.Handle, GWL_EXSTYLE, ExtendedStyle OR WS_EX_TOOLWINDOW AND NOT WS_EX_APPWINDOW);
Application.Title := 'Naja, eben der Titel deiner App'; Application.CreateForm(TForm1, Form1); Application.Run; end. |
also ganz wichtig sind, dass du bei den uses Windows hinzugügst und die variable ExtendedStyle nicht vergisst ;-)
Delete - Fr 29.11.02 15:43
Er hat vom Taskmanager geredet! Und das Programm taucht auch mit deinem Code bestimmt noch im Taskmanager auf.
Pendergast - Mo 02.12.02 09:47
Ja das Task-Manager Problem bleibt natürlich aber der Code von Jebaz hat einen Vorteil gegenüber dem weiter oben gelinkten. Das Fenster kommt nicht in die Taskbar zurück auch wenn das Fenster minimiert wurde und dann über ALT + TAB wieder nach vorne geholt wird, das war bei dem anderen Beispiel nicht so.
Danke.
Delete - Mo 02.12.02 11:36
Die Lösung über ein Toolwindow halte ich für unsinnig. Sorry, ist meine Meinung, weil dadurch IMO die Form-Einstellungen bezüglich der Buttons (Minimieren, Maximieren) geändert werden.
Ich finde es ganz gut, dass Programme über die Taskbar erreichbar sind. Das ist doch schließlich der Zweck dieser Leiste. Was soll ich von einem Programm halten, dass ich mir -im allgemeinen Fenstergewirr!- erst mal raussuchen muss.
Alles minimieren (WIN+D) und dann gezielt den Button des Programms aus der Taskbar holen, geht in dem Fall ja auch nicht.
Solche Programme haben auf meinem Rechner keine lange Lebensdauer. So wie die, die sich beim Beenden partout nicht beenden wollen ... :roll:
Moderiert von
Tino: Off-Topic entfernt.
Pendergast - Mo 02.12.02 13:37
Der Sinn und Zweck des Ganzen ist es den Programmstart zu beschleunigen (bzw. es so aussehen zulassen). Das Programm wird beim Windowsstart unsichtbar vor Taskleiste Task-Manager und mit invisible Fenstern gestartet (dauert etwa 2Min). Wenn der User jetzt die (fake-)exe startet werden die Fenster visible und es erscheit in der Task-leiste.
Da das Programm auch andere Programme startet und wärenddessen nicht geschlossen werden soll, wird es in einem solchen Fall wieder unsichtbar.
Ich hoffe das war verständlich!
Moderiert von
Tino: Off-Topic entfernt.
Jebaz - Mo 06.01.03 17:45
Titel: In TOPIC
jow jow jow, nochmals zurück zu diesem Programmtechnischen Problem. Also Luckie sagte, es gehe ja um den Taskmanager....nun ja, sorry, ich hab mal wieder nicht genau gelesen (alte Informatiker-krankheit)
sorry, bin nun zu faul um sein Zitat hier einzubinde, wie ihr das immer so schön macht...nun, äm, hei, wenn man beim Applikations-Titel einfach schreibt '' ( :D ) also, richtig gelese :wink: einfach "nichts" nada, vieleicht ein Leerschlag...dann ist der Applikationstitel im Taskmanager ebenfalls nichts :roll: nun, ok, ich glaub, das funzt nur in win2k und das zweite Problem ist, mann sieht, wenn nach diesem Programm noch anderes gestartet wird (was eigentlich immer der fall ist) einfach einen Phantom-eintrag....find ich aber trozdem angebracht, diesen Quatsch hier noch loszuwerden 8)
Jebaz - Mi 16.07.03 12:09
Titel: on topic
| MathiasSimmack hat folgendes geschrieben: |
Die Lösung über ein Toolwindow halte ich für unsinnig....
Was soll ich von einem Programm halten, dass ich mir -im allgemeinen Fenstergewirr!- erst mal raussuchen muss.
|
Nun, für gewisse Programme macht das sogar verdammt viel sinn...ich brauchte diese Lösung um eine Art Trojaner zu schreiben, der gar nie sichtbar sein darf vor dem user :wink:
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 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!