Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Visual Basic 6 - Problema funzione SendKeys
Forum - Visual Basic 6 - Problema funzione SendKeys

Avatar
§§Felpato§§ (Normal User)
Rookie


Messaggi: 29
Iscritto: 27/04/2009

Segnala al moderatore
Postato alle 16:54
Venerdì, 28/08/2009
Ciao a tutti!
Stavo cercando di creare un programma che simulasse la pressione di un tasto anche se mi trovo in una finestra differente da quella del mio programma. Questo vuol dire che se sto nella finestra della calcolatrice di windows (esempio) e dico al mio programma di premere il tasto 1 del tastierino numerico, allora mi scrive 1 nel textbox della calcolatrice.

Io pensavo di usare la funzione SendKeys però ho notato che non funziona se mi trovo in un altra finestra.
Postatemi qualche guida o link dove posso informarmi se potete. Grazie

PM Quote
Avatar
ruggy94 (Member)
Guru


Messaggi: 890
Iscritto: 21/04/2008

Segnala al moderatore
Postato alle 17:17
Venerdì, 28/08/2009
Invece credo che debba funzionare...posta il codice.

PM Quote
Avatar
§§Felpato§§ (Normal User)
Rookie


Messaggi: 29
Iscritto: 27/04/2009

Segnala al moderatore
Postato alle 22:45
Venerdì, 28/08/2009
Si hai ragione funziona, però ho provato ad utilizzare l'API e l'evento: keybd_event, dato che ho letto che la funzione SendKeys è un po' limitata per certi aspetti (comunqu io personalmente non lo so).

Ecco il codice:
Codice sorgente - presumibilmente VB.NET

  1. Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, _
  2. ByVal bScan As Byte, ByVal dwFlags As Long, _
  3. ByVal dwExtraInfo As Long)
  4.  
  5.  
  6. Private Sub Timer1_Timer()
  7.     keybd_event vbKeySpace, 0, KEYEVENTF_EXTENDEDKEY, 0 'simula la pressione del backSpace
  8.     keybd_event vbKeySpace, 0, KEYEVENTF_KEYUP, 0   'simula il rilascio del BackSpace
  9. End Sub




Il problema è il seguente: se attivo il programma e vado sul Notepad funziona correttamente inserendo ogni 10000 millisecondi uno spazio, però se apro per esempio un gioco a questo punto gli eventi che si dovrebbero verificare non si verificano.
Parlandoci chiaro stò cercando di creare un bot. Ho letto il regolamente e non so se si può giudicare come un qualcosa di malevolo. Comunque al di là del bot, sono curioso di sapere per quale motivo si verifica questo problema. Vi ringrazio molto per la collaborazione. 8-|

PM Quote
Avatar
GrG (Member)
Guru^2


Messaggi: 3430
Iscritto: 21/08/2007

Segnala al moderatore
Postato alle 23:25
Venerdì, 28/08/2009
mm... secondo me è meglio usare il sendkeys e comunque quel codice mi pare corretto.

Comunque prima di tutto mi devi chiarire per bot che intendi... vuoi dire un floodder?

PM Quote
Avatar
§§Felpato§§ (Normal User)
Rookie


Messaggi: 29
Iscritto: 27/04/2009

Segnala al moderatore
Postato alle 13:50
Sabato, 29/08/2009
No no, il bot che intendo è un programma che invia una serie di comandi che possono facilitare alcune azioni in un gioco. Per esempio quello di raccogliere oggetti che si trovano per terra o di usare pozioni. In sintesi il funzionamento non è poi così diverso da un flodder però il fine è differente.

Ultima modifica effettuata da §§Felpato§§ il 29/08/2009 alle 13:52
PM Quote
Avatar
GrG (Member)
Guru^2


Messaggi: 3430
Iscritto: 21/08/2007

Segnala al moderatore
Postato alle 14:43
Domenica, 30/08/2009
ok ok, ora ho capito in che senso. E' vero che bari nel giocare, quindi sei "sleale" (perchè ti fai aiutare dal progr) comunque sia non è nulla di pericoloso, quindi è ammesso ;)

PM Quote