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() = 16ProcedureDLL 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
  
EndIfCode : 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