Bonjour,

Je suis nouveau sur le forum, alors soyez indulgent, merci

Voila j'ai développé un petit programme en RapidQ, c'est du basic qui est très similaire à Visual basic, donc pas de problème pour moi pour comprendre le Visual Basic.

J'ai remarqué que certaine fenêtre de Windows XP ne veulent plus se fermer quand on appui sur le bouton prévu à cette effet, si j’appuie sur ctrl+Alt+Suppr
j'ai une boite de dialogue qui apparait avec tout les programmes qui son chargé, mais impossible de voir ma fenêtre qui ne veut pas se fermer.....

J'ai donc développé un petit programme on me servant des API de Windows XP pack 3, pour essayer de remédier à se problème.

Malheureusement je n'y arrive pas, j'arrive à récupérer le titre, la class, le handle, mais les fenêtres toutes simple ne veulent pas se fermer

C'est une partie du code allégé, c'est pour éviter de se perde dans les détailles et essayer de résoudre le problème, si vous le voulez avec code + compilation, je le mets ici.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49

$Include "Rapidq.inc"

TYPE POINTAPI
  X AS LONG
  Y AS LONG
END TYPE

Declare Function SendMessageA Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Long) As Long
Declare Function GetAsyncKeyState Lib "user32" alias "GetAsyncKeyState" (vKey As Long) As long
Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long
Declare Function CloseHandle Lib "kernel32" Alias "CloseHandle" (ByVal hObject As Long) As Long
Declare Function GetCursorPos Lib "user32" Alias "GetCursorPos" (lpPoint As POINTAPI) As Long


  Dim Handle as integer
  Dim Utiliser as integer
  
   Dim Souris AS POINTAPI

  Const WM_SETFOCUS As Long = &H7
  Const WM_CLOSE As Integer = &H10
  Const PROCESS_ALL_ACCESS As Long = &H1F03FF

     Utiliser = 1 : VK_RBUTTON = 2 : VK_LBUTTON = 1 : Touche = 65
           
    ClassNom$ = Space$(100)  
   
    Titre$ = space$(100)
   
   do
     GetCursorPos(Souris)
     LenClass = GetClassName(Handle,@ClassNom$,100)
     LenTitre = GetWindowText(Handle,@Titre$, 100)

     Edit1.text = left$(Titre$,LenTitre)
     Edit2.text= str$(Handle)
     Edit3.text = left$(ClassNom$,lenClass)

  If  GetAsyncKeyState(VK_RBUTTON) <>  0 then
      SendMessageA(Handle,WM_CLOSE,0,0)
      CloseHandle(Handle)   
    elseif GetAsyncKeyState(Touche) <> 0 then
        Utiliser = 0
    end if

    loop until Utiliser = 0
J'utilise la fonction SendMessageA(Handle,WM_CLOSE,0,0) pour essayer de fermer la fenêtre, j'ai des trucs qui disparaitre, mais pas la fenêtre.

Avez vous une idée, ou une solution avec un API ?

Merci pour ceux qui pourrons m'aidez