Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Mad Catz M.M.O. 7+: lo stesso DNA del R.A.T. 8+ ADV, ma con molti più pulsanti
Mad Catz M.M.O. 7+: lo stesso DNA del R.A.T. 8+ ADV, ma con molti più pulsanti
Con 22 tasti, il pulsante 5D, lo Shift Mode e il sensore PixArt 3395 da 26.000 DPI, il nuovo mouse wireless di Mad Catz si rivolge in modo preciso ai giocatori di MMO e RPG. Ma chi conosce già il R.A.T. 8+ ADV si accorgerà subito di quanto i due prodotti condividano, e di dove invece divergono
Radeon RX 9070 GRE, AMD la porta in tutto il mondo | Recensione Gigabyte Gaming OC
Radeon RX 9070 GRE, AMD la porta in tutto il mondo | Recensione Gigabyte Gaming OC
Abbiamo provato la Gigabyte Radeon RX 9070 GRE Gaming OC, nuova proposta RDNA 4 che si inserisce tra GeForce RTX 5060 Ti e RTX 5070. Prestazioni solide in rasterizzazione e ray tracing, frequenze elevate grazie all'overclock di fabbrica e raffreddamento efficace: ecco come si comporta nei nostri test.
Reolink OMVI 3i WiFi: videosorveglianza più intelligente e facile da usare
Reolink OMVI 3i WiFi: videosorveglianza più intelligente e facile da usare
Con tripla lente, tracking sincronizzato, visione notturna a colori e controllo locale senza abbonamenti, la OMVI 3i WiFi porta la sicurezza domestica a un livello molto più moderno, ma senza trasformarla in un sistema complicato da installare o usare
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 22-01-2004, 08:24   #1
Black
Member
 
L'Avatar di Black
 
Iscritto dal: Aug 1999
Messaggi: 93
VB6: Tastiera Virtuale

Avrei la necessità di creare in visual basic una tastiera virtuale uguale al programma "Tastiera su schermo" che si trova nell'accesso facilitato di Windows.
Deve avere le stesse caratteristiche salvo che avere dei pulsanti in meno.

Guardando un po' in giro ho trovato delle API che simulano da programma la pressione dei tasti (in allegato) ma penso che queste funzioni funzionino se io mi trovo sempre all'interno del progetto VB stesso.

Mi spiego meglio con un esempio:
Se vado su www.libero.it devo essere in grado di inserire login e password da questo programma VB (quindi esterno al programma stesso)

Potete darmi una mano per favore?

Grazie.
Allegati
File Type: zip keyboardapi.zip (10.8 KB, 17 visite)
__________________
Vice Admin del Forum di PcTuner
Black è offline   Rispondi citando il messaggio o parte di esso
Old 22-01-2004, 09:17   #2
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Modificare lo stato corrente della tastiera

Per modificare lo stato corrente della tastiera è necessario usare la seguente funzione API:

Declare Function SetKeyboardState Lib "user32" (lppbKeyState As Byte) As Long

La funzione SetKeyboardState serve per aggiornare (modificare) lo stato corrente della tastiera e deve essere usata in combinazione con la funzione :

Declare Function GetKeyboardState Lib "user32" (pbKeyState As Byte) As Long

La funzione GetKeyboardState memorizza, all’interno di un buffer di 256 byte (pbKeyState), lo stato corrente (quello al momento della chiamata) di tutti i pulsanti della tastiera.

L’esempio seguente mostra come attivare, simultaneamente, i tasti : CapsLock, NumLock e ScrollLock:

Sub AttivaKeyLock()

Dim buffer(255) As Byte 'dimensiona la matrice
Const VB_scroll = 145 'in VB non è prevista una costante (vbKey) per il tasto ScrollLock
GetKeyboardState buffer(0) 'legge lo stato corrente della tastiera

'Attivazione, se necessario, dei tre tasti CapsLock, NumLock e ScrollLock
buffer(vbKeyCapital) = buffer(vbKeyCapital) Or 1 'attiva CapsLock

buffer(vbKeyNumlock) = buffer(vbKeyNumlock) Or 1 'attiva NumLock
buffer(VB_scroll) = buffer(VB_scroll) Or 1 'attiva ScrollLock

SetKeyboardState buffer(0) 'aggiorna lo stato corrente della tastiera

End Sub




KeyboardApi by Claudio Gucchierato © 1999

Questo non dovrebbe influire solo all'interno del progetto...ma anche a livello di sistema...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 22-01-2004, 10:18   #3
Black
Member
 
L'Avatar di Black
 
Iscritto dal: Aug 1999
Messaggi: 93
grazie cionci stasera provo e ti dico
Nel frattempo ho trovato i sorgenti dello stesso in VC++

Per chi lo volesse:
http://www.codeproject.com/samples/onscreenkeyboard.asp
__________________
Vice Admin del Forum di PcTuner
Black è offline   Rispondi citando il messaggio o parte di esso
Old 22-01-2004, 19:39   #4
Fenomeno85
Senior Member
 
L'Avatar di Fenomeno85
 
Iscritto dal: Jun 2002
Città: Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8897
<?ot

cionci ma da quanti anni programmi?

ot?>

~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio.
Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso
Fenomeno85 è offline   Rispondi citando il messaggio o parte di esso
Old 22-01-2004, 21:25   #5
Black
Member
 
L'Avatar di Black
 
Iscritto dal: Aug 1999
Messaggi: 93
Nulla, non funziona... sto guardando via internet qualche soluzione
__________________
Vice Admin del Forum di PcTuner
Black è offline   Rispondi citando il messaggio o parte di esso
Old 23-01-2004, 02:00   #6
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Ora che mi ricordo...devi usare keybd_event:

keybd_event
The keybd_event function synthesizes a keystroke. The system can use such a synthesized keystroke to generate a WM_KEYUP or WM_KEYDOWN message. The keyboard driver's interrupt handler calls the keybd_event function.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 23-01-2004, 02:15   #7
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originariamente inviato da Fenomeno85
cionci ma da quanti anni programmi?
14 anni
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 23-01-2004, 11:09   #8
prodan
Member
 
L'Avatar di prodan
 
Iscritto dal: Apr 2003
Messaggi: 177
MA 14 anni di intesissima attività!
Sempre il migliore!
prodan è offline   Rispondi citando il messaggio o parte di esso
Old 23-01-2004, 12:37   #9
Black
Member
 
L'Avatar di Black
 
Iscritto dal: Aug 1999
Messaggi: 93
esatto cionci

Ti allego il programmino di esempio ma c'è un problema:

- il caps lock, bloc num e print screen funzionano correttamente in quanto sono in pratica degli interruttori ON/OFF

- Per i tasti alfanumerici invece l'esempio simula la scrittura in una parola in una textbox, ma non sono riuscito a scrivere quella stringa in una qualsiasi finestra attiva di win (notepad ad esempio)

Hai dei suggerimenti da darmi?

Grazie
Allegati
File Type: zip esempio.zip (2.2 KB, 8 visite)
__________________
Vice Admin del Forum di PcTuner
Black è offline   Rispondi citando il messaggio o parte di esso
Old 23-01-2004, 12:56   #10
Black
Member
 
L'Avatar di Black
 
Iscritto dal: Aug 1999
Messaggi: 93
il problema penso sia focalizzato sul focus dell'applicazione in VB.
Nel senso: se io associo la pressione del tasto "A" a un bottone in VB, apro notepad e schiaccio il pulsante del form quest'ultimo prende il focus e quindi per lui la finestra attiva è VB stesso
__________________
Vice Admin del Forum di PcTuner
Black è offline   Rispondi citando il messaggio o parte di esso
Old 23-01-2004, 13:40   #11
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Consiglio...fai la finestra della tastiera come "always on top"...con SetWindowLong...
Quando il mouse entra ll'interno della Client rect dell'applicazione basta salvarsi l'handle della finestra attiva con GetForegroundWindow...
A questo punto PRIMA di chiamare kebd_event chiami SetForegroundWindow e risetti la finestra attiva vecchia... Ora con keybd_event dovresti agire sulla finestra precedentemente attiva...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 23-01-2004, 14:45   #12
Black
Member
 
L'Avatar di Black
 
Iscritto dal: Aug 1999
Messaggi: 93
OK ho reso il form "always on top".
Ma non capisco una cosa: ho il notepad col focus e il pgm vb6 in rilievo ma senza focus: secondo il tuo suggerimento dovrei in qualche modo accorgermi quando entro nel perimetro dell'applicazione vb e salvare l'handle di notepad?
ma come faccio a fare in modo che venga scatenato l'evento in vb se in quel momento il mio applicativo vb non ha il focus?

Oppure se si può fare mi potresti gentilmente spiegare come farlo?

Grazie

PS: Allego lo stesso progetto con "always on top"
Allegati
File Type: zip esempio.zip (2.5 KB, 12 visite)
__________________
Vice Admin del Forum di PcTuner
Black è offline   Rispondi citando il messaggio o parte di esso
Old 23-01-2004, 16:05   #13
Fenomeno85
Senior Member
 
L'Avatar di Fenomeno85
 
Iscritto dal: Jun 2002
Città: Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8897
Quote:
Originariamente inviato da cionci
14 anni
<ot fine>
complimenti ... comunque si vede che le sai le cose
</ot>

~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio.
Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso
Fenomeno85 è offline   Rispondi citando il messaggio o parte di esso
Old 23-01-2004, 16:57   #14
Black
Member
 
L'Avatar di Black
 
Iscritto dal: Aug 1999
Messaggi: 93
possiamo rimanere In Topic please

Se vuoi elogiare cionci puoi farlo via pvt.

Chiedo scusa a cionci se ho preso il suo posto ma se il post non è relativo al topic allora inutile scrivere.

x Cionci: mi è venuta una idea: e se interrogassi la collection che mi dice quali finestre aperte ci sono nel mio sistema e interrogare in qualche modo l'ordine? In pratica quello che fa ALT+TAB
Già qual'è l'api corrispondente?
__________________
Vice Admin del Forum di PcTuner
Black è offline   Rispondi citando il messaggio o parte di esso
Old 23-01-2004, 18:22   #15
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Strano...il mouse sopra dovrebbe rilevarlo anche se la finestra non è attiva (evento MouseMove)...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 23-01-2004, 18:38   #16
Black
Member
 
L'Avatar di Black
 
Iscritto dal: Aug 1999
Messaggi: 93
Funziona alla grande. Avevo sbagliato a mettere l'evento

Grazie cionci e a buon rendere

Allego il codice nel caso qualcuno volesse fare una cosa analoga
Allegati
File Type: zip esempio.zip (2.6 KB, 72 visite)
__________________
Vice Admin del Forum di PcTuner

Ultima modifica di Black : 23-01-2004 alle 19:15.
Black è offline   Rispondi citando il messaggio o parte di esso
Old 23-01-2004, 19:03   #17
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Complimenti
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 23-01-2004, 19:12   #18
Black
Member
 
L'Avatar di Black
 
Iscritto dal: Aug 1999
Messaggi: 93
Grazie a te

Ti disturbo per una cosuccia sempre inerente a questo progetto.
Se uso questa applicazione su notepad o msn schiacciando più volte il tasto del form tutto funziona correttamente: viene ripetuta la stringa per quante volte premo il pulsante.

Se al posto di notepad uso IE, la stringa viene visualizzata una sola volta anche se io pigio il bottone cento volte

Hai visto l'ultimo codice che ti ho allegato? Hai qualche idea?

Grazie ancora
__________________
Vice Admin del Forum di PcTuner
Black è offline   Rispondi citando il messaggio o parte di esso
Old 23-01-2004, 20:12   #19
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Sì....ho visto subito questa cosa...

Ti spiego il perchè... Apri IE...metti il focus sul textbox dell'indirizzo... Apti un'altra finestra e ritorna ad IE...vedrai che l'intera textbox è selezionata... Ecco perchè fa quel gioco... Ogni volta seleziona il contenuto e lo sovrascrive...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 23-01-2004, 20:17   #20
Black
Member
 
L'Avatar di Black
 
Iscritto dal: Aug 1999
Messaggi: 93
già...ho notato...l'unica forse è fare in modo che il progetta non prenda mai il focus neanche quando pigio sul bottone.
Ed è infatti quello che fa "Tastiera su schermo" di accesso facilitato
__________________
Vice Admin del Forum di PcTuner
Black è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Mad Catz M.M.O. 7+: lo stesso DNA del R.A.T. 8+ ADV, ma con molti più pulsanti Mad Catz M.M.O. 7+: lo stesso DNA del R.A.T. 8+ ...
Radeon RX 9070 GRE, AMD la porta in tutto il mondo | Recensione Gigabyte Gaming OC Radeon RX 9070 GRE, AMD la porta in tutto il mon...
Reolink OMVI 3i WiFi: videosorveglianza più intelligente e facile da usare Reolink OMVI 3i WiFi: videosorveglianza pi&ugrav...
Recensione Vivo X300 Ultra: fotocamera eccezionale, ma prezzo proibitivo Recensione Vivo X300 Ultra: fotocamera ecceziona...
Xiaomi 17T Pro recensione: zoom Leica 5x e batteria silicio-carbonio per l'alternativa ai top Xiaomi 17T Pro recensione: zoom Leica 5x e batte...
Il Parlamento Europeo sostituisce Google...
Thermaltake resuscita floppy disk e moni...
Control Resonant: svelati i requisiti PC...
UE, arriva il pacchetto per la sovranit&...
Apple sceglie Berlino per il suo quinto ...
Invisix, lo spinout di ASML, raccoglie 2...
Cryorig svela Lull, case con radiatore i...
Plaud Team, la soluzione di trascrizione...
OmniBook Ultra 16 e OmniBook X 14, anche...
G.SKILL porta al Computex 2026 una serie...
Biwin al Computex 2026: RAM DDR5 Origin ...
Dimenticatevi OS e app, per Microsoft ci...
Arctic al Computex 2026: Freezer 61, ven...
Siamo stati nel quartier generale di MSI...
AIO senza pompa: Enermax presenta il fut...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 07:29.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v