Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    [VB.NET] Problema evento KeyDown

    Ciao a tutti, ho un problema che non riesco a risolvere e volevo chiedervi gentilmente se mi potevate aiutare.

    Stavo creando un'applicazione non chiudibile dove per chiuderla bisognava inserire una password.
    Ho risolto tutte le problematiche riguardanti l'applicazione tranne una.
    non volevo permettere il "cambio" di "pagina" con alt+tab.
    allora avevo pensato di disabilitare l'alt all'interno dell'evento keydown della form.


    codice:
    Private Sub Form1_KeyDown(sender As Object, e As System.Windows.Forms.KeyEventArgs)
    Handles Me.KeyDown
    
            If e.Alt = True Then
    
                e.SuppressKeyPress = True
    
            End If
    
    End Sub
    Ma allora perchè non mi funziona?
    Leggendo nella documentazione della microsoft il codice scritto sopra dovrebbe funzionare, ma forse ho letto male io

  2. #2

    Moderazione

    Il linguaggio di riferimento va indicato nel titolo sotto forma di "tag", e il codice va incluso nei tag [code] ... [/code], altrimenti perde l'indentazione; qui ho corretto io, in futuro ricordatene.
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Comunque, l'Alt+Tab viene intercettato dal window manager prima ancora che raggiunga la tua applicazione, per cui non puoi bloccarlo in quella maniera. Forse si può fare con una low level keyboard hook (che non credo però si possa fare in VB.NET).
    Amaro C++, il gusto pieno dell'undefined behavior.

  4. #4
    scusami me ne ero dimenticato, sono parecchio preso dal problema xD

    comunque non credo sai... secondo me la cosa si può gestire, in molti forum ne parlavano.
    Del ctrl-alt-canc il tuo discorso vale ma secondo me per l'alt-tab qualcosa si può fare.

  5. #5
    Non ho detto che non si può fare in generale, ma che non puoi farlo in quella maniera perché l'Alt-Tab di base nemmeno raggiunge la tua applicazione - lo intercetta a monte il window manager, che è il componente di Windows che tra le altre cose fornisce gli eventi di tastiera alla tua applicazione. Devi usare una hook (leggi ad esempio qui).
    Amaro C++, il gusto pieno dell'undefined behavior.

  6. #6
    hai ragione sono andato a controllare... adesso vedo un pò e poi se risolvo ti dico, grazie per il link

  7. #7
    Pardon, il link che ho postato è un po' troppo generico (è sulle hook in generale, e approfondisce solo un tipo di hook che non ti interessa); può esserti più utile questo progetto.
    Amaro C++, il gusto pieno dell'undefined behavior.

  8. #8
    si in effetti ne parlava un pò in generale come hai detto tu quell'articolo, questo mi sembra più specifico, adesso lo leggo...
    comunque se non ho capito male questo sistema riesce anche a leggere ciò che viene premuto anche al di fuori dalla form... dimmi se mi sbaglio

  9. #9
    È così, vengono intercettati i tasti prima che vengano processati dal window manager. In ogni caso, tieni presente che bloccare l'alt-tab è una pessima idea dal punto di vista dell'usabilità (e in ogni caso ci sono altri modi per cambiare finestra).
    Amaro C++, il gusto pieno dell'undefined behavior.

  10. #10
    allora credo che sia l'unico che mi è rimasto.
    io ho bloccato il taskmgr , ho cancellato il processo explorer.exe così da rendere inusabile il tasto start di windows e anche la combinazione CTRL-ESC e infine ho reso l'applicazione inchiudibile impostando all'interno dell'evento Closing della form e.cancel=true così da bloccarne la chisura (quindi alt-f4 inutilizzabile)... non credo che me ne rimangano altri apparte ALT-TAB...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.