LockScreen
LockScreen
Ich habe mir einen eigenen LockScreen Programmiert .
Habe mir gedacht vielleicht wills mal jemand testen:
Für Xp:
Passwort ist: "1417"
http://...Disabled..../LockScreen_Test.exe
Habe mir gedacht vielleicht wills mal jemand testen:
Für Xp:
Passwort ist: "1417"
http://...Disabled..../LockScreen_Test.exe
Zuletzt geändert von roherter am 04.11.2006 21:00, insgesamt 1-mal geändert.
Purebasic 5.0 32bit und 64 bit
I'm back from hell
I'm back from hell
Funzt auch unter XP, bzw. ich habe ja "Microsoft Windows Media center Edition 2005".
"Sicherheitssperre" wird aber zu sammen ge schrieben!
Code würd mich auch interessieren. Warum ist das programm übrigens 890 KB groß?
Geht das nicht auch kleiner?
"Sicherheitssperre" wird aber zu sammen ge schrieben!

Code würd mich auch interessieren. Warum ist das programm übrigens 890 KB groß?

PB 4.30
Code: Alles auswählen
Macro Happy
;-)
EndMacro
Happy End
Ganz nett
Der Code würde mich auch interessieren.
Leider kann man den mit Alt+F4 beenden und hat dann vollen Zugriff auf den Desktop und die Festplatte.
Die Taskleiste wird dann nicht angezeigt und den Taskmanager kann man nicht mehr starten.
Erst wenn man LockScreen wieder ausführt und das Passwort eingibt, wird alles wieder freigeschaltet.
Da könnte man noch was machen

Der Code würde mich auch interessieren.
Leider kann man den mit Alt+F4 beenden und hat dann vollen Zugriff auf den Desktop und die Festplatte.
Die Taskleiste wird dann nicht angezeigt und den Taskmanager kann man nicht mehr starten.
Erst wenn man LockScreen wieder ausführt und das Passwort eingibt, wird alles wieder freigeschaltet.
Da könnte man noch was machen

[PB4.20]
hübsch ... dazu gabs aber schon ein paar Codes 
http://www.purebasic.fr/german/viewtopic.php?t=9055
Sieht aber hübscher aus und du hast auch hier fast alle möglichen
umschweifungen bereits blockiert. Wenn man auf die das Stringgadget
drückt, sollte der Default-Text verschwinden
oder markiert werden,
damit er bei Eingabe gelöscht wird.
MFG PMV

http://www.purebasic.fr/german/viewtopic.php?t=9055
Sieht aber hübscher aus und du hast auch hier fast alle möglichen
umschweifungen bereits blockiert. Wenn man auf die das Stringgadget
drückt, sollte der Default-Text verschwinden

damit er bei Eingabe gelöscht wird.
MFG PMV
Zuletzt geändert von PMV am 03.11.2006 15:48, insgesamt 2-mal geändert.
Alt-F4 Ausgeschaltet download der gleiche wie vorher:
Und hier ist der Code:
Droopy´s Lib muss installiert sein.
Und hier ist der Code:
Droopy´s Lib muss installiert sein.
Code: Alles auswählen
;* Verwendete Libs: Droopy´s Lib*
OpenLibrary(1,"kernel32.dll")
CallFunction(1,"RegisterServiceProcess", GetCurrentProcessID_(), 1 )
CloseLibrary(1)
Structure KBDLLHOOKSTRUCT
vkCode.l
scanCode.l
flags.l
time.l
dwExtraInfo.l
EndStructure
Global hook
;-Keyboard Hook um Tastatur Ereignisse abzufangen
Procedure.l myKeyboardHook(nCode, wParam, *p.KBDLLHOOKSTRUCT)
If nCode = #HC_ACTION
If wParam = #WM_KEYDOWN Or wParam = #WM_SYSKEYDOWN Or wParam = #WM_KEYUP Or wParam = #WM_SYSKEYUP
#LLKHF_ALTDOWN = $20
If ((*p\vkCode = #VK_TAB) And (*p\flags & #LLKHF_ALTDOWN)) Or ((*p\vkCode = #VK_F4) And (*p\flags & #LLKHF_ALTDOWN)) Or ((*p\vkCode = #VK_ESCAPE) And (*p\flags & #LLKHF_ALTDOWN)) Or ((*p\vkCode & #VK_ESCAPE) And (GetKeyState_(#VK_CONTROL) & $8000)) ;Or
ProcedureReturn 1
ElseIf (*p\vkCode = #VK_LWIN) Or (*p\vkCode = #VK_RWIN)
ProcedureReturn 1
EndIf
EndIf
EndIf
;beep_(800,1)
ProcedureReturn CallNextHookEx_(hook, nCode, wParam, lParam)
EndProcedure
;-
;-Prozedure aus dem Codearchiv
Procedure SendKeys(Handle,window$,keys$)
If window$<>"" : Handle=FindWindow_(0,window$) : EndIf ; Use window$ instead of handle.
If IsWindow_(Handle)=0 ; Does the target window actually exist?
ProcedureReturn 0 ; Nope, so report 0 for failure to type.
Else
; This block gives the target window the focus before typing.
thread1=GetWindowThreadProcessID_(GetForegroundWindow_(),0)
thread2=GetWindowThreadProcessID_(Handle,0)
If thread1<>thread2 : AttachThreadInput_(thread1,thread2,#True) : EndIf
SetForegroundWindow_(Handle) ; Target window now has the focus for typing.
Delay(125) ; 1/8 second pause before typing, to prevent fast CPU problems.
; Now the actual typing starts.
For r=1 To Len(keys$)
vk$=Mid(keys$,r,1)
If vk$="{" ; Special key found.
s=FindString(keys$,"}",r+1)-(r+1) ; Get length of special key.
s$=Mid(keys$,r+1,s) ; Get special key name.
Select s$ ; Get virtual key code of special key.
Case "ALTDOWN" : keybd_event_(#VK_MENU,0,0,0) ; Hold ALT down.
Case "ALTUP" : keybd_event_(#VK_MENU,0,#KEYEVENTF_KEYUP,0) ; Release ALT.
Case "BACKSPACE" : vk=#VK_BACK
Case "CONTROLDOWN" : keybd_event_(#VK_CONTROL,0,0,0) ; Hold CONTROL down.
Case "CONTROLUP" : keybd_event_(#VK_CONTROL,0,#KEYEVENTF_KEYUP,0) ; Release CONTROL.
Case "DELETE" : vk=#VK_DELETE
Case "DOWN" : vk=#VK_DOWN
Case "END" : vk=#VK_END
Case "ENTER" : vk=#VK_RETURN
Case "F1" : vk=#VK_F1
Case "F2" : vk=#VK_F2
Case "F3" : vk=#VK_F3
Case "F4" : vk=#VK_F4
Case "F5" : vk=#VK_F5
Case "F6" : vk=#VK_F6
Case "F7" : vk=#VK_F7
Case "F8" : vk=#VK_F8
Case "F9" : vk=#VK_F9
Case "F10" : vk=#VK_F10
Case "F11" : vk=#VK_F11
Case "F12" : vk=#VK_F12
Case "ESCAPE" : vk=#VK_ESCAPE
Case "HOME" : vk=#VK_HOME
Case "INSERT" : vk=#VK_INSERT
Case "LEFT" : vk=#VK_LEFT
Case "PAGEDOWN" : vk=#VK_NEXT
Case "PAGEUP" : vk=#VK_PRIOR
Case "PRINTSCREEN" : vk=#VK_SNAPSHOT
Case "RETURN" : vk=#VK_RETURN
Case "RIGHT" : vk=#VK_RIGHT
Case "SHIFTDOWN" : shifted=1 : keybd_event_(#VK_SHIFT,0,0,0) ; Hold SHIFT down.
Case "SHIFTUP" : shifted=0 : keybd_event_(#VK_SHIFT,0,#KEYEVENTF_KEYUP,0) ; Release SHIFT.
Case "TAB" : vk=#VK_TAB
Case "UP" : vk=#VK_UP
EndSelect
If Left(s$,3)<>"ALT" And Left(s$,7)<>"CONTROL" And Left(s$,5)<>"SHIFT"
keybd_event_(vk,0,0,0) : keybd_event_(vk,0,#KEYEVENTF_KEYUP,0) ; Press the special key.
EndIf
r=r+s+1 ; Continue getting the keystrokes that follow the special key.
Else
vk=VkKeyScanEx_(Asc(vk$),GetKeyboardLayout_(0)) ; Normal key found.
If vk>304 And shifted=0 : keybd_event_(#VK_SHIFT,0,0,0) : EndIf ; Due to shifted character.
keybd_event_(vk,0,0,0) : keybd_event_(vk,0,#KEYEVENTF_KEYUP,0) ; Press the normal key.
If vk>304 And shifted=0 : keybd_event_(#VK_SHIFT,0,#KEYEVENTF_KEYUP,0) : EndIf ; Due to shifted character.
EndIf
Next
If thread1<>thread2 : AttachThreadInput_(thread1,thread2,#False) : EndIf ; Finished typing to target window!
keybd_event_(#VK_MENU,0,#KEYEVENTF_KEYUP,0) ; Release ALT key if user forgot.
keybd_event_(#VK_CONTROL,0,#KEYEVENTF_KEYUP,0) ; Release CONTROL key if user forgot.
keybd_event_(#VK_SHIFT,0,#KEYEVENTF_KEYUP,0) ; Release SHIFT key if user forgot.
ProcedureReturn 1 ; Report successful typing! :)
EndIf
EndProcedure
;-------
;-Konstanten
Enumeration
#window
#igad
#img1
#Textgad
#Stringgad
;--gadgets
EndEnumeration
foc=0
;-Image einbinden
lockimage=CatchImage(#img1,?pic)
taskbarHandle=FindWindow_("Shell_TrayWnd","")
;-Desktop Höhe+Breite
Ergebnis = ExamineDesktops()
Deskw=DesktopWidth(0)
Deskh= DesktopHeight(0)
;--
If OSVersion()=#PB_OS_Windows_2000 Or OSVersion()=#PB_OS_Windows_XP Or OSVersion()=#PB_OS_Windows_Future
Else
MessageRequester("Meldung","Das Program ist nur unter den folgenden Windowsversionen lauffähig->2000,xp,Vista",#MB_ICONWARNING)
End
EndIf
;-Bestätigung ausschalten
;-Taskleiste aus
ShowWindow_(taskbarHandle,0)
;------Taskmanager ausschalten
If RegKeyExists("HKEY_CURRENT_USER\SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\POLICIES\SYSTEM",".")
Else
RegCreateKey("HKEY_CURRENT_USER\SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\POLICIES\SYSTEM",".")
EndIf
If RegValueExists("HKEY_CURRENT_USER\SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\POLICIES\SYSTEM","DisableTaskMgr",".")
RegSetValue("HKEY_CURRENT_USER\SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\POLICIES\SYSTEM","DisableTaskMgr","1",#REG_DWORD,".")
Else
RegCreateKeyValue("HKEY_CURRENT_USER\SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\POLICIES\SYSTEM","DisableTaskMgr","1",#REG_DWORD,".")
EndIf
;----------
;-hook2
#WH_KEYBOARD_LL = 13
hook = SetWindowsHookEx_(#WH_KEYBOARD_LL,@myKeyboardHook(),GetModuleHandle_(0),0)
;--
If OpenWindow(#window,0,0,Deskw,Deskh,"",#PB_Window_BorderLess)
SetWindowPos_(WindowID(#window),#HWND_TOPMOST,0,0,0,0,#SWP_NOMOVE|#SWP_NOSIZE);Fenster in den Vordergrund setzen
If CreateGadgetList(WindowID(#window))
ImageGadget(#igad,0,0,Deskw,Deskh,lockimage)
StringGadget(#Stringgad,Deskw/2-80,Deskh/2-10,100,20,"Passwort Eingabe" )
SetParent_(GadgetID(#Stringgad),GadgetID(#igad))
EndIf
EndIf
;-Hauptschleife
Repeat
Event=WaitWindowEvent()
;-Fenster im Vordergrund halten
SetActiveWindow_(WindowID(#window))
SetWindowPos_(WindowID(#window),#HWND_TOPMOST,0,0,0,0,#SWP_NOMOVE|#SWP_NOSIZE)
SetFocus_(GadgetID(#Stringgad))
;---------------------------
EventType=EventType()
GadgetID=EventGadget()
;--Falls versucht wurde den Taskmanager aufzurufen
hMsgBox = FindWindow_("#32770","Task-Manager")
If hMsgBox
SetForegroundWindow_( hMsgBox)
SendKeys(hMsgBox,"","{ENTER}");-Messagerequester automatisch bestätigen.
EndIf
;-------------------
;--
If Event=#PB_Event_Gadget
If GadgetID=#Stringgad And EventType=#PB_EventType_Change And GetFocus_()=GadgetID(#Stringgad)
If foc=0
SetGadgetText(#Stringgad,"")
foc=1
Else
;-Alles Rückgängig machen
If GetGadgetText(#Stringgad)="1417"
HideWindow(#window,1)
For a=0 To 20
hMsgBox = FindWindow_("#32770","Task-Manager")
If hMsgBox
SetForegroundWindow_( hMsgBox)
SendKeys(hMsgBox,"","{ENTER}");-Messagerequester automatisch bestätigen.
EndIf
Next a
RegSetValue("HKEY_CURRENT_USER\SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\POLICIES\SYSTEM","DisableTaskMgr","0",#REG_DWORD,".")
;-Taskleiste an
ShowWindow_(taskbarHandle,1)
UnhookWindowsHookEx_(hook)
End
EndIf
;---------
EndIf
EndIf
EndIf
Until EventType=#PB_EventType_RightDoubleClick
End
;-Datasection
DataSection
pic:
IncludeBinary "LockScreen.bmp"
EndDataSection
Zuletzt geändert von roherter am 03.11.2006 20:43, insgesamt 1-mal geändert.
Purebasic 5.0 32bit und 64 bit
I'm back from hell
I'm back from hell