Newsgroup: it.comp.appl.access
Titolo: Simulare pressione tasto win (quello con la bandierina di windows)

Ciao a tutti,
sto diventando matto con questa cosa, premetto che sono un 
neofita autodidatta.
Vorrei mettere in una form del mio database un pulsante che una 
volt premuto con il mouse faccia aprire il menu di windows, per 
capirci deve aprire il il menu che si apre schiacciando il tasto 
bandierina (il menu che si apre è quello con programmi, dati 
recenti, impostazioni, chiudi discnoetti etc)
per favore mi potete dare propio il codice da copiare 
nell'evento click del bottone.
grazie 1000
nao
-- 
Postato da Virgilio Newsgroup: lo usi da web ma con le funzioni del newsreader 
http://newsgroup.virgilio.it
Gerarchie it, italia, it-alt, tin, it.binari. Unico!


Una strada:
in un modulo pubblico:
Public Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan 
As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Public Const KEYEVENTF_KEYUP = &H2
Sul click di un pulsante o dove preferisci:
keybd_event vbKeyControl, 0, 0, 0
keybd_event vbKeyEscape, 0, 0, 0
DoEvents
Per rilasciare i tasti
keybd_event vbKeyControl, 0, KEYEVENTF_KEYUP, 0
keybd_event vbKeyEscape, 0, KEYEVENTF_KEYUP, 0
DoEvents
In pratica si tratta di premere contemporaneamente ctrl+esc...non ricordo se 
si può anche fare con
sendkeys.
Ciao, Carlo 

 Ciao, Carlo
Ciao Carlo,
ho voluto provare il tuo suggerimento ma qualcosa non è andato per il
verso giusto; probabilmente ho interpretato male "Per rilasciare i
tasti" pensando che volessi indicare l'inserimento della seconda
routine "Su tasto su" del pulsante. Infatti è successo che, una volta
aperto e richiuso il controllo Start (credo si chiami così) e
naturalmente anche il db, sia il mouse che la tastiera sono rimasti
ancorati al tasto CTRL senza alcuna possibilità di ripristino.
Vladimiro.

 - Mostra testo citato -
Infatti le due routine andavano messe una sotto l'altra :-)
Vladimiro.

 ha scritto nel messaggio 
news:74bca59e-25d4-4929...@w31g2000yqb.googlegroups.com...
cut
Infatti le due routine andavano messe una sotto l'altra :-)
Vladimiro.
Ora funziona?
Ciao, Carlo 


Ciao ragazzi,
io sono un po tarato su queste cose, ho provato quinto scritto 
sopra ma non mi funziona.
ho fatto cosi:
ho creato un modulo di classe e gli ho incollato:
Public Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, 
ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As 
Long)
Public Const KEYEVENTF_KEYUP = &H2
sull'evento bottone ho:
Private Sub Comando0_Click()
On Error GoTo Err_Comando0_Click
keybd_event vbKeyControl, 0, 0, 0
keybd_event vbKeyEscape, 0, 0, 0
DoEvents
'Per rilasciare i tasti
keybd_event vbKeyControl, 0, KEYEVENTF_KEYUP, 0
keybd_event vbKeyEscape, 0, KEYEVENTF_KEYUP, 0
DoEvents
Exit_Comando0_Click:
    Exit Sub
Err_Comando0_Click:
    MsgBox Err.Description
    Resume Exit_Comando0_Click
 
End Sub
ma mi da errore sulla--
Public Const KEYEVENTF_KEYUP = &H2
non sono in grado di risolvere questo errore,per favore mi 
aiutate.
grazie


 Ciao, Carlo
Alla grande.
(Ho Windows Vista e Office 2007)
Ciao Vladimiro.

 ha scritto nel messaggio 
news:24408420.12778858082...@db-newsgroup.vg.virgilio.net...

Perchč un modulo di classe?
Basta un modulo generico ma pubblico.
In alternativa potresti usare le dichiarazioni in un modulo di una maschera 
ma vanno cambiati i Public in Private:
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
Ciao, Carlo 

 Ciao Vladimiro.
Grazie ragazzi, funziona perfettamente, siete troppo forti.
ciao nao
