EltoSoft Skrevet 12. desember 2003 Del Skrevet 12. desember 2003 Hei jeg lager ett programm til min bror. Han er 6 år. og liker og ødelegge pcen min. Så jeg tenkte jeg kunne lage ett program slik han kan åpne spill men ikke ødellege. Hvis noen har en kode for å låse start menyen og låser ctrl alt del. Eller en kode som åpner start mey mappen slik att han kan åpne spill uten å kunne ødelegge noe. Så hadde det vært veldig greit. Lenke til kommentar
aadnk Skrevet 12. desember 2003 Del Skrevet 12. desember 2003 (endret) Jada, det er fult mulig å låse start-menyen, eller rettere sakt, fjerne den helt! Den kan imidlertid fås tibake igjen (I XP kan man trykke på "Egenskaper" der start-knappen skulle ha stått, så skifte på en egenskap, trykke på OK og få knappen tilbake igjen) Du kunne f.eks få dette programmet her til å starte opp på bror din sin bruker: Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hwnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Private Declare Function ShowWindow Lib "user32" (ByVal hWnd As Long, ByVal nCmdShow As Long) As Long Private Const SW_HIDE = 0 Private Const SW_NORMAL = 1 Dim tWnd As Long, bWnd As Long Private Sub Form_Load() tWnd = FindWindow("Shell_TrayWnd", vbNullString) bWnd = FindWindowEx(tWnd, ByVal 0&, "BUTTON", vbNullString) ShowWindow bWnd, SW_HIDE End End Sub Du ser at den avslutter seg igjen når den er ferdig, men dette er ikke nødvendig. Hvis du vil så kan du lage en timer og la den fjerne start-knappen hver 10 sekund. Når det gjelder å fjerne Ctrl-Alt-Delete kan det bli et problem. Den eneste måten å gjøre dette i NT, 2000 og XP er å endre på system registeret. Har du Windows 98, 95 eller ME kan du bruke denne koden: 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 Private Function DisableCtrlAltDelete(bDisabled As Boolean) As Long DisableCtrlAltDelete = SystemParametersInfo(97, bDisabled, CStr(1), 0) End Function Private Sub Form_Load() DisableCtrlAltDelete True End Sub Jeg har sett artikler på internet som forteller at man i Windows XP ganske enkelt kan slette taksmgr.exe for å hindre Ctrl-Alt-Delete, men jeg er ikke sikker på om dette virker. Søk litt på google så finner du sikkert en artikel om hvordan stoppe Ctrl-alt-delete i registeret. Endret 12. desember 2003 av aadnk Lenke til kommentar
asware Skrevet 12. desember 2003 Del Skrevet 12. desember 2003 bare synd at du kan trykke på windowstasten når du fjerner startmeny-knappen... Trist... Jeg fant en gang en kode der man ikke engang kunne trykke på windowstasten... Skal prøve å grave den fram elto... Hvis jeg finner den... Lenke til kommentar
aadnk Skrevet 12. desember 2003 Del Skrevet 12. desember 2003 Ok, jeg kom ikke på det. Beklager. Her er iallefall koden for å fjerne muligheten for å trykke på Windows-tastene, Alt-Tab, Alt-Esc, Ctrl-Esc: Legg dette i en .BAS modul Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long) Public Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer Public 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 Public Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, ByVal nCode As Long, ByVal wParam As Long, lParam As Any) As Long Public Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long 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_LWINKEY = &H5B ' The Window's key on the left of the keyboard Public Const VK_RWINKEY = &H5C ' The Window's key on the right of the keyboard Public Const WH_KEYBOARD_LL = 13 Public Const LLKHF_ALTDOWN = &H20 Public Type KBDLLHOOKSTRUCT vkCode As Long scanCode As Long flags As Long time As Long dwExtraInfo As Long End Type 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_LWINKEY) Or (p.vkCode = VK_RWINKEY)) End If End If If fEatKeystroke Then LowLevelKeyboardProc = -1 Else LowLevelKeyboardProc = CallNextHookEx(0, nCode, wParam, ByVal lParam) End If End Function Dette legges så 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) If hhkLowLevelKybd <> 0 Then UnhookWindowsHookEx hhkLowLevelKybd End Sub Dette programmet må likevel være PÅ for at det hele skal virke. 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å