4.41 - Lib WinCommand - Manipulation de fenetres externes

Partagez votre expérience de PureBasic avec les autres utilisateurs.
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

4.41 - Lib WinCommand - Manipulation de fenetres externes

Message par Ar-S »

PB : 4.41
OS : windows


Cette lib permet des manipulations sur une fenêtre externe.
Elle offre la possibilité de la maximiser, minimiser, restaurer et de la fermer

Code source ci dessous
Lib+aide+source sur mon site : PureLib

Code : Tout sélectionner

    ; WinCommand For External Windows Manipulation
    ; By Ar-S / LDV MULTIMEDIA - 03/2010
    ; v1.0
    ; Compiled with PB4.41
    ; Exemples
    
ProcedureDLL.s WinCommand(ExternalWindowName$,NumCommand) ; Num commands : 1 2 3 4
  hwnd = FindWindow_(0,ExternalWindowName$)
  If hwnd=0 
    MessageRequester("Error","There is no window with the name "+ExternalWindowName$,$50)
  Else
    Delay(100)
    If NumCommand=0
      NumCommand=#SC_MINIMIZE
    ElseIf NumCommand=1
      NumCommand=#SC_MAXIMIZE
    ElseIf NumCommand=2
      NumCommand=#SC_RESTORE
    ElseIf NumCommand=3
      NumCommand=#SC_CLOSE
    EndIf
    Delay(100)
    SendMessage_(hwnd,#WM_SYSCOMMAND, NumCommand,0)
  EndIf  
EndProcedure    
    
; ;Example
; Enumeration
  ; #Window_0 : #BT_CloseWin : #BT_MIN : #BT_MAX : #BT_Restore : #BT_SIZE
; EndEnumeration
    ; 
    ; ;Options :
    ; ; 0 = #SC_MINIMIZE
    ; ; 1 = #SC_MAXIMIZE
    ; ; 2 = #SC_RESTORE
    ; ; 3 = #SC_CLOSE
    ; 
; Procedure OpenWindow_Window_0()
  ; If OpenWindow(#Window_0, 450, 200, 315, 130, "Manipulation de fenêtres eternes", #PB_Window_SystemMenu|#PB_Window_SizeGadget|#PB_Window_MinimizeGadget|#PB_Window_TitleBar)
    ; StickyWindow(#Window_0,1)
    ; 
    ; ButtonGadget(#BT_MAX, 5, 5, 100, 30, "MAXIMIZE")
    ; ButtonGadget(#BT_MIN, 105, 5, 100, 30, "MINIMISE")
    ; ButtonGadget(#BT_Restore, 210, 5, 100, 30, "RESTORE")
    ; ButtonGadget(#BT_CloseWin, 5, 35, 100, 30, "CLOSE")
    ; 
    ; 
    ; ; ButtonGadget(#BT_SIZE, 105, 35, 100, 30, "BLOCK SIZE")
    ; 
  ; EndIf
; EndProcedure
    ; 
    ; ; Ouverture du Bloc Note
; RunProgram("C:\WINDOWS\system32\notepad.exe")
     ; 
; OpenWindow_Window_0()
    ; 
    ; ; On indique le nom de la fenêtre du bloc note
; Fenetreexterne$="Sans titre - Bloc-notes"
     ; 
; Repeat
  ; Select WaitWindowEvent()
      ; 
    ; Case #PB_Event_Gadget
      ; Select EventGadget()
        ; Case #BT_MIN
          ; WinCommand(Fenetreexterne$,0) ; 0 = #SC_MINIMIZE pour minimiser la fenêtre
        ; Case #BT_MAX
          ; WinCommand(Fenetreexterne$,1) ; 1 = #SC_MAXIMIZE pour maximiser la fenêtre
        ; Case #BT_Restore
          ; WinCommand(Fenetreexterne$,2) ; 2 = #SC_RESTORE pour restaurer la fenêtre
        ; Case #BT_CloseWin
          ; WinCommand(Fenetreexterne$,3) ; ; 3 = #SC_CLOSE pour fermer la fenêtre
          ; 
      ; EndSelect
      ; 
    ; Case #PB_Event_CloseWindow
      ; Select EventWindow()
        ; Case #Window_0
          ; CloseWindow(#Window_0)
          ; Break
      ; EndSelect
  ; EndSelect
; ForEver

~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels