Avatar billede athlon-pascal Juniormester
08. april 2002 - 12:08 Der er 37 kommentarer og
1 løsning

Låse computeren

Jeg er ved at lave et program der kan låse computeren.
Til at slå diverse taster (ctrl+alt+del,etc.) fra bruger jeg koden på følgende side: http://www.pythia.dk/tips/vis_tip.php?id=10
Men hvordan undgår jeg at andre programmer startes eller andre allerede kørende programmer laver noget når min app kører?
Avatar billede martinlind Nybegynder
08. april 2002 - 12:11 #1
Du stopper bare window's message kø *S*

/Martin
Avatar billede laffe Nybegynder
08. april 2002 - 12:28 #2
Effektiv, Meeen måske lige voldsomt nok ;-)
Avatar billede athlon-pascal Juniormester
08. april 2002 - 13:14 #3
Hvordan?
Avatar billede athlon-pascal Juniormester
08. april 2002 - 14:39 #4
Gentager, mere tydeligt: hvordan stopper man 'bare' window's message kø (200p ingen interesse?)?
Jeg skal LÅSE computeren, dog skal det være muligt at LÅSE OP igen med det rigtige password (i ved nok, ****...).

Jeg tænker at hvis jeg bruger koden på http://www.pythia.dk/tips/vis_tip.php?id=10
så vil det være muligt at lave et program med StayOnTop som ved tryk på en knap slår diverse taster til igen og brænde det ned på en cd-rom, og så derefter via cd-rommens autostart starte programmet selvom computeren er låst.
Avatar billede martinlind Nybegynder
08. april 2002 - 14:48 #5
Du stopper IKKE bare window's message kø !!

/Martin
Avatar billede athlon-pascal Juniormester
08. april 2002 - 15:39 #6
"hvordan stopper man 'bare' window's message kø"
Læg mærke til "'" om bare, jeg havde en LILLE mistanke om at det ikke er så let (måske end ikke muligt?), men hvad gør jeg så?
Avatar billede martinlind Nybegynder
08. april 2002 - 15:45 #7
Jeg har faktisk ikke rigtig nogle ider, måske du kan lave et keyboard hook, og "suge alle taste tryk", men jeg ved det ikke.
Avatar billede laffe Nybegynder
08. april 2002 - 15:50 #8
Jeg ville også prøve at fange alle tastetryk, samt alle musetryk.

Prøv at slå "DefaultHandler" op i din hjælp.
Du kan prøve at overskrive DefaultHandler med din egen, og i den fanger du alle WM_ messages der har interesse.

Men pas på når du gør dette. Du kan få computeren til at låse (ret meget), hvis du ikke håndterer essestielle messages.
Avatar billede laffe Nybegynder
08. april 2002 - 15:53 #9
essestielle = essentielle ;)
Avatar billede borrisholt Novice
08. april 2002 - 18:07 #10
har du tænkt på blot at kalde LockWorkStation() ?

Jens B
Avatar billede borrisholt Novice
08. april 2002 - 18:08 #11
martin .. Selvfølgelig kan man bare stoppe Windows' windows kø ... Man laver blot et hook og smider det hele væk ... Men så kan computeren heller ikke bruges til noget ... :-)

Jens B
Avatar billede martinlind Nybegynder
08. april 2002 - 18:10 #12
Det var altså også ment som en joke *S*
Avatar billede borrisholt Novice
08. april 2002 - 18:11 #13
Det ved jeg godt ... :-)

Jens B
Avatar billede ziron Nybegynder
09. april 2002 - 10:46 #14
jens >> ja hvorfor ikke bruge lockworkstation. når kan prøver at bruger en kode som ikke virker på en nt-kerne, så er det sikkert også muligt at bruge lockworkstation :)

hmmm siger jeg bare hook hook hook, smager godt ik...

/ZIRON
Avatar billede athlon-pascal Juniormester
09. april 2002 - 17:19 #15
Jeg bruger Windows 98; altså er LockWorkStation() udelukket!

Jeg tænker at det vil det være muligt at lave et program med StayOnTop som ved tryk på en button slår diverse taster til igen og brænde det ned på en cd-rom, og så derefter via cd-rommens autostart starte programmet selvom computeren er låst. (gentagelse med småændringer; mere tydeligt?)

Jeg kan netop slå diverse tastekombinationer fra via koden på http://www.pythia.dk/tips/vis_tip.php?id=10 , det er ikke mit problem!
Avatar billede borrisholt Novice
10. april 2002 - 07:51 #16
lav dig et message hook .. og sorter i skidet selv !


Jens B
Avatar billede athlon-pascal Juniormester
10. april 2002 - 09:18 #17
borrisholt(.com) -> hvordan gør man?
Avatar billede otis Nybegynder
10. april 2002 - 09:23 #18
hvis "systemet stoppes", hvad sker der så med "aktiv systemprocess" hvis den dør - så er der vel ikke meget andet at gøre end at dræbe maskinen ?
Avatar billede athlon-pascal Juniormester
10. april 2002 - 09:53 #19
Man SKAL kunne låse computeren op med det rigtige Password og derefter, uden genstart (hverken hård eller blød), kunne fortsætte det man var i gang med før man låste!
Avatar billede athlon-pascal Juniormester
10. april 2002 - 09:59 #20
Se evt. http://www.publicware.dk/products/LockDown/

Det er et andet program kan låse computeren.
Avatar billede athlon-pascal Juniormester
10. april 2002 - 10:06 #21
Mit program får et billed der ligner mit skrivebord med startmenuen i bunden. Nederst til højre er et ur der går! Altså får ingen mistanke om at den er låst, først når de begynder at pille!
Avatar billede athlon-pascal Juniormester
10. april 2002 - 15:44 #22
Hallo, ingen smarte triks (og 200p!)?
Avatar billede athlon-pascal Juniormester
10. april 2002 - 20:49 #23
Hvor er alle i kloge eksperter? På hvilke tidspunkt skal man stille sit spørgsmål? 200p? Mange bække små...

Jeg bliver RIGTIG, RIGTIG glad hvis nogle vil komme med et godt svar :)
Avatar billede ziron Nybegynder
10. april 2002 - 23:44 #24
har du prøvet at kigge på det der med at hook sig igennem det?

/ZIRON
Avatar billede athlon-pascal Juniormester
11. april 2002 - 12:33 #25
ZIRON -> HVORDAN GØR MAN???
Avatar billede athlon-pascal Juniormester
11. april 2002 - 12:35 #26
Forresten er GØR (vovvov) ikke det som hunde kan :)
Avatar billede laffe Nybegynder
11. april 2002 - 12:53 #27
Hook Hook Hook Hook Hook Hook. lav det med Hook.

Du kan i din TForm assigne en ny WinProc procedure.

til din TForm. Det betyder, at alle messages, som der sendes til din Form sendes gennem denne procedure.

Det betyder også, at du selv kan bestemme, om du vil håndtere dem, eller, om du vil lade TForm's Winproc procedure håndtere dem.

Jeg har dessværre ikke Delphi installeret, men hvis du kan nøjes med et C++ eksempel fra CBuilder, så sig til, og jeg vil poste det.
Avatar billede athlon-pascal Juniormester
11. april 2002 - 18:59 #28
laffe -> Det der C++ har jeg aldrig rørt ved, derfor foretrækker jeg Object Pascal. Men det lyder godt det der Hook!
Avatar billede laffe Nybegynder
11. april 2002 - 19:58 #29
// I FormActivate, har jeg assignet min egen WindowProc methode, som jeg har kaldt MyWinProc

void __fastcall TForm1::FormActivate(TObject *Sender)
{
  WindowProc = MyWinProc;
}

Her er så implementeringen af metoden.

En switch er det samme som en case i Delphi.

Som du kan se, så fanger jeg her alle WM_KEYDOWN Messages. Når en tste trykkes ned, så viser jeg en besked.

Ved alle andre beskeder, så kalder jeg formens WindowProc, som hedder WndProc, og lader den håndtere beskeden.

void __fastcall TForm1::MyWinProc(Messages::TMessage &Message)
{
  switch (Message.Msg)
  {
    case WM_KEYDOWN:
      if (Message.WParam)
        ShowMessage("WM_KEYDOWN Message received");
    break;
    default:
      WndProc(Message);
  }
}

Ovenstående viser pricippet i hvad jeg mener. Det at fange alle WM_KEYDOWN er en begyndelse. Der findes jo et hav af andre messages, som du måske også skal fange, men start lige med det her først.

Få ovenstående til at virke i Delphi. Så kan vi se på, hvilke andre messages der kunne være interesant.
Avatar billede ice Nybegynder
12. april 2002 - 14:50 #30
Jeg lavede på et tidspunkt et program, der lavede en full-screen form, hvorefter alle taster blev opfanget af programmet og windowstasten og ctrl-alt-del blev deaktiveret. Formen tog et screenshot af windows baggrunden og viste billedet på formen. Folk kunne ikke se den var låst, før de gik hen og trykkede på computeren. Programmet havde så en speciel tastkombination man kunne trykke for at få en passworddialog op. Virkede meget godt, med min bærbar i et klasselokale. Senere fik jeg win2000 og så var det ligemeget..

Hilsen

Thomas
Avatar billede athlon-pascal Juniormester
19. april 2002 - 14:15 #31
Hvis der ikke snart kommer noget kode jeg kan bruge, så må jeg lukke spørgsmålet i stedet for min computer! Og så kan jeg ikke låse op, heller ikke med mit Eksperter-password!
Avatar billede laffe Nybegynder
19. april 2002 - 14:23 #32
Hvad med mit svar. Har du prøvet det ?
Avatar billede athlon-pascal Juniormester
19. april 2002 - 14:39 #33
laffe -> Hvad gør dit svar? Er det ikke bare noget med at hindre tastetryk?  Det har jeg jo gjort!
Avatar billede laffe Nybegynder
19. april 2002 - 15:44 #34
Ja det fanger tastetryk, og ved at udvide det, kan du fange alle input (Mouse/Keyboard), og dermed "låse" PC'en.
Avatar billede athlon-pascal Juniormester
21. april 2002 - 17:48 #35
Som skrevet, det med tastetryk har jeg klaret! Prøv lige at gennemlæse mine indlæg, spørg hvis der er noget du ikke forstår (måske har jeg ikke formuleret mig korrekt?).
Avatar billede laffe Nybegynder
21. april 2002 - 18:18 #36
Er det rigtig forstået, at du har løst problemet med Input (Keyboard/Mouse) ?

Det du nu mangler er at låse andre applikationer fra at starte op ?
Avatar billede athlon-pascal Juniormester
24. april 2002 - 10:00 #37
---------- Pythia.dk ----------
Disable alt+tab & ctrl+alt+del
Hvis man laver programmer, der på en eller anden måde skal køres færdig uden at brugeren har mulighed for at hindre dette (ud over via elværket), så kan der være brug for at slå tastkombinationerne alt+tab samt ctrl+alt+del. I de to følgende metoder er vist koden til at slå tastkombinationerne fra og til.


procedure TForm1.Button1Click(Sender: TObject);
var
  dummy: integer;
begin
  SystemParametersInfo(SPI_SCREENSAVERRUNNING, 1, @dummy, 0);
end;

// I denne metode slås tastkombinationerne til igen
procedure TForm1.Button2Click(Sender: TObject);
var
  dummy: integer;
begin
  SystemParametersInfo(SPI_SCREENSAVERRUNNING, 0, @dummy, 0);
end;
DISSE METODER VIRKER IKKE UNDER WINDOWS NT/2000
---------- Pythia.dk ----------

Det er fra det link jeg tidligere har nævnt: http://www.pythia.dk/tips/vis_tip.php?id=10
Avatar billede athlon-pascal Juniormester
04. maj 2002 - 20:37 #38
Lukker :(
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester