voila ^^
j'étais tombé dessus en faisait une fausse manip a l'editeur graphique mais je n'arrive plus a le refaire . lol

Code : Tout sélectionner
OpenWindow(0, 0, 0, 500, 500, "test", #PB_Window_Invisible)
OpenWindow(1, 0, 0, 500, 500, "test", 0, WindowID(0))
Repeat
Until WaitWindowEvent() = 16
ProcedureDLL HideFromTaskbar(Window, State) ; Cache la fenêtre de la barre des tâches
Shared proc_HideFromTaskbar_Object
If STATE = 0
CallCOM( #HideFromTaskbar_AddTab , proc_HideFromTaskbar_Object, WindowID (WINDOW)) ; Montrer la fenêtre
Else
CallCOM( #HideFromTaskbar_DeleteTab , proc_HideFromTaskbar_Object, WindowID (WINDOW)) ; Cacher la fenêtre
EndIf
EndProcedure
ProcedureDLL InitHideFromTaskbar() ; Initialise le mode cacher de la barre des tâches
Shared proc_HideFromTaskbar_Object
CoInitialize_ (0)
CoCreateInstance_ (?CLSID_TaskbarList, 0, 1, ?IID_ITaskbarList, @proc_HideFromTaskbar_Object)
CallCOM( #HideFromTaskbar_HrInit , proc_HideFromTaskbar_Object) ; 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
Shared proc_HideFromTaskbar_Object
CallCOM( #HideFromTaskbar_Release , proc_HideFromTaskbar_Object)
CoUninitialize_ ()
EndProcedure
InitHideFromTaskbar()
win = OpenWindow ( #PB_Any , 0, 0, 200, 200, "test" , #PBWIN0 )
If win And CreateGadgetList ( WindowID (win))
Repeat
HideFromTaskbar(win, 1)
Select WaitWindowEvent ()
EndSelect
Until Quit = 1
EndHideFromTaskbar()
EndIf
Code : Tout sélectionner
Procedure RemoveFromTaskbar(hwnd)
If IsWindow_(hwnd)
a=hwnd : b=GetWindowLong_(a,#GWL_HWNDPARENT) : If b<>0 : a=b : EndIf ; Needed for "TaskAssign.exe".
ShowWindow_(a,#SW_HIDE) : GetWindowRect_(a,win.RECT) : w=win\right-win\left : h=win\bottom-win\top
SetWindowLong_(a,#GWL_EXSTYLE,#WS_EX_TOOLWINDOW) : SetWindowPos_(a,0,0,0,w-1,h-1,#SWP_NOMOVE)
SetWindowPos_(a,0,0,0,w,h,#SWP_NOMOVE|#SWP_SHOWWINDOW) : ProcedureReturn 1
EndIf
EndProcedure
Debug RemoveFromTaskbar(FindWindow_(0,"titre de la fenetre"))
Code : Tout sélectionner
Procedure ToolWindow(window.l, state.l = #True)
Protected hwnd.l = WindowID(window)
; cache la fenêtre
ShowWindow_(hwnd, #SW_HIDE)
; change le style de la fenêtre ( le plus important )
If state
SetWindowLong_(hwnd, #GWL_EXSTYLE, GetWindowLong_(hwnd, #GWL_EXSTYLE) | #WS_EX_TOOLWINDOW)
Else
SetWindowLong_(hwnd, #GWL_EXSTYLE, GetWindowLong_(hwnd, #GWL_EXSTYLE) & (~#WS_EX_TOOLWINDOW))
EndIf
; notifie la fenêtre que son apparence a changé (mais ni sa taille, ni sa position)
If SetWindowPos_(hwnd, 0, 0, 0, 0, 0, #SWP_NOSIZE|#SWP_NOMOVE|#SWP_SHOWWINDOW| #SWP_FRAMECHANGED)
ProcedureReturn #True
EndIf
EndProcedure
Procedure IsToolWindow(window)
; la fenêtre at-t-elle le style 'toolwindow' ?
If GetWindowLong_(WindowID(window), #GWL_EXSTYLE) & #WS_EX_TOOLWINDOW
ProcedureReturn #True
EndIf
EndProcedure
;-
If OpenWindow(0, 0, 0, 640, 480, "toolwindow", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
If CreateGadgetList(WindowID(0))
ButtonGadget(0, 5, 5, 150, 30, "ToolWindow On/Off", #PB_Button_Toggle)
EndIf
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Break
Case #PB_Event_Gadget
ToolWindow(0, #True-IsToolWindow(0))
EndSelect
ForEver
EndIf
Code : Tout sélectionner
Procedure.l IsToolWindow(window)
If GetWindowLong_(WindowID(window), #GWL_EXSTYLE) & #WS_EX_TOOLWINDOW
ProcedureReturn #True
EndIf
EndProcedure
Procedure.l ToolWindow(window.l, state.l = #True)
Protected hwnd.l = WindowID(window)
ShowWindow_(hwnd, #SW_HIDE)
If state
SetWindowLong_(hwnd, #GWL_STYLE, GetWindowLong_(hwnd, #GWL_STYLE) & (~#WS_BORDER))
SetWindowLong_(hwnd, #GWL_EXSTYLE, GetWindowLong_(hwnd, #GWL_EXSTYLE) | #WS_EX_TOOLWINDOW)
Else
SetWindowLong_(hwnd, #GWL_STYLE, GetWindowLong_(hwnd, #GWL_STYLE) | #WS_BORDER)
SetWindowLong_(hwnd, #GWL_EXSTYLE, GetWindowLong_(hwnd, #GWL_EXSTYLE) & (~#WS_EX_TOOLWINDOW))
EndIf
If SetWindowPos_(hwnd, 0, 0, 0, 0, 0, #SWP_NOSIZE|#SWP_NOMOVE|#SWP_SHOWWINDOW| #SWP_FRAMECHANGED)
ProcedureReturn #True
EndIf
EndProcedure
;-
If OpenWindow(0, 0, 0, 320, 240, "toolwindow", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
If CreateGadgetList(WindowID(0))
ButtonGadget(0, 5, 5, 150, 30, "ToolWindow On/Off", #PB_Button_Toggle)
EndIf
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Break
Case #PB_Event_Gadget
ToolWindow(0, #True - IsToolWindow(0))
Case #WM_LBUTTONDOWN
If ChildWindowFromPoint_(WindowID(0), WindowMouseX(0), WindowMouseY(0)) = WindowID(0)
ReleaseCapture_()
SendMessage_(WindowID(0), #WM_NCLBUTTONDOWN, #HTCAPTION, #Null)
EndIf
EndSelect
ForEver
EndIf