voici un code qui copie la chaine a$ dans le presse papier :
Code : Tout sélectionner
a$="Bonjour"
SetClipboardText(a$)
;coller
Code : Tout sélectionner
a$="Bonjour"
SetClipboardText(a$)
;coller
Code : Tout sélectionner
a$="Bonjour"
SetClipboardText(a$)
;coller
b$ = GetClipboardText()
Debug b$
Marc56, je ne sais pas si tu as vu mais SPH est inscrit sur le forum depuis 2005. Un pilier qui lit tout le forum depuis des années tout en regardant SouthPark avec son thé dans la main.Marc56 a écrit :Et d'une manière générale, si tu cliques sur un mot clé, que tu appuies sur F1 et que tu va dans le bas de la page d'aide contextuelle,
Code : Tout sélectionner
hwnd = FindWindow_("notepad",#Null)
Code : Tout sélectionner
subhwnd=FindWindowEx_(hwnd, #Null, "Edit", #Null)
Code : Tout sélectionner
SendMessage_(subhwnd, #WM_PASTE, 0, 0)
Code : Tout sélectionner
;Ton code
a$="Bonjour"
SetClipboardText(a$)
;coller
b$ = GetClipboardText()
;Debug b$
;Vu que tu donnes peu d'information, on va supposer que tu colles dans le bloc note de windows
;Recherche du bloc note suposé ouvert (notepad.exe)
hwnd = FindWindow_("notepad",#Null)
If hwnd
;Ho Yeahhhh trouvé
;On cherche le componsant principal de l'application qui est l'editeur (Edit)
subhwnd=FindWindowEx_(hwnd, #Null, "Edit", #Null)
;Et on colle (Paste)
SendMessage_(subhwnd, #WM_PASTE, 0, 0)
EndIf
C'est exactement ce que je demande : comment SIMULER ctrl+v !?nico a écrit :Simulation du ctrl+v et tu n'auras pas besoin de connaitre la fenetre.
Code : Tout sélectionner
#KEYEVENTF_UNICODE = 4
Procedure.l KeyCombi(Ctrl.l, Alt.l, Shift.l, WinKey.l, key.a)
Protected Extended.l, Scan.l, Scancode.w, j.l=-1, Nb.l, Win.l
Protected Dim SendInputData.INPUT(0)
If MapVirtualKey_(key, 2) = 0 ;MAPVK_VK_TO_CHAR=2
Extended.l = #KEYEVENTF_EXTENDEDKEY
; get scan code
Scan.l = MapVirtualKey_(key, 0) ;MAPVK_VK_TO_VSC=0
Scancode.w=Scan & $FFFF
Else
Extended = 0
Scancode = 0
EndIf
If WinKey
Win = 1
EndIf
Nb=(Ctrl + Alt + Shift + Win)*2
If Key
Nb = Nb + 2
EndIf
ReDim SendInputData.INPUT(Nb)
If Ctrl
j=j+1
SendInputData(j)\type= #INPUT_KEYBOARD
SendInputData(j)\ki\wVk= #VK_CONTROL
SendInputData(j)\ki\dwExtraInfo = 0
SendInputData(j)\ki\dwFlags = #KEYEVENTF_UNICODE
SendInputData(j)\ki\time = 0
SendInputData(j)\ki\wScan = 0
EndIf
If Alt
j=j+1
SendInputData(j)\type= #INPUT_KEYBOARD
SendInputData(j)\ki\wVk= #VK_MENU
SendInputData(j)\ki\dwExtraInfo = 0
SendInputData(j)\ki\dwFlags = #KEYEVENTF_UNICODE
SendInputData(j)\ki\time = 0
SendInputData(j)\ki\wScan = 0
EndIf
If Shift
j=j+1
SendInputData(j)\type= #INPUT_KEYBOARD
SendInputData(j)\ki\wVk= #VK_SHIFT
SendInputData(j)\ki\dwExtraInfo = 0
SendInputData(j)\ki\dwFlags = #KEYEVENTF_UNICODE
SendInputData(j)\ki\time = 0
SendInputData(j)\ki\wScan = 0
EndIf
If WinKey = 1
j=j+1
SendInputData(j)\type= #INPUT_KEYBOARD
SendInputData(j)\ki\wVk= #VK_LWIN
SendInputData(j)\ki\dwExtraInfo = 0
SendInputData(j)\ki\dwFlags = #KEYEVENTF_UNICODE
SendInputData(j)\ki\time = 0
SendInputData(j)\ki\wScan = 0
EndIf
If WinKey = 2
j=j+1
SendInputData(j)\type= #INPUT_KEYBOARD
SendInputData(j)\ki\wVk= #VK_RWIN
SendInputData(j)\ki\dwExtraInfo = 0
SendInputData(j)\ki\dwFlags = #KEYEVENTF_UNICODE
SendInputData(j)\ki\time = 0
SendInputData(j)\ki\wScan = 0
EndIf
If Key
j=j+1
SendInputData(j)\type= #INPUT_KEYBOARD
SendInputData(j)\ki\wVk= Key
SendInputData(j)\ki\dwExtraInfo = 0
SendInputData(j)\ki\dwFlags = #KEYEVENTF_UNICODE|Extended
SendInputData(j)\ki\time = 0
SendInputData(j)\ki\wScan = Scancode
j=j+1
SendInputData(j)\Type = #INPUT_KEYBOARD
SendInputData(j)\ki\wVk = Key
SendInputData(j)\ki\dwExtraInfo = 0
SendInputData(j)\ki\dwFlags = #KEYEVENTF_UNICODE|#KEYEVENTF_KEYUP|Extended
SendInputData(j)\ki\time = 0
SendInputData(j)\ki\wScan = Scancode
EndIf
If Shift
j=j+1
SendInputData(j)\type= #INPUT_KEYBOARD
SendInputData(j)\ki\wVk= #VK_SHIFT
SendInputData(j)\ki\dwExtraInfo = 0
SendInputData(j)\ki\dwFlags = #KEYEVENTF_UNICODE|#KEYEVENTF_KEYUP
SendInputData(j)\ki\time = 0
SendInputData(j)\ki\wScan = 0
EndIf
If Alt
j=j+1
SendInputData(j)\type= #INPUT_KEYBOARD
SendInputData(j)\ki\wVk= #VK_MENU
SendInputData(j)\ki\dwExtraInfo = 0
SendInputData(j)\ki\dwFlags = #KEYEVENTF_UNICODE|#KEYEVENTF_KEYUP
SendInputData(j)\ki\time = 0
SendInputData(j)\ki\wScan = 0
EndIf
If Ctrl
j=j+1
SendInputData(j)\type= #INPUT_KEYBOARD
SendInputData(j)\ki\wVk= #VK_CONTROL
SendInputData(j)\ki\dwExtraInfo = 0
SendInputData(j)\ki\dwFlags = #KEYEVENTF_UNICODE|#KEYEVENTF_KEYUP
SendInputData(j)\ki\time = 0
SendInputData(j)\ki\wScan = 0
EndIf
If WinKey = 2
j=j+1
SendInputData(j)\type= #INPUT_KEYBOARD
SendInputData(j)\ki\wVk= #VK_RWIN
SendInputData(j)\ki\dwExtraInfo = 0
SendInputData(j)\ki\dwFlags = #KEYEVENTF_UNICODE
SendInputData(j)\ki\time = 0
SendInputData(j)\ki\wScan = 0
EndIf
If WinKey = 1
j=j+1
SendInputData(j)\type= #INPUT_KEYBOARD
SendInputData(j)\ki\wVk= #VK_LWIN
SendInputData(j)\ki\dwExtraInfo = 0
SendInputData(j)\ki\dwFlags = #KEYEVENTF_UNICODE
SendInputData(j)\ki\time = 0
SendInputData(j)\ki\wScan = 0
EndIf
SendInput_(Nb, SendInputData(0), SizeOf(INPUT))
EndProcedure
Delay(5000)
KeyCombi(1, 0, 0, 0, #VK_V)
Same player play again, je retente ma chanceSPH a écrit :C'est exactement ce que je demande : comment SIMULER ctrl+v !?
Code : Tout sélectionner
::;copie::
^V
Si si, j'ai vu ton code. En fait, il y a eu un deluge de reponse et je ne sais pas ou donner de la tete.falsam a écrit :Alors là je n'ai rien compris SPH. Le code que j'ai posté en PureBasic simule ton Ctrl+V. Qu'est ce qu'il te faut de plus ?
Le lien au cas ou tu aurais lu en diagonal http://www.purebasic.fr/french/viewtopi ... 15#p171415
Code : Tout sélectionner
res = keybd_event_(#VK_CONTROL,0,0,0) ;" Appuyer sur CTRL
res = keybd_event_(#VK_V,0,0,0) ;" Appuyer sur V
res = keybd_event_(#VK_V,0,2,0) ;" Relacher V
res = keybd_event_(#VK_CONTROL,0,2,0) ;" Relacher CTRL
Blocnote non ? Ha pardon fallait comprendre une web application interpréter par chrome Chrome !!SPH a écrit :e veux qu'a l'instruction de copie, se copie le texte du presse papier sur le curseur actif de l’écran (par exemple le curseur en cours du blocnote)