Hey,
Ich will eine Art Internet Café Programm bauen.
Dazu will ich eine Bildschirmgroße GUI machen, die sich nicht verschieben lässt. Die Taskleiste unten muss ach überdeckt werden. Externe Programme sollen nicht angezeigt werden, es sei den sie werden von dem Programm selbst gestartet werden(Spiele bzw Firefox oder so)..
Wie Krieg ich das am besten hin?
MfG
Bildschirm mit GUI sperren
-
- [ offen ]
-
Nakroma -
16. April 2012 um 19:32 -
Geschlossen -
Erledigt
-
-
Naja, eine GUI auf Vollbild machen, mit dem Style $WS_POPUP belegen und explorer.exe killen!
Das wäre dann aber ganz spartanisch.lg chess
-
Dann ist das Start Ding aber immer noch da. Außerdem geht explorer killen schlecht, in meinem Fall
-
Such dir die Fenster-Klassen der Taskleiste per AutoitWindowInfo raus, setz sie auf $GUI_HIDE, dann mach per $WS_POPUP mit @DesktopWidth und @DesktopHeight ein "Vollbild"-Fenster.
Anschließend in eine Endlosschleife packen: wenn WingetTitle("[active]") <> "Titel deines Programms", dann WinSetOnTop("Titel deines Programms", 1) und WinActivate("Titel deines Programms"). Ebenso: wenn ProcessExists("taskmgr.exe"), dann ProcessKill("taskmgr.exe") und halt noch deine ganzen Sondernbedingungen. -
Funktioniert leider weder mit GuiSetState noch mit GuiCtrlsetState
-
"Fremd"-Controls/GUIs kannst du damit auch nicht beeinflussen^^
Dazu musst du WinSetState() oder die passenden Control-Funktionen verwenden (ControlHide, ControlShow, ControlDisable etc...)lg chess
-
Es gab mal ein richtig guten Autoitscript das genau das gemacht hat. Alles blockiert einschließlich Strg+Alt+Entf und mit Passworteingabefeld. Finde es aber einfach nichtmehr.
-
Was dir auch nützen könnte:
Windowstaste sperren
[autoit]#include <WindowsConstants.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <WinAPI.au3>
wintastesperren()#region wintaste
[/autoit] [autoit][/autoit] [autoit]
Func wintastesperren()Global $hHookKeyboard, $pStub_KeyProc
[/autoit] [autoit][/autoit] [autoit]
Global Const $VK_WIN_LEFT = 0x5B
Global Const $VK_WIN_RIGHT = 0x5C
Global Const $Key_NONE = 0x0HotKeySet("!e", "OnAutoITExit") ; Exit Alt+e
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]$pStub_KeyProc = DllCallbackRegister("_KeyProc", "int", "int;ptr;ptr")
[/autoit] [autoit][/autoit] [autoit]
$hHookKeyboard = _WinAPI_SetWindowsHookEx($WH_KEYBOARD_LL, DllCallbackGetPtr($pStub_KeyProc), _WinAPI_GetModuleHandle(0), 0)MsgBox(64, "", "Die Windowstaste wurde erfolgreich gesperrt. Per [Alt] und [E] wird sie wieder freigegeben.")
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]While 1
[/autoit] [autoit][/autoit] [autoit]
Sleep(10)
WEndEndFunc ;Wintastensperre
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Func OnAutoITExit()
[/autoit] [autoit][/autoit] [autoit]
DllCallbackFree($pStub_KeyProc)
_WinAPI_UnhookWindowsHookEx($hHookKeyboard)
MsgBox(64, "", "Die Windowstaste wurde erfolgreich freigegeben.")
Exit
EndFunc ; OnAutoITExitFunc _KeyProc($nCode, $wParam, $lParam)
[/autoit]
If $nCode < 0 Then Return _WinAPI_CallNextHookEx($hHookKeyboard, $nCode, $wParam, $lParam)
Local $tKEYHOOKS = DllStructCreate($tagKBDLLHOOKSTRUCT, $lParam)
Local $vkCode = DllStructGetData($tKEYHOOKS, "vkCode")
If ($wParam = $WM_KEYDOWN) And ($vkCode = $VK_WIN_LEFT Or $vkCode = $VK_WIN_RIGHT) Then
DllCall('user32.dll', 'int', 'keybd_event', 'int', $Key_NONE, 'int', 0, 'int', 0, 'ptr', 0)
Return -1
EndIf
Return _WinAPI_CallNextHookEx($hHookKeyboard, $nCode, $wParam, $lParam)
EndFunc ; _KeyProc
#endregion wintaste
(Stammt nicht von mir)Einträge im Securite Screen entfernen (benötigt Adminrechte)
[autoit]; Einträge im Securite Screen werden entfernt
[/autoit] [autoit][/autoit] [autoit]
RegWrite('HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System','HideFastUserSwitching', 'REG_DWORD', '1')
RegWrite('HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System','DisableLockWorkstation', 'REG_DWORD', '1')
RegWrite('HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer','NoLogoff', 'REG_DWORD', '1')
RegWrite('HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System','DisableChangePassword', 'REG_DWORD', '1')
RegWrite('HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System','DisableTaskMgr', 'REG_DWORD', '1'); Einträge im Securite Screen werden hinzugfügt
[/autoit]
RegWrite('HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System','HideFastUserSwitching', 'REG_DWORD', '0')
RegWrite('HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System','DisableLockWorkstation', 'REG_DWORD', '0')
RegWrite('HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer','NoLogoff', 'REG_DWORD', '0')
RegWrite('HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System','DisableChangePassword', 'REG_DWORD', '0')
RegWrite('HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System','DisableTaskMgr', 'REG_DWORD', '0')Taskleiste ausblenden
[autoit]; ausblenden
[/autoit] [autoit][/autoit] [autoit]
WinSetState("[Class:Shell_TrayWnd]","",@SW_HIDE)
WinSetState("Start","",@SW_HIDE); einblenden
[/autoit]
WinSetState("[Class:Shell_TrayWnd]","",@SW_SHOW)
WinSetState("Start","",@SW_SHOW)