begin process at 2012 02 15 16:56:47
  Trouver un code source :
 
dans
 
Accueil > Forum > 

VB.NET et VB 2005

 > 

Windows

 > 

API

 > 

Sendinput et vb.NET


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Sendinput et vb.NET

samedi 7 avril 2007 à 17:34:00 | Sendinput et vb.NET

devoluti0n

Bonjour !

Je n'arrive pas à trouver d'éxplications claires quand à l'utilisation de sendinput en vb.net.

La conversion de vb6 à v.net étant périeuse, je me réfere à vous pour me donner des éxemples d'utilisation.

Merci d'avance !
lundi 9 avril 2007 à 10:56:21 | Re : Sendinput et vb.NET

devoluti0n

S'il vous plait ? je fais tous les forums à la recherche d'une ame charitable :)
lundi 9 avril 2007 à 17:54:47 | Re : Sendinput et vb.NET

devoluti0n

Aller s'il vous plait !

J'ai juste besoin qu'on m'aide à changer sa :

[code]
' Declarations and such needed for the example:
' (Copy them to the (declarations) section of a module.)
Public Type KEYBDINPUT
      wVk As Integer
      wScan As Integer
      dwFlags As Long
      time As Long
      dwExtraInfo As Long
End Type
Public Const VK_P = &H50  ' using vbKeyP instead would also work
Public Const KEYEVENTF_KEYUP = &H2
Public Type INPUT_TYPE
      dwType As Long
      xi(0 To 23) As Byte
End Type
Public Const INPUT_KEYBOARD = 1
Public Declare Function SendInput Lib "user32.dll" (ByVal nInputs As Long, pInputs As INPUT_TYPE, _
 ByVal cbSize As Long) As Long
Public Declare Sub CopyMemory Lib "kernel32.dll" Alias "RtlMoveMemory" (Destination As Any, Source _
 As Any, ByVal Length As Long)

' *** Place the following code inside the form window. ***

Private Sub Command1_Click()
 Dim inputevents(0 To 3) As INPUT_TYPE  ' holds information about each event
 Dim keyevent As KEYBDINPUT             ' temporarily hold keyboard input info
 
 ' Load the information needed to imitate pressing the P key.
 With keyevent
  .wVk = VK_P       ' the P key
  .wScan = 0        ' not needed
  .dwFlags = 0      ' press the key down
  .time = 0         ' use the default
  .dwExtraInfo = 0  ' not needed
 End With
 ' Copy the structure into the input array's buffer.
 inputevents(0).dwType = INPUT_KEYBOARD
 CopyMemory inputevents(0).xi(0), keyevent, Len(keyevent)
 
 ' Do the same as above, but for releasing the P key.
 With keyevent
  .wVk = VK_P       ' the P key
  .wScan = 0        ' not needed
  .dwFlags = KEYEVENTF_KEYUP  ' release the key
  .time = 0         ' use the default
  .dwExtraInfo = 0  ' not needed
 End With
 inputevents(1).dwType = INPUT_KEYBOARD
 CopyMemory inputevents(1).xi(0), keyevent, Len(keyevent)
 
 ' into the array, finally send it into the input stream.
 SendInput 2, inputevents(0), Len(inputevents(0))
End Sub
[/code]

Pour le rendre compatible vb.net !


J'ai bien fait :

[code]
Public Class Form1
    Public Declare Function SendInput Lib "user32.dll" (ByVal nInputs As Long, ByVal pInputs As INPUT_TYPE, ByVal cbSize As Long) As Long
    Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Integer) As Short
    Public Declare Sub CopyMemory Lib "kernel32.dll" Alias "RtlMoveMemory" (ByVal Destination As IntPtr, ByVal Source As IntPtr, ByVal Length As Long)
    Public Structure KEYBDINPUT
        Dim wVk As Integer
        Dim wScan As Integer
        Dim dwFlags As Long
        Dim time As Long
        Dim dwExtraInfo As Long
    End Structure
    Public Const VK_P = &H50  ' using vbKeyP instead would also work
    Private Const VK_CTRL As Long = &HA2
    Private Const VK_SPACE As Long = 32
    Public Const KEYEVENTF_KEYUP = &H2
    Public Structure INPUT_TYPE
        Dim dwType As Long
        Dim xi As Byte
    End Structure
    Public Const INPUT_KEYBOARD = 1

 


    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        If GetAsyncKeyState(VK_CTRL) Then
            Dim inputevents(0 To 4) As INPUT_TYPE  ' holds information about each event
            Dim keyevent As KEYBDINPUT             ' temporarily hold keyboard input info
        End If
        With keyevent
            .wVk = VK_SPACE   ' the Space key
            .wScan = 0        ' not needed
            .dwFlags = 0      ' press the key down
            .time = 0         ' use the default
            .dwExtraInfo = 0  ' not needed
        End With
        ' Copy the structure into the input array's buffer.
        inputevents(0).dwType = INPUT_KEYBOARD
        CopyMemory(inputevents(0).xi(0), keyevent, Len(keyevent))

        ' Do the same as above, but for releasing the P key.
        With keyevent
            .wVk = VK_SPACE   ' the Space key
            .wScan = 0        ' not needed
            .dwFlags = KEYEVENTF_KEYUP  ' release the key
            .time = 0         ' use the default
            .dwExtraInfo = 0  ' not needed
        End With
        inputevents(1).dwType = INPUT_KEYBOARD
        CopyMemory(inputevents(1).xi(0), keyevent, Len(keyevent))

        SendInput(2, inputevents(0), Len(inputevents(0)))
    End Sub
[/code]
Mais il me dit que inputevents et keyevent ne sont pas déclarés, hors :

[code]            Dim inputevents(0 To 4) As INPUT_TYPE  ' holds information about each event
            Dim keyevent As KEYBDINPUT             ' temporarily hold keyboard input info
[/code]

Et enfin j'ai retranscrit
[code]
xi(0 To 23) As Byte[/code]

En [code]
Dim xi As Byte[/code] mais j'ai un doute sur le si sa va changer quelque chose =)

Merci s'il vous plait de prendre 2 minutes pour ceux qui savent à m'aider :(

mardi 10 avril 2007 à 09:37:31 | Re : Sendinput et vb.NET
jeudi 7 août 2008 à 22:18:34 | Re : Sendinput et vb.NET

werdDomain

Tu obtien surment une erreur ex "Debalencement de la pile ..." ou declaration non conforme

 la conversion de Long, de vb6, dans les declarations api, est le type Integer,

pour la conversion de type, tu peut utiliser Ctype, comme sa:

dim I as Intptr = 0&
dim O as object = i 'la conversion de I à O ne retourne aucune erreur
dim II as Intptr = O 'Ici la conversion retourne une erreur, voici comment faire :

dim II as Intptr = Ctype(O, Intptr) 'Ctype(Expresion as Object, Type as Type)as Object
'ne retourneras pas d'erreur

jespere t'avoir aider unpeut dans ta conversion :p



Cette discussion est classée dans : net, vb, utilisation, sendinput


Répondre à ce message

Sujets en rapport avec ce message

Thread vb.net utilisation de la memoire [ par FLO1978 ] Bonjour , J'effectue actuellement un logiciel utilisant les trhreads,Je n'arrive malheuresement pas a géré la mémoire utilisé par ces thread ainsi que Pb d'utilisation avec EnableStatic en VB.NET [ par TheEwook ] Bonjour à tous, Je n'arrive pas à utiliser cette fonction pour pourvoir modifier l'adresse IP et le Masque de Sous-Réseau sur une interface choisi :Vo VB.net : utilisation de getpixel et setpixel [ par clement127 ] Bonsoir voilà, je travaille sur unr petit projet pour apprendre à utiliser vb.net et j'aurais besoin de votre aide. Je cherche à changer la couleur de utilisation d'une liste dans vb.net [ par j_aub ] slt ttt le Monde,en fait ce que je veux faire c'est d'avoir dans une liste un ensemble de "noms" que je recupére a partire d'une base de données 'mais [vb .net] utilisation du null [ par tof008 ] Comment utiliser le null dans vb .net? Merci d'avance pour vos réponses(Si la réponse vous convient, appuyez sur réponse acceptée...)Il y a plusieurs Utilisation d'API en VB.NET [ par shadow1779 ] J'ai vu qu'il etait possible d'utiliser des API windows en VB.NET cependant je n'y comprend pas tout, j'ai vu un tuto ici: http://plasserre.developpez Utilisation de DateTimePicker sous vb.net pour creer un Agenda [ par benoul ] Bonjour,  Je souhaiterai réaliser un agenda sous vb.net.J'ai des problèmes avec l'utilisation de DateTimePicker, pouvez vous m'expliquer comment fonct question sur l'utilisation de "dataset "en vb.net [ par wacssine ] bonjour,est ce que je peux utiliser la dataset en mode connecté dans vb.net utilisation du cm11 en vb.net [ par berpontini ] bonjours a tousvoila mon souci, je souhaite piloter mon module cm11 (interface courant porteur) directement en creeant un programmeje souhaite envoyer


Nos sponsors


Sondage...

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 : 0,546 sec (4)

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