Sto disperatamente cercando di capire come si fa ad inviare una sequenza di
tasti
ad una applicazione NON attiva di cui conosco l'Handle, utilizzando le API
(PostMessage, SendMessage ecc..),
Se devo simulare un tasto normale l'istruzione "PostMessage hWnd,
WM_KEYDOWN, 0&, 0&"
funziona benissimo.
Se invece devo simulare la pressione simultanea di "CTRL" + "F" e' un
casino!
Come trovo il codice di "CTRL" e come lo appiccico a "F"??????
Mi fareste un'esempio, per favore?
Vi prego e' una vita che ci sono dietro, GGGRRAAAZZZIIIEEE!!!!!
Per il fatto dell'applicazione non attiva, non so, ma puoi provare con l'API keybd_event.
'API keybd_event.
______________________
' Inserire nella sezione Dichiarazioni di un Form
Private Declare Sub keybd_event Lib "user32" _
(ByVal bVk As Byte, ByVal bScan As Byte, _
ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Private Const KEYEVENTF_KEYUP = &H2
Private Const VK_SNAPSHOT = &H2C
Private Const VK_CONTROL = &H11
Private Const VK_DELETE = &H2E
Private Const VK_MENU = &H12
Private Const VK_ESCAPE = &H1B
Private Const VK_SHIFT = &H10
Private Const VK_OEM_PLUS = &HBB
Private Const VK_MULTIPLY = &H6A ' asterisco del tastierino numerico
Private Const VK_F1 = &H70 ' <---- [F1]
Private Const VK_F2 = &H71 ' <---- [F2]
Private Const VK_F3 = &H72 ' <---- [F3]
' ecc...
______________________
Trovi gli altri keycodes qui:
http://msdn.microsoft.com/library/psdk/winui/vkeys_529f.htm
Esempi di chiamata:
______________________
'Simulare la pressione del tasto asterisco
keybd_event VK_MULTIPLY, 0, 0, 0 ' simula la pressione del tasto *
keybd_event VK_MULTIPLY, 0, KEYEVENTF_KEYUP, 0 ' tasto * rilasciato
'Esempio per il tasto asterisco della tastiera normale
______________________
keybd_event VK_SHIFT, 0, 0, 0 ' simula la pressione del tasto SHIFT
keybd_event VK_OEM_PLUS, 0, 0, 0 ' simula la pressione del tasto +
keybd_event VK_SHIFT, 0, KEYEVENTF_KEYUP, 0 ' tasto + rilasciato
keybd_event VK_OEM_PLUS, 0, KEYEVENTF_KEYUP, 0 ' tasto SHIFT rilasciato
Esempio per Control-Esc
______________________
keybd_event VK_CONTROL, 0, 0, 0 ' simula la pressione del tasto Control
keybd_event VK_ESCAPE, 0, 0, 0 ' simula la pressione del tasto ESC
keybd_event VK_ESCAPE, 0, KEYEVENTF_KEYUP, 0 ' tasto ESC rilasciato
keybd_event VK_CONTROL, 0, KEYEVENTF_KEYUP, 0 ' tasto Del rilasciato
______________________
Spero che questo ti aiuti.
Bye, G.
--
---------------------------------------------
Le risposte alle tue domande le trovi
sul Sito Comune di questo NewsGroup:
http://www.murialdo.it/it_lang_vb
... e nell'help in linea !
---------------------------------------------
Real E-address: gaet...@hotmail.com
Grazie comunque moltissimo, ciao.
Avete qualche altra idea?
Paperino <non...@lo.dico> wrote in message
8fpecl$3nv0$1...@stargate1.inet.it...
> "Andrea Fabbri" <andrea...@libero.it> ha scritto nel messaggio
> > Se devo simulare un tasto normale l'istruzione "PostMessage hWnd,
> > WM_KEYDOWN, 0&, 0&"
> > funziona benissimo.
> > Se invece devo simulare la pressione simultanea di "CTRL" + "F" e' un
> > casino!
>
> Per il fatto dell'applicazione non attiva, non so, ma puoi provare con
l'API keybd_event.
>
>
> 'API keybd_event. ....
SendKeys "^F"
---------
ciao
Sabba
purtroppo non posso consultare MSDN per averne conferma, cmq mi pare di
ricordare che il mask dei tasti Ctrl, Shift e Alt sia passato come wParam (o
lParam...)
prova a dare un'occhiata a MSDN!
Ciao
Faber
Grazie comunque, ciao.
Sabba <super...@libero.it> wrote in message
VBXT4.28543$F46.3...@news.infostrada.it...
Grazie.
Faber <zann...@libero.it> wrote in message
KOXT4.28713$F46.3...@news.infostrada.it...
Ciao
GL
Shell "calc.exe", vbNormalFocus
SendKeys "^M" 'Questo funziona
SendKeys "123456"
Comunque se vuoi usare una API a te la scelta....
------------
Ciao
Sabba
Mai provato a sommare il codice di F il codice di CTRL con un semplice OR? (il
codice di CTRL al momento mi sfugge, dovrebbe essere 12 o giů di lě)
Per adesso ho risolto; Quello che dovevo fare con la simulazione della
tastiera, cioe' far apparire
la finestra di "trova" di un'applicazione inviandogli CTRL+F, l'ho fatto
simulando l'attivazione
del menu' corrispondente "Modifica > Trova", che funziona anche se la
finestra non e' attiva (per fortuna!).
Comunque mi interesserebbe scoprire ugualmente se c'e' un modo per spedire
tasti alle applicazione non attive,
e' un bel mistero per me!
Hyperion <no...@libero.it> wrote in message
R1zU4.40916$F46.4...@news.infostrada.it...
> > ......