Avatar billede athlon-pascal Juniormester
10. juni 2002 - 20:08 Der er 38 kommentarer og
3 løsninger

Logge af aktuelle Windows-bruger...

Har lavet et program der kan:
# Lukke computeren
# Genstarte computeren
# Logge af den aktuelle bruger (logge af)

Mit problem opstår når jeg vil logge af. I første omgang ser det ud til at virke fint, alle kørende programmer lukker, men når login-dialogen burde komme starter den bare alt igen.
Når jeg atter, via mit program, prøver at logge af, så virker det fint, login-dialogen kommer frem.

En del af min kode:
procedure TForm1.OKButtonClick(Sender: TObject);
begin
  SaveToReg(ComboBox.ItemIndex,'index',2);
  case ComboBox.ItemIndex of
    0: if ExitWindowsEx(EWX_SHUTDOWN,0) then
        Close;
    1: if ExitWindowsEx(EWX_REBOOT,0) then
        Close;
    2: if ExitWindowsEx(EWX_LOGOFF,0) then
        Close;
    3: Close;
  end
end;


//Tror ikke fejlen er her:
procedure SaveToReg(input1:Variant;input2:String;inputtype:Byte=1);
begin
  reg:=TRegistry.Create;
  with reg do  try
    begin
      Rootkey:=HKEY_CURRENT_USER;
      CreateKey('\Software\xShutDown');
      OpenKey('\Software\xShutDown', True);
      case inputtype of
        1: reg.WriteString(input2,input1);
        2: reg.WriteInteger(input2,input1);
        3: reg.WriteBool(input2,input1);
      end;
      reg.CloseKey;
    end;
  finally
    reg.Free;
  end;
end;

-------------------------------------------------

//Ikke en del af min kode, men virker fint:
procedure TForm1.OKButtonClick(Sender: TObject);
begin
  ExitWindowsEx(EWX_LOGOFF,0);
  Close;
end;

Bruger D4 standard under Win98(ikke SE).
Avatar billede athlon-pascal Juniormester
10. juni 2002 - 21:11 #1
Ingen der kan hjælpe???
Avatar billede borrisholt Novice
11. juni 2002 - 07:55 #2
http://borrisholt.com under WinNT finder du et eksempel der kan

Jens B
Avatar billede athlon-pascal Juniormester
11. juni 2002 - 09:18 #3
JB
Avatar billede borrisholt Novice
11. juni 2002 - 09:20 #4
?
Avatar billede athlon-pascal Juniormester
11. juni 2002 - 09:21 #5
Hov, jeg startede med at skrive, afviste og pludselig så stod det jeg har skrevet der som en komentar!

Nå, men nu til sagen:
JB, jeg kan desværre ikke bruge dit svar, har faktisk prøvet din kode allerede før jeg oprettede spørgsmålet, den giver mig fejl!
Avatar billede athlon-pascal Juniormester
11. juni 2002 - 09:23 #6
Det hedder 'Hest!' og ikke '?' :)
Avatar billede borrisholt Novice
11. juni 2002 - 09:24 #7
Mystisk .. Jeg testede det inden jeg postede ....

Jens B
Avatar billede athlon-pascal Juniormester
11. juni 2002 - 09:25 #8
Har Win98 (ikke SE), men det kan jo være jeg bruger din kode forkert.
Avatar billede borrisholt Novice
11. juni 2002 - 09:25 #9
Og .. Jeg tror du har heste noget forkert sammen.

Jens B
Avatar billede borrisholt Novice
11. juni 2002 - 09:26 #10
Oooh ... Jeg tesert på W2k ...

Jens B
Avatar billede athlon-pascal Juniormester
11. juni 2002 - 09:29 #11
Har forresten opdaget at følgende virker fint:

procedure TForm1.OKButtonClick(Sender: TObject);
begin
  case ComboBox.ItemIndex of
    0: if ExitWindowsEx(EWX_SHUTDOWN,0) then
        Close;
    1: if ExitWindowsEx(EWX_REBOOT,0) then
        Close;
    2: if ExitWindowsEx(EWX_LOGOFF,0) then
        Close;
    3: Close;
  end
end;

Men det gør det her ikke:

procedure TForm1.ComboBoxKeyPressed(Kan ikke lige huske alle paremetrene, ud over Sender og Key);
begin
  if (key in [#13,#32]) then
    case ComboBox.ItemIndex of
      0: if ExitWindowsEx(EWX_SHUTDOWN,0) then
          Close;
      1: if ExitWindowsEx(EWX_REBOOT,0) then
          Close;
      2: if ExitWindowsEx(EWX_LOGOFF,0) then
          Close;
      3: Close;
    end;
end;
Avatar billede borrisholt Novice
11. juni 2002 - 09:33 #12
OKI Hester du så ikke lige mit program til at virke på Win9x ?

Jens B
Avatar billede athlon-pascal Juniormester
11. juni 2002 - 09:34 #13
Hest!
Avatar billede athlon-pascal Juniormester
11. juni 2002 - 09:36 #14
JB -> Det er selve hovedkoden der lukker, genstarter og logger af der ikke vil virke, det gør til gendgæld ExitWindowsEx! (Men hvor er fejlen i min kode?)
Avatar billede borrisholt Novice
11. juni 2002 - 09:36 #15
Mit lille Boot Windows program. Jeg en gang i fordoms tid har Hestet sammen. Vil du rette det til så det virker under Win9x ?

Jens B
Avatar billede athlon-pascal Juniormester
11. juni 2002 - 09:40 #16
Jeg tror ikke min erfaring rækker så langt, desværre :(
Avatar billede athlon-pascal Juniormester
11. juni 2002 - 09:42 #17
Men min kode, hvor er da fejlen..?
Avatar billede athlon-pascal Juniormester
11. juni 2002 - 09:44 #18
Hvor er fejlen i:
procedure TForm1.ComboBoxKeyPressed(Kan ikke lige huske alle paremetrene, ud over Sender og Key);
begin
  if (key in [#13,#32]) then
    case ComboBox.ItemIndex of
      0: if ExitWindowsEx(EWX_SHUTDOWN,0) then
          Close;
      1: if ExitWindowsEx(EWX_REBOOT,0) then
          Close;
      2: if ExitWindowsEx(EWX_LOGOFF,0) then
          Close;
      3: Close;
    end;
end;
Avatar billede athlon-pascal Juniormester
11. juni 2002 - 10:16 #19
Ser i fobo eller hva?
Avatar billede borrisholt Novice
11. juni 2002 - 10:21 #20
Mig ? Du må da være stiv !
Avatar billede athlon-pascal Juniormester
11. juni 2002 - 10:24 #21
Godt, men kan du hjælpe mig?
Avatar billede borrisholt Novice
11. juni 2002 - 10:27 #22
Nej Jeg ved det ikke ... Har du tested hvad ItemIndex er ?

Jens B
Avatar billede athlon-pascal Juniormester
11. juni 2002 - 13:15 #23
Lukke computeren og genstarte computeren virker fint...
Avatar billede athlon-pascal Juniormester
11. juni 2002 - 13:29 #24
Linje 0: "Lukke computeren"
Linje 1: "Genstart computeren"
Linje 2: "Logge af "+aktuel bruger (http://www.eksperten.dk/spm/221880)
Linje 3: "Planlagt funktion - Ikke færdig"
Avatar billede dkn Nybegynder
11. juni 2002 - 13:42 #25
Kan det være at EWX_LOGOFF kræver at programmet som sendte forbliver åben lidt tid efter kaldet?

Måske du bare skulle prøve:

    case ComboBox.ItemIndex of
      0: if ExitWindowsEx(EWX_SHUTDOWN,0) then
          Close;
      1: if ExitWindowsEx(EWX_REBOOT,0) then
          Close;
      2: ExitWindowsEx(EWX_LOGOFF,0);
      3: Close;
    end;
Avatar billede athlon-pascal Juniormester
11. juni 2002 - 13:53 #26
dkn -> Hvorfor virker følgende så:
procedure TForm1.OKButtonClick(Sender: TObject);
begin
  case ComboBox.ItemIndex of
    0: if ExitWindowsEx(EWX_SHUTDOWN,0) then
        Close;
    1: if ExitWindowsEx(EWX_REBOOT,0) then
        Close;
    2: if ExitWindowsEx(EWX_LOGOFF,0) then
        Close;
    3: Close;
  end
end;
Avatar billede dkn Nybegynder
11. juni 2002 - 14:26 #27
Okay hvis det virker på et button så er der da noget helt galt...

kan ikke se hvad problemmet så skulle være må jeg nok sige
Avatar billede athlon-pascal Juniormester
11. juni 2002 - 17:03 #28
!HVAD ER FEJLEN I MIN KODE!
(Skal jeg paste al min kode?)
Avatar billede athlon-pascal Juniormester
11. juni 2002 - 17:23 #29
Haloooooooooooooooooooooooooooooooooooooooooooooooooooooooo...
Avatar billede athlon-pascal Juniormester
11. juni 2002 - 19:14 #30
?
Avatar billede borrisholt Novice
12. juni 2002 - 08:54 #31
Ikke ?
Men Hest !

Jeg ved det ikke ...

Hvad du muligvis har lagt mærke til så bruger jeg ikke close i mit eksempel, fordi det klarer Windows selv.

Jeg gør sådan her :
procedure TForm1.Button1Click(Sender: TObject);
begin
  If RadioButton1.Checked then
    ExitWindows(EWX_SHUTDOWN);
  If RadioButton2.Checked then
    ExitWindows(EWX_REBOOT);
  If RadioButton3.Checked then
    ExitWindows(EWX_LOGOFF);
end;


Måske du skulle prøve :

procedure TForm1.OKButtonClick(Sender: TObject);
begin
  case ComboBox.ItemIndex of
    0: ExitWindowsEx(EWX_SHUTDOWN,0);
    1: ExitWindowsEx(EWX_REBOOT,0);
    2: ExitWindowsEx(EWX_LOGOFF,0);
    3: Close;
  end
end;

Jeg har ikke en Windows 9x til min rådighed .... Og kan derfor ikke teste koden

Jens B
Avatar billede athlon-pascal Juniormester
12. juni 2002 - 09:55 #32
Hest! selvfølgelig :-)

Det må jeg hellere prøve, virker det ikke må jeg spørge på www.xperten.com ;-)
Avatar billede Slettet bruger
12. juni 2002 - 14:44 #33
lol xperten.com er jo det samme som eksperten.dk !
Avatar billede athlon-pascal Juniormester
12. juni 2002 - 19:03 #34
Ja, men hold dig fra det: http://www.eksperten.dk/spm/223629
Avatar billede athlon-pascal Juniormester
12. juni 2002 - 20:49 #35
Har hævet pointne til 80! (60 før)
Avatar billede athlon-pascal Juniormester
13. juni 2002 - 09:47 #36
JB -> Blev ikke bedre :(
Avatar billede athlon-pascal Juniormester
13. juni 2002 - 12:31 #37
Tror fejlen ligger i OnKeyPressed (el. hva' fa'en det nu hedder).
Avatar billede athlon-pascal Juniormester
13. juni 2002 - 17:14 #38
Har hævet til 180!
Avatar billede athlon-pascal Juniormester
14. juni 2002 - 09:27 #39
Lukker...
Avatar billede borrisholt Novice
14. juni 2002 - 09:32 #40
Selv om du har lukket .. Tænker jeg stadig over hvad løsningen skal være ...

Jens B
Avatar billede athlon-pascal Juniormester
14. juni 2002 - 10:55 #41
Jeg kan vel finde nogle point frem hvis det skulle være :)
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