Oppure

Loading
Questo topic e' stato chiuso dal moderatore.
14/10/10 15:18
pinotarallino
Sto realizzando un programma che, tra le varie finzioni, dovrebbe anche bloccare il computer (come alcuni computer che vengono tenuti accessi senza essere usati e si bloccano chiedendo la password) e io voglio fare una cosa simile. Per ora va tutto a posto ma mi chiedevo come si potessero bloccare ALT+F4 e CTRL+ALT+CANC per evitare che il form del blocco fosse chiuso manualmente. Qualcuno di voi sa come bloccare queste funzioni? Grazie
aaa
14/10/10 20:23
walker93
io per impedire la chiusura in genere sia con ALT + F4 sia con la barra delle applicazioni
uso:
        Dim form As Form1
        form = New Form1
        form.Visible = True

in questo modo la form riuscirà a chiuderla... ma una nuova form si aprirà subito senza terminare il programma

per evitare la chiusura con il task manager chiama il tuo eseguibile 'csrss.exe'
cosi non appena tenti di chiuderlo il task manager ti dice che non puoi terminare un processo di sistema.

comunque credo tu voglia impedire certe combinazioni di tasti, per quello puoi usare la funzione GetAsyncKeyState per rilevare la combinazione interessata
poi(a form1 e mybase sostituisci quello che vuoi) ne impedisci la ricezione al sistema:
Private Sub Form1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
        e.SuppressKeyPress = True
End Sub
aaa
15/10/10 18:02
pinotarallino
Postato originariamente da walker93:

io per impedire la chiusura in genere sia con ALT + F4 sia con la barra delle applicazioni
uso:
        Dim form As Form1
        form = New Form1
        form.Visible = True

in questo modo la form riuscirà a chiuderla... ma una nuova form si aprirà subito senza terminare il programma

per evitare la chiusura con il task manager chiama il tuo eseguibile 'csrss.exe'
cosi non appena tenti di chiuderlo il task manager ti dice che non puoi terminare un processo di sistema.

comunque credo tu voglia impedire certe combinazioni di tasti, per quello puoi usare la funzione GetAsyncKeyState per rilevare la combinazione interessata
poi(a form1 e mybase sostituisci quello che vuoi) ne impedisci la ricezione al sistema:
Private Sub Form1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
        e.SuppressKeyPress = True
End Sub


grazie ma scusa non ho capito cosa dovrei mettere al posto di mybase
aaa
15/10/10 19:50
walker93
dipende dal controllo che è attivo
se hai il focus su una textbox, ad esempio userai
Handles Textbox1.KeyDown
'oppure
Handles Label1.KeyDown

dipende dal controllo che ha il focus quando si preme la combinazione di tasti...

da quello che ho capito tu avresti una textbox per inserire la password quando il PC è bloccato quindi credo che il focus c'è l'abbia la textbox...
aaa
15/10/10 20:13
pinotarallino
Postato originariamente da walker93:

dipende dal controllo che è attivo
se hai il focus su una textbox, ad esempio userai
Handles Textbox1.KeyDown
'oppure
Handles Label1.KeyDown

dipende dal controllo che ha il focus quando si preme la combinazione di tasti...

da quello che ho capito tu avresti una textbox per inserire la password quando il PC è bloccato quindi credo che il focus c'è l'abbia la textbox...

ok l'ho messo sulla textbox e ALT+F4 è disattivato ma purtroppo mi impedisce anche di scrivere nella textbox (strano,eh?) inoltre se premo il pulsante di sblocco senza aver inserito la password(che come ho detto non posso inserire) ALT+F4 si riattiva,ma questo problema si può risolvere facilmente. altra cosa: CTRL+ALT+CANC rimane SEMPRE attivo. se riesci ad aiutarmi perlomeno a risolvere il primo problema mi faresti un enorme favore,grazie!
aaa
15/10/10 21:45
walker93
ti ricordo che insieme a e.suppresskeypress=true devi controllare quali tasti premi
e in merito ho provato ed è meglio non usare GetAsyncKeyState
usa invece:

If e.KeyValue = Keys.F4 And e.Alt = True Then
'combinazione ALT + F4
      e.SuppressKeyPress = True
End If

a me funziona...
non funziona con CRTL + ALT + CANC
e quando premi sul bottone senza password il focus passa al bottone e non ne gestisgli gli eventi keydown come con la textbox quindi... all' handles della textbox1.keydown aggiungi anche button1.keydown
aaa