elyote666
Messages postés30Date d'inscriptionlundi 17 mai 2004StatutMembreDernière intervention 4 octobre 2007
-
19 mars 2005 à 01:34
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019
-
19 mars 2005 à 18:14
Voila, mon nouveau problème ...
Quand j'utilise l'api dans un programme VB ça fonctionne, mais pas dans les
programmes extèrieur ...pkoi ?
Merci de vos réponses ...
Gobillot
Messages postés3140Date d'inscriptionvendredi 14 mai 2004StatutMembreDernière intervention11 mars 201934 19 mars 2005 à 02:19
Pourtant j'ai essayé avec un programme VB externe ça marche.
j'ai essayé avec cette page ici même ça marche aussi, il est en train de m'afficher "Bonjour" à la place du titre original.
peut-être le titre est changé par le programme lui même comme on peut le faire en VB avec Me.Caption.
elyote666
Messages postés30Date d'inscriptionlundi 17 mai 2004StatutMembreDernière intervention 4 octobre 2007 19 mars 2005 à 10:09
Merci de vos réponses ! Pour le handle j'ai choppé un bout de code qui me le donne quand je passe
le curseur sur le contrôle désiré .
J'ai essayer sur une textbox dans mon programme vb sa marche mais dès
que j'essaye ailleurs... problème ?
voilà le code :
petite explication
j'ai un label (affiche le handle)
un text1 (je rentre le handle qui m'intéresse)
un bouton "go" pour faire changer le handle
un text2 (Pour tester ... dans ce controle setwindowstext fontionne)
un timer
------------------------------------------------------------------------------
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Private Type POINTAPI
x As Long
y As Long
End Type
Private Declare Function WindowFromPoint Lib "user32" (ByVal xPoint As Long, ByVal yPoint As Long) As Long
Dim position As POINTAPI
Private Declare Function SetWindowText Lib "user32" Alias "SetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String) As Long
Je pense que le problème doit se situer ici :
Private Sub Command1_Click()
Call SetWindowText(Text1.Text, "Bonjour !")
End Sub
Private Sub Form_Load()
Timer1.Interval = 1
End Sub
Private Sub Timer1_Timer()
Call GetCursorPos(position)
Label1 = WindowFromPoint(position.x, position.y)
End Sub
Ce qui m'as fait douter c'est cette explication que j'ai trouver un site :
"SetWindowText change le texte d'une fenêtre donnée. Bien que cette fonction puisse changer le texte de fenêtre d'autres programmes, il ne peut pas changer le texte d'un contrôle utilisé par une autre application. Pour changer le texte de ces contrôles, utiliser le message
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 19 mars 2005 à 17:15
ben tu as tout ce qu'il faut, fais une declare de ce type:
Declare Sub SetCtrlText Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal pText As String)
elyote666
Messages postés30Date d'inscriptionlundi 17 mai 2004StatutMembreDernière intervention 4 octobre 2007 19 mars 2005 à 18:02
pkoi sa ne fonctionne pas ?
Private Declare Sub SetCtrlText Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal pText As String)
Private Sub Command1_Click()
Dim a
a = Text1.Text 'Dans ma textBox il ya le handle
SetCtrlText a, WM_SETTEXT, 0, "Bonjour!"
End Sub