Jonas Skrevet 10. januar 2004 Del Skrevet 10. januar 2004 Hallo Jeg har et program som virker som en screensaver og man må taste passord for å komme ut. Men problemet er at man kan jo bare trykke ctrl-alt-del og avslutte programmet eller trykke win-tast så kommer man gjennom! Hvordan kan jeg disable disse tastene? må også disable alt-f4 Lenke til kommentar
sim Skrevet 10. januar 2004 Del Skrevet 10. januar 2004 Ta et søk på google etter VB Disable Ctrl Alt Delete, eller lignende. Koden får windows til å tro at screensaveren kjøre, og dermed fungerer ikke ctrl alt delete og lignende, tror jeg. Lenke til kommentar
Jonas Skrevet 10. januar 2004 Forfatter Del Skrevet 10. januar 2004 Ta et søk på google etter VB Disable Ctrl Alt Delete, eller lignende. Koden får windows til å tro at screensaveren kjøre, og dermed fungerer ikke ctrl alt delete og lignende, tror jeg. Hvis en screensaver kjører så funker ingen kombinasjoner uansett.. Fordi hvis man trykker på den første tasten i kombinasjonen så går den jo nut av screensavern Jeg har søkt rundt og prøvd masse forskjellige koder, men ingen av de funker! Det er en jeg har funner som funker, som disabler alt-tab og litt andre ting, men det er control - alt - delete jeg sliter med! Lenke til kommentar
abcd423417984 Skrevet 10. januar 2004 Del Skrevet 10. januar 2004 jeg vil anbefale deg å sjekke ut arkivet til www.planetsourcecode.com. Det er antagligvis internetts største arkiv med kodesnutter til vb. jeg lærte MYE der i sin tid. Lenke til kommentar
Jonas Skrevet 10. januar 2004 Forfatter Del Skrevet 10. januar 2004 jeg vil anbefale deg å sjekke ut arkivet til www.planetsourcecode.com. Det er antagligvis internetts største arkiv med kodesnutter til vb. jeg lærte MYE der i sin tid. Det er der jeg leter, men jeg får ingen av de til å virke.. enten skjer det ikke noe eller mangler jeg en dll e.l. Lenke til kommentar
aadnk Skrevet 10. januar 2004 Del Skrevet 10. januar 2004 Synn og skam, men i nye Windows versjoner (som XP) kunne man ikke bruke den klassiske teknikken for å disable Ctrl-alt-delete: Private Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, ByVal lpvParam As Any, ByVal fuWinIni As Long) As Long Function DisableCtrlAltDelete(bDisabled As Boolean) As Long DisableCtrlAltDelete = SystemParametersInfo(97, bDisabled, CStr(1), 0) End Function DisableCtrlAltDelete True disabla Ctrl-alt-delete, men i XP/2000/NT må man være litt smartere (lurt å bruke begge metodene, og bruke GetVersionEx for å finne ut om den første metoden ikke virker). Man kan ikke trappe Ctrl-Alt-Delete i en hook før operativsystemet oppfatter denne tastekombinasjonen, men man kan disable taskmanager: Dim Reg As Object Set Reg = CreateObject("wscript.shell") Reg.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System\DisableTaskMgr", CLng(1) Skal man enable den igjen må man skifte ut CLng(1) med CLng(0), og dette bør man gjøre, ettersom task manager vil fremdeles være disable selv etter en restart. Men selv om taskmanager er disable vil en slem liten meldingsboks komme fram og kanskje stjele fokus fra skjermbeskytteren. Dette er likevel ikke noe problem hvis skjermbeskytteren er TOPMOST. Kode for TOPMOSt vindu: Private Declare Sub SetWindowPos Lib "User32" (ByVal hWnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) Const HWND_TOPMOST = -1 Const HWND_NOTOPMOST = -2 Const SWP_NOSIZE = &H1 Const SWP_NOMOVE = &H2 Const SWP_NOACTIVATE = &H10 Const SWP_SHOWWINDOW = &H40 Private Sub Form_Activate() SetWindowPos Me.hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOACTIVATE Or SWP_SHOWWINDOW Or SWP_NOMOVE Or SWP_NOSIZE End Sub De andre tastekombinasjonene kan disables med følgende kode: Legg dette i en modul: Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, ByVal nCode As Long, ByVal wParam As Long, lParam As Any) As Long Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long) Type KBDLLHOOKSTRUCT vkCode As Long scanCode As Long flags As Long time As Long dwExtraInfo As Long End Type Public Const HC_ACTION = 0 Public Const WM_KEYDOWN = &H100 Public Const WM_KEYUP = &H101 Public Const WM_SYSKEYDOWN = &H104 Public Const WM_SYSKEYUP = &H105 Public Const VK_TAB = &H9 Public Const VK_CONTROL = &H11 Public Const VK_ESCAPE = &H1B Public Const VK_LWIN As Long = &H5B Public Const VK_RWIN As Long = &H5C Public Const VK_F4 As Long = &H73 Public Const WH_KEYBOARD_LL = 13 Public Const LLKHF_ALTDOWN = &H20 Dim p As KBDLLHOOKSTRUCT Public Function LowLevelKeyboardProc(ByVal nCode As Long, ByVal wParam As Long, ByVal lParam As Long) As Long Dim fEatKeystroke As Boolean If (nCode = HC_ACTION) Then If wParam = WM_KEYDOWN Or wParam = WM_SYSKEYDOWN Or wParam = WM_KEYUP Or wParam = WM_SYSKEYUP Then CopyMemory p, ByVal lParam, Len(p) fEatKeystroke = _ ((p.vkCode = VK_TAB) And ((p.flags And LLKHF_ALTDOWN) <> 0)) Or _ ((p.vkCode = VK_ESCAPE) And ((p.flags And LLKHF_ALTDOWN) <> 0)) Or _ ((p.vkCode = VK_ESCAPE) And ((GetKeyState(VK_CONTROL) And &H8000) <> 0)) Or _ ((p.vkCode = VK_F4) And ((p.flags And LLKHF_ALTDOWN) <> 0)) Or _ (p.vkCode = VK_LWIN) Or _ (p.vkCode = VK_RWIN) End If End If If fEatKeystroke Then LowLevelKeyboardProc = -1 Else LowLevelKeyboardProc = CallNextHookEx(0, nCode, wParam, ByVal lParam) End If End Function Legg dette i en form: Dim hhkLowLevelKybd As Long Private Sub Form_Load() hhkLowLevelKybd = SetWindowsHookEx(WH_KEYBOARD_LL, AddressOf LowLevelKeyboardProc, App.hInstance, 0) End Sub Private Sub Form_Unload(Cancel As Integer) UnhookWindowsHookEx hhkLowLevelKybd End Sub Så kan man spørre seg hvorfor Microsoft fjerna støtten for den første koden. Svaret er at i disse operativsystemene kan man stille skjermbeskytterene til å falle tilbake til påloggingsmenyen som er vel så sikker. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå