Intercettare tasto all'avvio dell'applicazione

venerdì 11 giugno 2004 - 15.24

vpanta Profilo | Senior Member

Ciao,
Esiste un modo per intercettare il tasto della tastiera, quando l'applicazione viene avviata ? Tipo : se il Tasto Shift è premuto.
Grazie e ciao a tutti

trinity Profilo | Guru

Ciao,
devi prima di tutto impostare Keypreview a True sul form e poi eseguire il codice sottostante:

Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
If e.Shift = True Then
msgbox("OK")
End If
End Sub

Ciao
Fabio

vpanta Profilo | Senior Member

Ciao,
grazie x la risposta, ma quello che mi serve è intercettare il tasto all'avvio dell'applicazione, nella routine Main, invece che nel form.
Grazie

alextyx Profilo | Expert

Quindi tu hai un'applicazione che parte da un modulo, anzichè da un componente visuale? Ma è un'applicazione tipo console, oppure poi un Form viene lanciato? se è così, quali operazioni compie il programma prima di lanciare una Form? Te lo chiedo per vedere se, capendo le tue necessità, salta fuori una qualche soluzione. Ai bei tempi c'era: If Inkey$ ....ecc.. Chissà se funzione ancora!?

vpanta Profilo | Senior Member

Ciao,
grazie x la tua risposta,
Avvio le mie applicazione sempre da una Routine Main di un Modulo e poi lancio il Form necessario, questo perchè ho modo prima di verificare che alcuni parametri del file di configurazione siano corretti.
Quello che voglio fare è questo :
Se tengo premuto Shift(ad esempio) invece di avviare il Form principale dell'applicazione, avvio in Form di Impostazione parametri dell'applicazione, dove potro agire solo io in fase di prima installazione.
Spero in una risposta, Ciao.

alextyx Profilo | Expert

Sto leggendo un libercolo che tratta anche di applicazione Console e spero di poter trovare la risposta che ti serve. Darò un'occhiata domattina, quando nella solitudine beata del bagno, uso arricchire la mia conoscenza tecnica, mentre, tanto per fare posto, svuoto altri siti corporei! :-)
Cmq, il tuo approccio ha anche l'indubbio vantaggio di rendere accessibile la tua Form di apertura da qualunque altra form, cosa che nn si verificherebbe se fosse la form di avvio. Spero di trovare qualcosa di utile. Ciao x adesso.

alextyx Profilo | Expert

Caro Vpanta,anche se la sacralità dell'impegno catabolico mattutino, a differenza di come annunciato, è stata dedicata allo studio dei Delegate, ho impiegato un po' del tempo serale per lavorare sul tuo quesito.
Ho visto che INKEY$ sembra nn esistere più, ahimè (era così utile), tuttavia nel namespace Console esistono metodi x il recupero di digitazioni da tastiera. Però ti aprono una finestra in ambiente console, che fa tanto vecchio DOS e a questo punto tanto vale aprire una finestra di tipo diverso. Può darsi che tu possa chiamare delle funzioni che, di nascosto, ti sbirciano la tastiera, tuttavia, nel poco tempo che ho avuto, nn le ho trovate. Forse qualche API? Però, ragionandoci un po' mi è venuto da chiedermi perchè non puoi far comunque partire una Form di pre-apertura del programma. Una Form che può servire a controllare con del codice nell'evento Load, se i settaggi sono giusti e che con una determinata sequenza di tasti e una password, dia accesso ai settaggi che devono essere a disposizione solo del programmatore. Anche se mi rimane la curiosità tecnica di come intercettare la tastiera (forse anche lanciando una shell 'invisibile', ma dovrei studiarci, nn l'ho mai fatto) senza appoggiarsi ad un oggetto visuale, è probabile che il tuo problema sia almeno 'aggirabile'.... oppure mi sbaglio?

vpanta Profilo | Senior Member

Ciao,
Grazie dell'aiuto proverò a cercare ? Altre soluzioni ci sarebbero, ma quello che avevo persato forse è più carino e con codice più ridotto.
Se trovi qualcosa fammi sapere.
Ciao

alextyx Profilo | Expert

Oh...se trovi come intercettare la tastiera in maniera invisibile, mi raccomando, faccelo sapere. Farò altrettanto. Ho delle vaghe idee, come ti accennavo, ma da qui a tradurle in codice, la strada è lunga! :-)

Ciao.
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5