begin process at 2012 02 17 05:40:55
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

API

 > COLLER UNE DONNÉE DANS N'IMPORTE QUEL APPLICATION

COLLER UNE DONNÉE DANS N'IMPORTE QUEL APPLICATION


 Information sur la source

Note :
9,33 / 10 - par 6 personnes
9,33 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :API Classé sous :coller, paste, sendmessage Niveau :Débutant Date de création :10/11/2005 Vu / téléchargé :7 872 / 747

Auteur : Renfield

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (2)
Ajouter un commentaire et/ou une note


 Description

Cliquez pour voir la capture en taille normale
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

Les Membres Club peuvent 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

Source avec Zip Source avec une capture ENUMERATION DES PORTS TCP ET IDENTIFCATION DU PROCESS (PID) ...
Source avec Zip Source avec une capture JSON PARSER - ANALYSE DE CHAINES JSON
Source avec Zip Source avec une capture MODULE DE TÉLÉCHARGEMENT DE FICHIER BASIQUE (SYNCHRONE / ASY...
Source avec Zip COURS DE PILOTAGE........D'APPLICATIONS
Source avec Zip CSOCKET - REMPLACEZ WINSOCK PAR LA VERSION 2 DES API

 Sources de la même categorie

Source avec Zip Source .NET (Dotnet) .NET DEPENDENCY VIEWER : ARBRE DES DÉPENDANCES D'UN ASSEMBLY... par ShareVB
Source avec Zip Source .NET (Dotnet) UTILITAIRE SKYDRIVE par MasterShadows
Source avec Zip ROTATION RAPIDE D'IMAGE par trex70
Source avec Zip Source avec une capture ENUMERATION DES PORTS TCP ET IDENTIFCATION DU PROCESS (PID) ... par Renfield
Source avec Zip Source avec une capture MOUSE SPEED AND WEIGHT : RETOUR DE FORCE VIRTUEL ! par ScSami

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture HICHAM'S ARBORESCENCE V 1.0 par shaeks
Source avec Zip COURS DE PILOTAGE........D'APPLICATIONS par Renfield
Source avec Zip COMMUNICATION INTER-PROCESSUS (IPC) par MadM@tt
Source avec Zip Source avec une capture MIDDLEBUTTON COPYPASTE [ADDIN VB6] par mortalino
Source avec Zip COLLER TEXTE DANS UNE APPLI. EXTERNE par JohnBug

Commentaires et avis

Commentaire de Booster le 30/06/2006 16:54:20

lu renfield,
Ta source est parfaite mais j'ai un problème et j'ai fait à peu prés tout les sites pour trouver mais personne n'a su m'aider.
Le probleme est simple, il me faut coller du texte dans une sous fenetre de dreamweaver car avec ta technique le focus est redonné a dreamweaver et non à la sous fenetre, j'ai essayer de recupérer le nom de la sous fenetre mais impossible de trouver comment je pourais faire ca ?
Je te remercie d'avance et merci pour ta source qui ma bien aidé ;)

Commentaire de Renfield le 30/06/2006 17:17:57 administrateur CS

tu peux utiliser SPY++

tu aura ainsi de quoi trouver la sous-fenetre en utilisant FindWindow(Ex)

 Ajouter un commentaire


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 Difference entre ActiveSheet.Paste et coller sur excel [ par dzair57 ] Bonjour à tous Je fais mon copier à partir d'un fichier txt. Vous comprenez la différence entre un coller classique directement sous excel et la fonc Copier puis coller valeur dans la prochaine cellule vide d'un tableau excel [ par kouki69 ] Bonjour à vous, les dieux de la programmation.[^^happy17] Un problème sûrement simple... J'ai fouillé dans le forum et je n'ai pas trouvé exactement c copier/coller le contenu d'une variable [ par mumuxe ] Bonjour (ou bonsoir) Je tente par tous les moyens à coller le contenu du presse-papiers dans une variable de type String. J'ai déjà essayé le code su clipboard et application externe [ par scromania ] bonjour, Je cherche un moyen de coller des informations dans une application externe: ex: Dim MyAppliAcad MyAppliAcad =Shell("c:\...\...`\Acad.exe" Copier-coller une feuille complète dans nouveau classeur calc [ par alchimiste66 ] Bonjour, Je ne sais me servir des macros uniquement via la boite de dialogue d'open office. Donc il y a du boulot... Est-il possible de copier une f [VB6]Raccourcis clavier coller du texte [ par matheonimbus30 ] Salut ! Je voudrais creer une application qui quand l'utilisateur appuit sur alt+F4 par exemple, cela colle le texte "texte a coller" dans nimporte qu sendmessage ou postmessage ou sendkey ou ??? [ par Claiyah ] bonjour svp je cherche comment envoyer des commandes à un control dans vb6 j'ai un webbrowser avec proprieté visible = false qui execute une page qua [Déplacé .Net --> VBA] copiez-coller [ par MADIE35 ] Bonjour, J'ai un petit problème, car je veux créer une base de donnée. Pour cela j'ai une feuille ou je saisie et une feuille qui garde mes informati [déplacé VB.NET -> VBA] copier/coller impossible [ par nesaipas ] bonjour à tous voila il m'est impossible de coller(le choix "coller" est grisé) une cellule dans une autre cellule j'ai longtemps cherché puis j'ai en


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,605 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales