|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
COLLER UNE DONNÉE DANS N'IMPORTE QUEL APPLICATION
Information sur la source
Description
en Anglais, ca donnerait "SystemWide Paste" mais bon... C'est un mini-projet que je fais pour une personne du forum, et qui ne fait que reprendre du code d'une de mes autres mini-sources... une pseudo donnée est generée aléatoirement, à un certain interval de temps. ce simule l'évolution d'une donnée en temps reel. en pressant Alt + V , vous collez cette donnée dans l'application de votre choix.
Source
- Option Explicit
-
- Private Declare Function AttachThreadInput Lib "user32.dll" (ByVal idAttach As Long, ByVal idAttachTo As Long, ByVal fAttach As Long) As Long
- Private Declare Function GetFocus Lib "user32.dll" () As Long
- Private Declare Function GetForegroundWindow Lib "user32" () As Long
- Private Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hWnd As Long, lpdwProcessId As Long) As Long
- Private Declare Function PeekMessage Lib "user32" Alias "PeekMessageA" (lpMsg As Msg, ByVal hWnd As Long, ByVal wMsgFilterMin As Long, ByVal wMsgFilterMax As Long, ByVal wRemoveMsg As Long) As Long
- Private Declare Function RegisterHotKey Lib "user32" (ByVal hWnd As Long, ByVal ID As Long, ByVal fsModifiers As Long, ByVal vk As Long) As Long
- Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByRef lParam As Any) As Long
- Private Declare Function UnregisterHotKey Lib "user32" (ByVal hWnd As Long, ByVal ID As Long) As Long
- Private Declare Function WaitMessage Lib "user32" () As Long
-
- Private Const MOD_ALT As Long = &H1
-
- Private Const PM_REMOVE = &H1
- Private Const WM_HOTKEY = &H312
- Private Const WM_PASTE As Long = &H302
-
- Private Type POINTAPI
- x As Long
- y As Long
- End Type
-
- Private Type Msg
- hWnd As Long
- Message As Long
- wParam As Long
- lParam As Long
- time As Long
- pt As POINTAPI
- End Type
-
- Private mQuit As Boolean
- Private mhWnd As Long
-
- Private Sub ProcessMessages()
- Dim tMessage As Msg
- Dim hWnd_Target As Long
- mQuit = False
- Do
- DoEvents
- WaitMessage
- '# Récupération du message WM_HOTKEY
- If PeekMessage(tMessage, mhWnd, WM_HOTKEY, WM_HOTKEY, PM_REMOVE) Then
- '# L'utilisateur a pressé Alt + V : on place notre donnée dans le presse-papier
- Clipboard.Clear
- Clipboard.SetText CcTxtRealTime.Text, vbCFText
- '# On récupère le handle de la fenetre qui as le focus
- hWnd_Target = GetForegroundWindow
- '# On récupère le handle du controle qui as le focus (GetFocus ne fonctionne que pour le Thread en cours)
- AttachThreadInput App.ThreadID, GetWindowThreadProcessId(hWnd_Target, 0), True
- SendMessage GetFocus, WM_PASTE, 0, ByVal 0&
- AttachThreadInput App.ThreadID, GetWindowThreadProcessId(hWnd_Target, 0), False
- End If
- Loop Until mQuit
- End Sub
-
- Private Sub CcTimMain_Timer()
- If mQuit Then
- '# On demande a quitter, on coupe le Timer
- CcTimMain.Enabled = False
- Else
- '# Pseudo Génération de notre donnée en temps reel
- Randomize Timer
- CcTxtRealTime.Text = (120 + Rnd - Rnd)
- End If
- End Sub
-
- Private Sub Form_Load()
- mhWnd = Me.hWnd
- '# Le raccourci sera Alt + V
- RegisterHotKey mhWnd, 1, MOD_ALT, vbKeyV
- '# Affichage de la forme
- Me.Show
- '# On regarde les messages
- ProcessMessages
- End Sub
-
- Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
- '# On a demandé a quitter
- mQuit = True
- '# On désenregistre le raccourcis
- UnregisterHotKey hWnd, 1
- End Sub
Option Explicit
Private Declare Function AttachThreadInput Lib "user32.dll" (ByVal idAttach As Long, ByVal idAttachTo As Long, ByVal fAttach As Long) As Long
Private Declare Function GetFocus Lib "user32.dll" () As Long
Private Declare Function GetForegroundWindow Lib "user32" () As Long
Private Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hWnd As Long, lpdwProcessId As Long) As Long
Private Declare Function PeekMessage Lib "user32" Alias "PeekMessageA" (lpMsg As Msg, ByVal hWnd As Long, ByVal wMsgFilterMin As Long, ByVal wMsgFilterMax As Long, ByVal wRemoveMsg As Long) As Long
Private Declare Function RegisterHotKey Lib "user32" (ByVal hWnd As Long, ByVal ID As Long, ByVal fsModifiers As Long, ByVal vk As Long) As Long
Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByRef lParam As Any) As Long
Private Declare Function UnregisterHotKey Lib "user32" (ByVal hWnd As Long, ByVal ID As Long) As Long
Private Declare Function WaitMessage Lib "user32" () As Long
Private Const MOD_ALT As Long = &H1
Private Const PM_REMOVE = &H1
Private Const WM_HOTKEY = &H312
Private Const WM_PASTE As Long = &H302
Private Type POINTAPI
x As Long
y As Long
End Type
Private Type Msg
hWnd As Long
Message As Long
wParam As Long
lParam As Long
time As Long
pt As POINTAPI
End Type
Private mQuit As Boolean
Private mhWnd As Long
Private Sub ProcessMessages()
Dim tMessage As Msg
Dim hWnd_Target As Long
mQuit = False
Do
DoEvents
WaitMessage
'# Récupération du message WM_HOTKEY
If PeekMessage(tMessage, mhWnd, WM_HOTKEY, WM_HOTKEY, PM_REMOVE) Then
'# L'utilisateur a pressé Alt + V : on place notre donnée dans le presse-papier
Clipboard.Clear
Clipboard.SetText CcTxtRealTime.Text, vbCFText
'# On récupère le handle de la fenetre qui as le focus
hWnd_Target = GetForegroundWindow
'# On récupère le handle du controle qui as le focus (GetFocus ne fonctionne que pour le Thread en cours)
AttachThreadInput App.ThreadID, GetWindowThreadProcessId(hWnd_Target, 0), True
SendMessage GetFocus, WM_PASTE, 0, ByVal 0&
AttachThreadInput App.ThreadID, GetWindowThreadProcessId(hWnd_Target, 0), False
End If
Loop Until mQuit
End Sub
Private Sub CcTimMain_Timer()
If mQuit Then
'# On demande a quitter, on coupe le Timer
CcTimMain.Enabled = False
Else
'# Pseudo Génération de notre donnée en temps reel
Randomize Timer
CcTxtRealTime.Text = (120 + Rnd - Rnd)
End If
End Sub
Private Sub Form_Load()
mhWnd = Me.hWnd
'# Le raccourci sera Alt + V
RegisterHotKey mhWnd, 1, MOD_ALT, vbKeyV
'# Affichage de la forme
Me.Show
'# On regarde les messages
ProcessMessages
End Sub
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
'# On a demandé a quitter
mQuit = True
'# On désenregistre le raccourcis
UnregisterHotKey hWnd, 1
End Sub
Fichier Zip
Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
Télécharger le zip
Sources du même auteur
Sources de la même categorie
Sources en rapport avec celle ci
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Coller sous Excel VB.net [ par morcelet ]
Bonjour, Jaimerais savoir comment on fait pour coller une Cellule qu'on a copiée juste avant.Je fais exlapp.Cells(4, 1).copy()exlapp.Cells(1, 1).Paste
coller des graph excel dans word [ par bloodbiscuit ]
bonjour tlm !voili voilo ! j'fé un prog ki prend des graph excel et qui les copie dans wordca copie bien ca colle un peu moin bienen effet, ilme colle
Désactivation de Copier/Coller [ par fuelH ]
Bonjour.Dans un prog sous ACCESS, je souhaite désactiver le copier/coller (pour que le code puisse suivre). Y a t il un moyen de faire cela?
Explications sur SendMessage [ par bignonfrederic ]
J'ai beau chercher mais je trouve nul part l'explication pour l'utilisation de sendmessage, c a d que je cherche a comprendre comment on trouve tous l
Parametres de SendMessage [ par bignonfrederic ]
Je souhaiterai passer des commandes vers une autre application ( ex Winamp, MediaPlayer,Etc ...) avec la fonction SendMessage, je sais que cela foncti
selectionner une quantité de cellule la copier la coller :( [ par gnosis35 ]
1quand on est sous excel que l'on clique sur une cellule et que tout en maintenant le clique enfoncé en deplace la souris vers une autre cellule ça c
extraction des textes d'un fichier TXT puis les concatener puis les coller dans feuille XLS [ par choumi92 ]
Bonjour j'ai cherché partour ! Existe-t-il un code source VB pour : 1) ouvrir un fichier "a.txt"2) resultat = ' ' 3) Faire tant que colonne A = n
Copier-coller d'Excel vers Word via 1 macro Excel [ par Adoc5 ]
Bonjour tout le monde,j'ai créé une macro Excel qui fait une copie d'un graphe pris dans Excel et qui va le coller dans un doc Word. Le problème est q
vb [ par sauveur942002 ]
Je cherche kelkun ki pourrai m'aider à modifier une macro en vb afin kelle puisse me créer un étiquette sous word en gros faire un copier coller d inf
copier coller de fichier avec ecrasement des anciens [ par killeroffish ]
je voudrais faire un copier coller de fichier et dossier. pour faire une sauvegarde toutes les heures. Comment faire pour ecrase les ancien fichier?C'
|
Téléchargements
Logiciels à télécharger sur le même thème :
Comparez les prix Nouvelle version
|