Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Simulare pressione tasto win (quello con la bandierina di windows)

453 views
Skip to first unread message

Nao

unread,
Jun 29, 2010, 6:14:26 AM6/29/10
to
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!

Carlo Costarella

unread,
Jun 29, 2010, 12:56:52 PM6/29/10
to

"Nao" <utente_virgi...@virgilio.it> ha scritto nel messaggio
news:30786666.12778093390...@db-newsgroup.vg.virgilio.net...

> 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
>

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


Vladimiro Leone

unread,
Jun 29, 2010, 3:52:40 PM6/29/10
to
On 29 Giu, 18:56, "Carlo Costarella" <carlocoslib...@libero.it> wrote:
> "Nao" <utente_virgilio_newsgr...@virgilio.it> ha scritto nel messaggionews:30786666.12778093390...@db-newsgroup.vg.virgilio.net...

>
> > 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
>
> 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,
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.

Vladimiro Leone

unread,
Jun 29, 2010, 4:02:33 PM6/29/10
to
> Vladimiro.- Nascondi testo citato
>
> - Mostra testo citato -

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

Carlo Costarella

unread,
Jun 30, 2010, 1:47:45 AM6/30/10
to

"Vladimiro Leone" <vlad...@alice.it> 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


Nao

unread,
Jun 30, 2010, 4:15:13 AM6/30/10
to
Carlo Costarella ha scritto:

>
>
> "Vladimiro Leone" <vlad...@alice.it> ha scritto nel
> messaggio
> news:74bca59e-25d4-4929-8d16-f8ad6e2ce23c@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

Vladimiro Leone

unread,
Jun 30, 2010, 6:57:09 AM6/30/10
to
On 30 Giu, 07:47, "Carlo Costarella" <carlocoslib...@libero.it> wrote:
> "Vladimiro Leone" <vladil...@alice.it> ha scritto nel messaggionews:74bca59e-25d4-4929...@w31g2000yqb.googlegroups.com...

> cut
>
> Infatti le due routine andavano messe una sotto l'altra :-)
> Vladimiro.
>
> Ora funziona?
>
> Ciao, Carlo

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

Carlo Costarella

unread,
Jun 30, 2010, 7:28:04 AM6/30/10
to

"Nao" <naonad...@libero.it> 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


Nao

unread,
Jul 1, 2010, 3:45:32 AM7/1/10
to
Vladimiro Leone ha scritto:

>
> On 30 Giu, 07:47, "Carlo Costarella"
> <carlocoslib...@libero.it> wrote:
> > "Vladimiro Leone" <vladil...@alice.it> ha scritto
> nel
> messaggionews:74bca59e-25d4-4929-8d16-f8ad6e2ce23c@w31

> g2000yqb.googlegroups.com...
> > cut
> >
> > Infatti le due routine andavano messe una sotto
> l'altra :-)
> > Vladimiro.
> >
> > Ora funziona?
> >
> > Ciao, Carlo
>
> Alla grande.
> (Ho Windows Vista e Office 2007)
> Ciao Vladimiro.

Grazie ragazzi, funziona perfettamente, siete troppo forti.

ciao nao

0 new messages