Seite 1 von 2

Anwendung aus der Taskleiste löschen

Verfasst: 29.07.2008 01:00
von Tompazi
Wie kann ich eine bestimmte Anwendung aus der Taskleiste löschen?

Ich hab mich umgeschaut und das hier gefunden (Es löscht alle Anwendungen aus der Taskleiste):

Code: Alles auswählen

ShowWindow_(FindWindowEx_(FindWindowEx_(FindWindow_("Shell_TrayWnd",0),0,"ReBarWindow32",0),0,"MSTaskSwWClass",0),#SW_HIDE)
Delay(3000)
ShowWindow_(FindWindowEx_(FindWindowEx_(FindWindow_("Shell_TrayWnd",0),0,"ReBarWindow32",0),0,"MSTaskSwWClass",0),#SW_SHOW)
(wäre nett wenn mir jemand diesen Code erklärt)
Ich hab ein bisschen herum gespielt aber bin nicht drauf gekommen...

MfG Tompazi

Re: Anwendung aus der Taskleiste löschen

Verfasst: 29.07.2008 07:33
von ts-soft
Tompazi hat geschrieben:Wie kann ich eine bestimmte Anwendung aus der Taskleiste löschen?

Code: Alles auswählen

Procedure HideFromTaskBar(hWnd.l, Flag.l)
  Protected TBL.ITaskbarList

  CoInitialize_(0)
  If CoCreateInstance_(?CLSID_TaskBarList, 0, 1, ?IID_ITaskBarList, @TBL) = #S_OK
    TBL\HrInit()
    If Flag
      TBL\DeleteTab(hWnd)
    Else
      TBL\AddTab(hWnd)
    EndIf
    TBL\Release()
  EndIf
  CoUninitialize_()
 
  DataSection
    CLSID_TaskBarList:
    Data.l $56FDF344
    Data.w $FD6D, $11D0
    Data.b $95, $8A, $00, $60, $97, $C9, $A0, $90
    IID_ITaskBarList:
    Data.l $56FDF342
    Data.w $FD6D, $11D0
    Data.b $95, $8A, $00, $60, $97, $C9, $A0, $90
  EndDataSection
EndProcedure

Verfasst: 29.07.2008 11:55
von Tompazi
Und wie bring ich das zum laufen? ein

Code: Alles auswählen

hWnd = FindWindow_(0,"WindowName")
hat nicht gereicht.

MfG Tompazi

Verfasst: 29.07.2008 12:14
von Fluid Byte
Du bist aber clever genug nicht nach Fenstertiteln zu suchen die sich verändern, oder? Nimm lieber den Klassennamen zum suchen.

Verfasst: 29.07.2008 12:31
von Tompazi
Sorry, Ich blicke da nicht ganz durch, was ist der Klassenname des Programms/Fensters. In msdn steht:
lpClassName
[in] Pointer to a null-terminated string that specifies the class name or a class atom created by a previous call to the RegisterClass or RegisterClassEx function. The atom must be in the low-order word of lpClassName; the high-order word must be zero.
If lpClassName points to a string, it specifies the window class name. The class name can be any name registered with RegisterClass or RegisterClassEx, or any of the predefined control-class names.

If lpClassName is NULL, it finds any window whose title matches the lpWindowName parameter.
Also ich muss den Klassennamen zuerst setzten, so gehts aber nicht..

Code: Alles auswählen

  RegisterClass_("Klassenname")


:oops: :oops:
MfG Tompazi

Verfasst: 29.07.2008 12:31
von RSBasic

Code: Alles auswählen

hWnd = FindWindow_("Notepad, SciCalc oder sonst was^^",0)

Verfasst: 29.07.2008 12:35
von Tompazi
:?
Etwas genauer bitte

MfG Tompazi

Verfasst: 29.07.2008 12:49
von RSBasic
http://msdn.microsoft.com/en-us/library/ms633499.aspx

Also du kannst entweder nach Fenstertitel suchen oder auch nach Classname.

Fenstertitel:

Code: Alles auswählen

hWnd = FindWindow_(0,"Unbenannt - Editor")
Ist aber nicht so geeignet.
Wenn Fenstertitel geändert wird, dann kann dein Programm das Fenster nicht mehr finden.

Classname:

Code: Alles auswählen

hWnd = FindWindow_("Notepad",0)
Das ist die beste Lösung, da Classname immer gleich bleibt, egal ob Titel geändert wird oder nicht.

Um Classname ermitteln zu können, gibt es u.a. das Programm: http://web56.login-1.loginserver.ch/rsb ... ShoWin.exe (Dieses Programm habe ich nicht selber programmiert)
Enfach Fadenkreuz auf das komplette Fenster ziehen/zeigen, dann bekommst du Classname des Fensters.

Verfasst: 29.07.2008 13:17
von Tompazi
Danke, laut diesem Programm ist der CLassName: "WindowClass_0"

Code: Alles auswählen

 hWnd = FindWindow_("WindowClass_0",0)
Debug hWnd
und so finde ich auch ein Programm aber der Code von ts-soft läuft trotzdem nicht

MfG Tompazi

Verfasst: 29.07.2008 13:25
von Fluid Byte
Das ist dann doch eine mit PB erstellte Anwendung. Ist das eventuell sogar deine? Oder vielleicht eine bekannte Anwendung aus CodeArchiv oder Forum wo der Quelltext mit bei ist.