ça faisait longtemps, salut à tous!
Plus de librairie, merci les interfaces
mon code mis au goût du jour :
Global TaskBarList.iTaskBarList
ProcedureDLL HideFromTaskbar(Window, state) ; Cache la fenêtre de la barre des tâches
If state = 0
TaskBarList\AddTab( WindowID (Window)) ; Montrer la fenêtre
Else
TaskBarList\DeleteTab( WindowID (Window)) ; Cacher la fenêtre
EndIf
EndProcedure
ProcedureDLL InitHideFromTaskbar() ; Initialise le mode cacher de la barre des tâches
CoInitialize_ (0)
CoCreateInstance_ (?CLSID_TaskbarList, 0, 1, ?IID_ITaskbarList, @TaskBarList)
TaskBarList\HrInit() ; Initialiser l'objet
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
ProcedureDLL EndHideFromTaskbar() ; Coupe le mode cacher de la barre des tâches
TaskBarList\Release()
CoUninitialize_ ()
EndProcedure
#Window =1
#bouton =1
InitHideFromTaskbar()
OpenWindow ( #Window ,10,10,300,300, "coucou" , #PB_Window_SystemMenu )
CreateGadgetList ( WindowID ( #Window ))
ButtonGadget ( #bouton , 10,10, 250, 20, "fait réaparaitre dans la barres des taches" )
HideFromTaskbar( #Window , 1) ; <--- retire la fenetre de la barre des taches
state = #True
Repeat
Select WaitWindowEvent ()
Case #PB_Event_Gadget
Select EventGadget ()
Case #bouton
If state = #True
state = #False
HideFromTaskbar( #Window , 0)
Else
state = #True
HideFromTaskbar( #Window , 1)
EndIf
EndSelect
Case #PB_Event_CloseWindow ; If the user has pressed on the close button
Break
EndSelect
ForEver