Avatar billede --==ron==-- Nybegynder
25. november 2001 - 22:03 Der er 6 kommentarer og
2 løsninger

Disable sys knapper

Nu prøver jeg igen med flere points...
Jeg vil gerne disable alt hvad der hedder system knapper, så som alt, ctrl, tab, esc og andre knapper der kan quitte mit program!

plz help!
Avatar billede johs_j Novice
25. november 2001 - 23:16 #1
Prøv at se i hjælp under:
Keycode Constants
Avatar billede engberg2 Nybegynder
26. november 2001 - 19:57 #2
Private Sub Form1_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode <> 18 Then
    Q = MsgBox(\"Den tast har du ik\' brug for her!\", vbOKOnly, \"Ups!\")
End If
End Sub

Denne her lader brugeren taste enter og ikke andet...
Avatar billede --==ron==-- Nybegynder
26. november 2001 - 20:07 #3
hmmmm, det virker ikke... kan du ikke prøve at give mig den fulde kode til at disable alle system knapper ?
Avatar billede engberg2 Nybegynder
26. november 2001 - 20:18 #4
jeg lavede en form der maximerer sig selv til at fylde hele skærmen - uden knapper og så en knap midt på der har den her kode:

Private Sub Command1_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode <> 18 Then
    Q = MsgBox(\"Den tast har du ik\' brug for her!\", vbOKOnly, \"Ups!\")
End If
End Sub
Avatar billede --==ron==-- Nybegynder
26. november 2001 - 20:52 #5
det virker næsten 100%, men man kan stadigvæk trykke alt+tab og wintasten
Avatar billede --==ron==-- Nybegynder
26. november 2001 - 21:06 #6
hvis ikke du ved det.. kan du så fortælle mig hvordan man disabler hele tastaturet?
Avatar billede engberg2 Nybegynder
26. november 2001 - 22:02 #7
Desværre nej.
Avatar billede --==ron==-- Nybegynder
26. november 2001 - 23:43 #8
Jeg har selv fundet løsningen nu!
Option Explicit
Private Declare Function SystemParametersInfo Lib \"user32\" Alias \"SystemParametersInfoA\" (ByVal uAction As Long, ByVal uParam As Long, ByRef lpvParam As Any, ByVal fuWinIni As Long) As Long
Private Const SPI_SETSCREENSAVEACTIVE = 17

Private Const SPI_LANGDRIVER = 12
Private Const SPI_SCREENSAVERRUNNING = 97



Private Sub DisCAL(bState As Boolean)
Dim RC, LngWas As Long
RC = SystemParametersInfo(SPI_SCREENSAVERRUNNING, bState, LngWas, 0)
End Sub

Private Sub Command1_Click()
DisCAL False
End Sub

Private Sub Command2_Click()
DisCAL True
End Sub
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode <> 18 And KeyCode <> 9 Then
    Q = MsgBox(\"Den tast har du ik\' brug for her!\", vbOKOnly, \"Ups!\")
End If
End Sub

Men jeg blev nød til at bruge lidt kode fra engberg2 så han får 30points
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester