In Abwesenheit PC sperren.

Übersicht BlitzBasic BlitzPlus

Neue Antwort erstellen

 

maxihabbo

Betreff: In Abwesenheit PC sperren.

BeitragMi, Okt 05, 2005 17:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo!
Ich habe ein kleines Programm entwickelt, was man starten kann, wenn man kurz nicht da ist, um den PC vor unbefugten zu schützen Wink

Nur gibt es noch große BUG's. Vielleicht hat von euch einer Interesse mir ein bisschen zu helfen Wink

Hier mal eine kleine Vorschau:

BlitzBasic: [AUSKLAPPEN]
window = CreateWindow(\"\",0,0,ClientWidth(Desktop()),ClientHeight(Desktop()),0,16)
can = CreateCanvas(0,0,ClientWidth(Desktop()),ClientHeight(Desktop()),window)
label=CreateLabel(\"Der PC wurde gesperrt!\",ClientWidth(Desktop())/2-70,ClientHeight(Desktop())/2-40,110,17,can)
HidePointer can

Repeat
Until KeyDown(87) And KeyDown(88)
End


Bugs:
- Das Programm kann mit dem Taskmanager beendet werden
- Schriftzug "Der PC wurde gesperrt" hat einen unschönen hintergrund und ist zu klein geschrieben
- Schriftfarbe (schwarzer hintergrund, schwarze schrift) ist unpassend.


Wenn man wieder kommt muss man einfach F11 + F12 gleichzeitig drücken Wink

Gruß MaXi!

Dante

BeitragDo, Okt 06, 2005 0:34
Antworten mit Zitat
Benutzer-Profile anzeigen
BlitzBasic: [AUSKLAPPEN]
window = CreateWindow(\"\",0,0,ClientWidth(Desktop()),ClientHeight(Desktop()),0,16) 
can = CreateCanvas(0,0,ClientWidth(Desktop()),ClientHeight(Desktop()),window)

SetBuffer CanvasBuffer(can)
fntArialB=LoadFont(\"Arial\",20,True,False,False)
SetFont fntArialB

Color 255,0,0
Text ClientWidth(Desktop())/2-70,ClientHeight(Desktop())/2-40 , \"PC gesperrt\"
Flip
Repeat
Until KeyDown(87) And KeyDown(88)
End
Wink
  • Zuletzt bearbeitet von Dante am Do, Okt 06, 2005 15:42, insgesamt einmal bearbeitet

Jan_

Ehemaliger Admin

BeitragDo, Okt 06, 2005 11:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Hm, warum benutzt du nciht einfach nen Bildschirmschoner mit Passwort?
between angels and insects
 

maxihabbo

BeitragDo, Okt 06, 2005 15:11
Antworten mit Zitat
Benutzer-Profile anzeigen
So was tolles gibts bei XP leider nicht ...
@Bad-Rat:
Sieht schonmal gut aus oder?
^^

Hip Teen

BeitragDo, Okt 06, 2005 15:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Um den Task Manager zu verhindern, setz folgendes in die user32.decls:
Code: [AUSKLAPPEN]
EndTask%(hwnd%, false%, force%):"EndTask"
FindWindow%(lpClassName%,lpWindowName$):"FindWindowA"

und folgendes in deine Schleife:
BlitzBasic: [AUSKLAPPEN]
  hwnd = FindWindow(0,\"Windows Task-Manager\")
If hwnd Then
EndTask(hWnd,0,0)
End If

Was man noch machen kann, ist ALT + Tab benutzen, daran arbeite ich jetzt mal..



Edit: Ein ActivateWindow(window) in der Schleife lässt das Fenster die ganze Zeit im Vordergrund, egal was man macht. Das einzige was man noch sieht, ist dieses Fenster Wechsel Teil (kA wie das heißt oO). Mal schauen ob ich das noch wegkriege Laughing
Spruch der Woche: "Ahh, ein neues Gesicht?!" - "Nein, das hab ich schon länger"
 

maxihabbo

BeitragDo, Okt 06, 2005 16:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Um ein Fenster im vordergrund zu halten, benutze die Userlibs:
BlitzBasic: [AUSKLAPPEN]

.user32.dll
USER32_SetWindowPos%(hWnd%,hWndInsertAfter%,x%,y%,cx%,xy%,Flags%):\"SetWindowPos\"
GetActiveWindow%() : \"GetActiveWindow\"

So wendet man den Befehl an:
BlitzBasic: [AUSKLAPPEN]

USER32_SetWindowPos(GetActiveWindow(),-1,0,0,0,0,$1+$2)


Er muss nicht in der schleife sein. Das Fenster wird umgestellt Wink

Hip Teen

BeitragDo, Okt 06, 2005 16:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Hehe, ja, daran hatte ich auch als erstes gedacht. Nur, drück damit einmal ALT + Tab. Was ist? Man sieht die Task Leiste... nicht sehr überzeugend Wink
Der Class Name von dem Programm Switch Window ist übrigens "#32771" (ohne die ""). Vielleicht hilft dir das irgendwie weiter, um es ganz zu verstecken. Ich krieg es bisher nur gleich wieder weg, aber man sieht es kurz... kA ob dir das reicht Rolling Eyes
Spruch der Woche: "Ahh, ein neues Gesicht?!" - "Nein, das hab ich schon länger"
 

maxihabbo

BeitragDo, Okt 06, 2005 16:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja, fürs erste viel.
ein programm fängt klein an Laughing

Hip Teen

BeitragDo, Okt 06, 2005 17:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Gut, dann kommt das:
Code: [AUSKLAPPEN]
CloseWindow%(hWnd%):"CloseWindow"
FindWindow_new%(ClassName$, WindowName$):"FindWindowA"

noch in die decls und das:

BlitzBasic: [AUSKLAPPEN]
  hwnd2 = FindWindow_New(\"#32771\",\"\")
If hwnd2 Then
closewindow(hwnd2)
ActivateWindow(window)
End If

in deine Schleife 8)
Spruch der Woche: "Ahh, ein neues Gesicht?!" - "Nein, das hab ich schon länger"
 

blitz

BeitragMi, Okt 12, 2005 16:54
Antworten mit Zitat
Benutzer-Profile anzeigen
könnte noch mal jemand den ganzen code aufschreiben?
 

maxihabbo

BeitragMi, Okt 12, 2005 17:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Kein Problem.
Wenn du alle Userlibs drin hast startet das Programm ohne Probleme:

Code: [AUSKLAPPEN]
;########################
    password$ = "hallo"  ; Passwort zum entsperren
    cur$ = "0" ; Cursor verstecken => 0 = Nein; 1 = Ja
;########################
window = CreateWindow("",0,0,ClientWidth(Desktop()),ClientHeight(Desktop()),0,16)
can = CreateCanvas(0,0,ClientWidth(Desktop()),ClientHeight(Desktop()),window)
USER32_SetWindowPos(GetActiveWindow(),-1,0,0,0,0,$1+$2)
If cur$ = "1" Then
  HidePointer can
EndIf
SetBuffer CanvasBuffer(can)
Color 255,0,0
font = LoadFont("Times new Roman",16)
SetFont font
Text ClientWidth(Desktop())/2-80,ClientHeight(Desktop())/2-40 , "Der PC wurde gesperrt!"
Color 255,255,255

x = MouseX()
y = MouseY()
Repeat
  ActivateWindow(window)
  hwnd = FindWindow(0,"Windows Task-Manager")
  If hwnd Then
    EndTask(hWnd,0,0)
  End If
  hwnd2 = FindWindow_new("#32771","")
  If hwnd2 Then
    CloseWindow(hwnd2)
    ActivateWindow(window)
  End If

Until KeyDown(87) And KeyDown(88)


textfield=CreateTextField(382,297,80,20,can,1)
button1=CreateButton("Entsperren",340,345,100,20,can,1)
button2=CreateButton("Status: Bitte Passwort eingeben!",300,375,180,20,can,1)
DisableGadget button2
Text ClientWidth(Desktop())/2-83,ClientHeight(Desktop())/2 , "Passwort:"
FlushKeys()
ActivateGadget textfield
Repeat
  ActivateWindow(window)
  Select WaitEvent(10)
    Case $401
      Select EventSource()
        Case button1 pw$=TextFieldText(textfield)
          If pw$ = password$ Then
            Goto ende
          Else
            SetGadgetText button2,"Status: Passwort falsch!"
          EndIf
      End Select
  End Select

  hwnd = FindWindow(0,"Windows Task-Manager")
  If hwnd Then
    EndTask(hWnd,0,0)
  End If

  hwnd2 = FindWindow_new("#32771","")
  If hwnd2 Then
    CloseWindow(hwnd2)
    ActivateWindow(window)
  End If
ActivateWindow(window)
Forever


.ende
DisableGadget button1
DisableGadget textfield
EnableGadget button2
SetGadgetText button2, "Status: Entsperrt!"
Delay 2000
End


Bitte beachte folgendes:
Um das Passwort eingeben zu können musst du erst F11 + F12 zusammen drücken!
Verbesserungen können gerne noch gepostet werden!!

Gruß MaXi!

~Editiert~
Syntax durch Code ersetzt zur Geschwindigkeitsoptimierung. MfG D2006

Chrisi

BeitragSa, Okt 15, 2005 12:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Meine decls sieht so aus, aber da tut sich nix:
user32.decls hat Folgendes geschrieben:
.user32.dll
USER32_SetWindowPos%(hWnd%,hWndInsertAfter%,x%,y%,cx%,xy%,Flags%):"SetWindowPos"
GetActiveWindow%() : "GetActiveWindow"
EndTask%(hwnd%, false%, force%):"EndTask"
FindWindow%(lpClassName%,lpWindowName$):"FindWindowA"
CloseWindow%(hWnd%):"CloseWindow"
FindWindow_new%(ClassName$, WindowName$):"FindWindowA"


immer nur fehler, dass ein fehler sei Crying or Very sad
 

maxihabbo

BeitragSa, Okt 15, 2005 15:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Bei mir sieht die Datei so aus:
Code: [AUSKLAPPEN]
.lib "user32.dll"
GetForegroundWindow%(VOID):"GetForegroundWindow"
MessageBox%(hWnd,Text$,Caption$,Type):"MessageBoxA"
CloseWindow%(hWnd):"CloseWindow"
DestroyWindow%(hWnd):"DestroyWindow"
GetWindowText%(hWnd,buffer$,stringlenght):"GetWindowText"
GetWindowTextLength%(hwnd):"GetWindowTextLength"
GetActiveWindow%() : "GetActiveWindow"
GetKeyState%(vKey):"GetKeyState"
GetAsyncKeyState%(vKey):"GetAsyncKeyState"
BlockInput( bool ):"BlockInput"
SetDeskWallpaper% (pfad$) : "SetDeskWallpaper"
LoadCursor%(filename$):"LoadCursorFromFileA"
SetCursor%(cursorhandle%):"SetCursor"
USER32_SetWindowPos%(hWnd%,hWndInsertAfter%,x%,y%,cx%,xy%,Flags%):"SetWindowPos"
EndTask%(hwnd%, false%, force%):"EndTask"
FindWindow%(lpClassName%,lpWindowName$):"FindWindowA"
FindWindow_new%(ClassName$, WindowName$):"FindWindowA"


Die hälfte davon ist bestimmt nicht für das Programm, aber das meine user32.dll Userlibs ^^

Gruß MaXi!

Chrisi

BeitragDi, Okt 18, 2005 12:39
Antworten mit Zitat
Benutzer-Profile anzeigen
danke, probier ich gleich aus Wink

Mooch

BeitragMi, Okt 26, 2005 22:12
Antworten mit Zitat
Benutzer-Profile anzeigen
hm ein bug noch: man kann das programm mit strg+alt+esc minimieren...
was kann manm dagegen tun?

mfg
moOch
Pentium IV 3.0Ghz; nVidia Geforce 6800;
Microsoft Windows XP Home SP2; BlitzBasic 3D

.:: Sites ::.
.:: http://www.fl4sh-clan.de/ ::.


 

maxihabbo

BeitragDo, Okt 27, 2005 13:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Bei mir minimiert es sich nicht, die Start leiste wird aber angezeigt!
Bei scherzprogrammen habe ich gesehen, dass die die Start leiste ausblenden. Wenn man das in die Userlibs machen würde wäre es schon schwerer das Programm zu knacken!

Chrisi

BeitragMi, Nov 23, 2005 16:04
Antworten mit Zitat
Benutzer-Profile anzeigen
bei mir auch nicht!
aber so ists doch viel besser ^^. hab mich etwas mit dem code herumgespilt Wink:
BlitzBasic: [AUSKLAPPEN]
SaveBuffer DesktopBuffer(), \"hi.bmp\"
window = CreateWindow(\"\",0,0,ClientWidth(Desktop()),ClientHeight(Desktop()),0,16)
can = CreateCanvas(0,0,ClientWidth(Desktop()),ClientHeight(Desktop()),window)
deskw=ClientWidth(Desktop())
deskh=ClientHeight(Desktop())
image=LoadImage(\"hi.bmp\")
If image=0 Then RuntimeError \"!\"
cur$ = \"0\"
window = CreateWindow(\"\",0,0,ClientWidth(Desktop()),ClientHeight(Desktop()),0,16)
can = CreateCanvas(0,0,ClientWidth(Desktop()),ClientHeight(Desktop()),window)
USER32_SetWindowPos(GetActiveWindow(),-1,0,0,0,0,$1+$2)
If cur$ = \"1\" Then
HidePointer can
EndIf
SetBuffer CanvasBuffer(can)
Color 255,0,0
font = LoadFont(\"Times new Roman\",16)
SetFont font
Color 255,255,255
DrawImage image,0,0
DeleteFile \"hi.bmp\"
x = MouseX()
y = MouseY()
Repeat
FlipCanvas(can)
ActivateWindow(window)
hwnd = FindWindow(0,\"Windows Task-Manager\")
If hwnd Then
EndTask(hWnd,0,0)
End If
hwnd2 = FindWindow_new(\"#32771\",\"\")
If hwnd2 Then
CloseWindow(hwnd2)
ActivateWindow(window)
End If
Until KeyDown(1) And MouseHit(1)
End
=> gncboard.gn.funpic.de.vu
 

Netvampire

BeitragFr, Nov 25, 2005 0:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Also ich will den Spaß ja nicht verderben, aber vergib doch einfach deinem Benutzernamen ein Passwort. Dann reicht es wenn du die Windowstaste und L drückst und der PC ist gesperrt und man muss das Passwort eintippen. Allemal sicherer als ein Programm, was eine echte Absicherung nur vortäuscht...
 

maxinet

BeitragSa, Nov 26, 2005 15:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn ich Windowstaste + L drücke, kann sich jemand anders an dem Computer anmelden. Das Programm kann dann nur ich entsperren.

Gruß maxinet

Neue Antwort erstellen


Übersicht BlitzBasic BlitzPlus

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group