Je n'y arrive toujours pas malgré vos explications / j'ai toujours zéro !!!
Code : Tout sélectionner
NomApp.s=Chr(83)+Chr(97)+Chr(110)+Chr(115)+Chr(32)+Chr(116)+Chr(105)+Chr(116)+Chr(114)+Chr(101)+Chr(32)+Chr(45)+Chr(32)+Chr(66)+Chr(108)+Chr(111)+Chr(99)+Chr(45)+Chr(110)+Chr(111)+Chr(116)+Chr(101)+Chr(115)
hwndee= FindWindow_(0,NomApp)
MessageRequester(NomApp,Str(hwndee))
L'idéal serait d'avoir un code qui liste les fenetres ouvertes, que je puisse selectionner celle que je veux, mais je ne sais pas comment on peut récupérer le chainage ascii pour avoir le bon NomApp
J'ai un bout de code (je ne sais plus qui en est l'auteur), mais je n'arrive pas à l'adaper
Merci pour votre aide
Code : Tout sélectionner
Enumeration
#FEN_0
#G_TEXT_FEN_A_CAPTURER:#G_COMBO_FEN_A_CAPTURER
#G_BUTTON_EXECUTER:#G_BUTTON_QUITTER
EndEnumeration
#Fichier=0
Structure STRU_INFO_GADGET
win.l
className$
ctrl_id$
EndStructure
;EnableExplicit
Global FEN_X.w,FEN_Y.w,FEN_WIDTH.w,FEN_HEIGHT.w, numero_gadget.w, hauteur_barreTitre.w
Procedure.l EnumChildWindowProc(hwnd.l, *cg.STRU_INFO_GADGET)
Protected classe$, chaine$, rc.RECT, style.l
Protected GDT_X.w,GDT_Y.w,GDT_WIDTH.w,GDT_HEIGHT.w
Protected chaine_sortie.s,chaine_coords.s,ctrlid$
If GetParent_(hWnd) = *cg\win
classe$=Space(100)
chaine$=Space(255)
GetClassName_(hwnd, @classe$, 100)
GetWindowText_(hwnd,@chaine$,255)
GetWindowRect_(hwnd,@rc)
style=GetWindowLong_(hwnd,#GWL_EXSTYLE)
ctrlid$=Str(GetWindowLong_(hwnd,#GWL_ID))
GDT_X = rc\left-FEN_X-2*GetSystemMetrics_(#SM_CYBORDER) : GDT_Y = rc\top-FEN_Y-hauteur_barreTitre : GDT_WIDTH = rc\right-rc\left : GDT_HEIGHT = rc\bottom-rc\top
chaine_coords = Str(GDT_X)+","+Str(GDT_Y)+","+Str(GDT_WIDTH)+","+Str(GDT_HEIGHT)
Debug classe$
If classe$ = "ComboBox"
classe$ = "ComboBoxGadget"
chaine_sortie = classe$+"("+Str(numero_gadget)+","+chaine_coords+")"
;;,"+ Chr(34) +chaine$+ Chr(34)
EndIf
If classe$ = "Static"
classe$ = "textgadget"
chaine_sortie = classe$+"("+Str(numero_gadget)+","+chaine_coords+","+ Chr(34) +chaine$+ Chr(34) +")"
EndIf
If classe$ = "Edit"
classe$ = "stringgadget"
chaine_sortie = classe$+"("+Str(numero_gadget)+","+chaine_coords+","+ Chr(34) +chaine$+ Chr(34) +")"
EndIf
If classe$ = "Button"
classe$ = "buttongadget"
chaine_sortie = classe$+"("+Str(numero_gadget)+","+chaine_coords+","+ Chr(34) +chaine$+ Chr(34) +")"
EndIf
chaine_sortie+" ; CTRL_ID="+ctrlid$
WriteStringN(#Fichier, chaine_sortie)
numero_gadget+1
EndIf
ProcedureReturn 1
EndProcedure
Procedure.l FEN0_INIT()
Protected col.w=5, lig.w=5
#fen_larg = 810 : #fen_haut = 100
#text_larg = #fen_larg/3-10 : #text_haut = 16
#combo_larg = #fen_larg-#text_larg-10 : #combo_haut = 20
If OpenWindow(#FEN_0,0,0,#fen_larg,#fen_haut,"Capture Gadget v1.0",#PB_Window_ScreenCentered|#PB_Window_SystemMenu)
TextGadget(#G_TEXT_FEN_A_CAPTURER,col,lig+2,#text_larg,#text_haut,"Choisir la fenêtre : ",#PB_Text_Right)
ComboBoxGadget(#G_COMBO_FEN_A_CAPTURER,col+#text_larg,lig,#combo_larg,#combo_haut)
lig+30
lig+40
col = #fen_larg-#text_larg/1.5
ButtonGadget(#G_BUTTON_QUITTER,col,lig,#text_larg/1.5-5,#combo_haut,"Quitter")
col = GadgetX(#G_BUTTON_QUITTER)- #text_larg/1.5
ButtonGadget(#G_BUTTON_EXECUTER,col,lig,#text_larg/1.5-5,#combo_haut,"Executer")
EndIf
ProcedureReturn WindowID(#FEN_0)
EndProcedure
Procedure FEN0_EXEC()
Protected event.l, evgad.l , quit.b = 0, nom_fichier.s = ""
Protected hwnd.l, chaine.s = Space(256)
;{ auteur : dlolo
;; purebasic forum french : http://www.purebasic.fr/french/viewtopic.php?t=3622&start=0&postdays=0&postorder=asc&highlight=list+process
hWnd = FindWindow_( 0, 0 )
While hWnd <> 0
If GetWindowLong_(hWnd, #GWL_STYLE) & #WS_VISIBLE = #WS_VISIBLE
If GetWindowLong_(hWnd, #GWL_EXSTYLE) & #WS_EX_TOOLWINDOW <> #WS_EX_TOOLWINDOW
GetWindowText_(hWnd,@chaine,256)
If chaine <> ""
AddGadgetItem(#G_COMBO_FEN_A_CAPTURER,-1,chaine) ;Str(hwnd) = n°
EndIf
EndIf
EndIf
hWnd = GetWindow_(hWnd, #GW_HWNDNEXT)
Wend
;} fin
Repeat
event = WaitWindowEvent()
Select event
Case #PB_Event_Gadget
evgad = EventGadget()
Select evgad
Case #G_COMBO_FEN_A_CAPTURER
Case #G_BUTTON_EXECUTER
msg$= GetGadgetText(#G_COMBO_FEN_A_CAPTURER)
MessageRequester(nom_fichier, msg$)
Case #G_BUTTON_QUITTER
quit = 2
EndSelect
Case #PB_Event_CloseWindow
quit = 1
EndSelect
Until quit>0
EndProcedure
programm_affich_destinations:
If FEN0_INIT()>0
FEN0_EXEC()
EndIf
End