Accedi per seguire   
Seguaci 0
drake88

[vb] Eventi Con Tastiera

3 messaggi in questa discussione

salve, era da un po che nn postavo qua :P

avrei bisogno di una mano riguardante il vb6

vorrei creare un applicazione che ogni tot secondi (nn so anche 10 minuti) scriva un qualcosa di preimpostato, mi spiego meglio, avvio questa applicazione che ogni tot secondi mi scrive "ciao". ora io lavoro normalmente con questa applicazione ridotta a icona. se per esempio mi trovo sul word, allo scadere del tempo mi scrive la mia frase "ciao". se invece mi trovavo sul blocco note me lo scriveva li. se invece nn avevo niente aperto nn lo scriveva da nessuna parte. diciamo che dovrebbe proprio simulare la pressione di un mio tasto (o piu tasti) anche quando non sono a pc. sia chiaro che nn voglio che mi scriva su una textbox quello che voglio io. io voglio proprio che mi simuli la pressione di un tasto come se ci fosse qualcuno che la schiacciato. cosi e valido anche al di fuori della mia applicazione. ho sentito dire di key preview, o roba cosi ma nn sono sicuro che e quello che mi serva.

spero si essere stato il piu chiaro possibile :P

grazie dell'aiuto :)

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Premetto che non sono un programmatore VB, ma questo quesito, penso si adatti a qualsiasi linguaggio di programmazione per Win32...

Allora, Key Preview non c'entra molto con quello che vuoi fare... Quella proprietà permette di intercettare la pressione di un tasto prima che questa arrivi ad il controllo in quel momento attivo. Questo diventa utile in un'applicazione quando si vuole prevenire che la pressione di un tasto arrivi ad un determinato controllo, o (vabbè, per un milione di cose)...

Ma non simula la pressione di un tasto...

Quello che dovresti fare tu, "mandare" un messaggio di sistema che inserisca un evento di keystroke ad-hoc nello stream di input. L'applicazione attiva, che legge dallo stream di input i tasti premuti, si troverà così le tue "pressioni software".

Prima di Windows NT/2000/XP, l'evento si generava con la funzione di libreria keybd_event ora sostituita da SendInput. Questa funziona inserisce nello stream di input un puntatore ad un array di strutture INPUT.

P.S. Naturalmente la tua applicazione deve rimanere attiva in background e, attraverso un timer, eseguire l'operazione sopra descritta ogni intervallo di tempo da te definito...

:)

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Ciao, ho letto adesso il post, io purtroppo non ho il VB6 installato ma ti posso aiutare con la variante VB.NET...

Ho provato a scrivere una piccola applicazione che facesse ciò che hai chiesto e funziona,

è sufficiente utilizzare un timer ed il comando sendkeys

Inizializzazione del timer:

NB: Interval esprime l'intervallo in Millisecondi quindi 10000=10 sec

 
Public Sub set_timer()
	Timer1.Interval = 10000
	Timer1.Enabled = True
	Timer1.Start()
End Sub

Simulazione della pressione all'evento Tick del timer:

 
Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick
	SendKeys.Send("{C}")
	SendKeys.Send("{I}")
	SendKeys.Send("{A}")
	SendKeys.Send("{O}")
End Sub

ricordati che nel'evento load della from devi specificare l'avvio del timer con:

Private Sub Form1_Load
	set_timer()
End Sub

NB: Ribadisco che il tutto è scritto con VB.NET 2005

Ciauz... :)

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Crea un account o accedi per lasciare un commento

Devi essere un utente registrato per partecipare

Crea un account

Iscriviti per un nuovo account nella nostra community. È facile!


Registra un nuovo account

Accedi

Sei già registrato? Accedi qui.


Accedi Ora
Accedi per seguire   
Seguaci 0