Avatar billede danielks Nybegynder
07. november 2002 - 22:39 Der er 19 kommentarer og
1 løsning

windows close;

hvordan gives en kommando til at lukke windows, genstarte windows ?
Avatar billede sekam Nybegynder
07. november 2002 - 22:46 #1
Avatar billede spunk13 Nybegynder
07. november 2002 - 22:46 #2
RUNDLL.EXE user,ExitWindows -- Lukker Windows
RUNDLL.EXE user,ExitWindowsExec -- Genstarter Windows
Avatar billede spunk13 Nybegynder
07. november 2002 - 22:47 #3
argh.. så ik den lå under Delphi :(
Avatar billede danielks Nybegynder
07. november 2002 - 22:52 #4
øhh jeg skal ikke bruge en source code.... bare selve linien...
den der er i shutdown.zip virker ikke...

not enough actual parameters....
Avatar billede sekam Nybegynder
07. november 2002 - 22:57 #5
Avatar billede hermandsen Juniormester
08. november 2002 - 07:46 #6
spunk13's ide er måske slet ikke så dårlig! :)

Uses
  ShellApi;

procedure TForm1.Button1Click(Sender: TObject);
begin
  ShellExecute(0, 'open', 'RUNDLL32.EXE', 'user,ExitWindows', nil, 0);
end;

Jeg er ikke helt 100 på at det virker, men prøv da! :)
Avatar billede danielks Nybegynder
08. november 2002 - 09:02 #7
det skal GENNEMTVINGE et luk... jeres forslag er gode... men de går istå hvis man har et ikke gemt dokument åbent...

Så kommer den traditionelle "Vil du gemme ændringerne" ting.. og så lukker den jo ikke automatisk...
Avatar billede hermandsen Juniormester
08. november 2002 - 09:23 #8
Hvis du har Windows 95 eller 98, så kan du kalde

ShellExecute(0, 'open', 'c:\con\con', nil, nil, 0);

Den smider en blå skærm op der gør at brugeren er nød til at genstarte computeren! :)

Det er en gammel DOS-fejl, som de fik rettet i Windows ME, og logisk nok, så er den heller ikke med i win2000 eller XP! ;)
Avatar billede danielks Nybegynder
08. november 2002 - 09:48 #9
den skal ikke tvinge brugeren til at lukke... men lukke comen selv... skal btw: virke i både 95, 98, 2000, NT, ME & XP....
Avatar billede badass Nybegynder
08. november 2002 - 10:05 #10
Prøv med API-kaldet ExitWindowsEx.

Procedure Boot;
  ExitWindowsEx(EWX_REBOOT, 0);
end;

// BadAss
Avatar billede sekam Nybegynder
08. november 2002 - 17:44 #11
Istedet for ',0' så giv den en ',4'
Det vile lave en "Force Shutdown"
Avatar billede Slettet bruger
08. november 2002 - 17:49 #12
hermandsen > den er blevet fikset i Windows Updaterne =)
Avatar billede athlon-pascal Juniormester
08. november 2002 - 20:16 #13
Dette er en udvidet udgave af Jens Borrisholts ExitWindowsJB() og bør virke i alle versioner af Windows:

function ExitWindowsJB(iFlags: Integer): Boolean;
var
  osVerInfo: TOSVersionInfo;

  function SetPrivilege(sPrivilegeName: String; bEnabled: Boolean): Boolean;
  var
    TPPrev, TP : TTokenPrivileges;
    Token      : THandle;
    dwRetLen  : DWord;
  begin
    Result := False;
    OpenProcessToken( GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES  or TOKEN_QUERY, Token );
    TP.PrivilegeCount := 1;
    if( LookupPrivilegeValue( Nil, PChar( sPrivilegeName ), TP.Privileges[ 0 ].LUID ) )then
      begin
      if( bEnabled )then
        TP.Privileges[ 0 ].Attributes  :=  SE_PRIVILEGE_ENABLED
      else
        TP.Privileges[ 0 ].Attributes  :=  0;
      dwRetLen := 0;
      Result := AdjustTokenPrivileges( Token, False,TP, SizeOf( TPPrev ), TPPrev, dwRetLen );
    end;
    CloseHandle(Token);
  end;
begin
  Result := True;
  osVerInfo.dwOSVersionInfoSize:=SizeOf(TOSVersionInfo);
  if GetVersionEx(osVerInfo) then
    case osVerInfo.dwPlatformId of
      VER_PLATFORM_WIN32_WINDOWS:
        if not ExitWindowsEx(iFlags, 0) then
          Result := False; // handle errors...
      VER_PLATFORM_WIN32_NT:
        if SetPrivilege('SeShutdownPrivilege', True) then
        begin
          if not ExitWindowsEx(iFlags, 0) then
            Result:=False; // handle errors...
          SetPrivilege('SeShutdownPrivilege', False)
        end
        else
          Result:=False; // handle errors...
  else
    Result:=false;
  end;                     
end;
Avatar billede athlon-pascal Juniormester
08. november 2002 - 20:20 #14
Luk computeren: ExitWindowsJB(EWX_SHUTDOWN);
  Genstart computeren: ExitWindowsJB(EWX_REBOOT);
  Log af den aktuelle bruger: ExitWindowsJB(EWX_LOGOFF);

  Hvis du ønsker at gennemtvinge, så tilføj EWX_FORCE, f.eks.:
    ExitWindowsJB(EWX_SHUTDOWN+EWX_FORCE);
Avatar billede hermandsen Juniormester
12. november 2002 - 02:03 #15
>>formatc
Ja, men det ser stadig sjovt ud når klasse-kammeraterne kører den og swang... Blå skærm! :)

Jeg savner lidt en mere harmløs en, for helt ærligt, så er det jo ikke vildt fedt når computeren låser på den måde! ;)

Damn, klokken er 2:10 og jeg har tjekket omkring 200 Delphi-mails fra Eksperten nu...

//hermandsen (Zzzzzzzzzzzzzzzzz...........)
Avatar billede athlon-pascal Juniormester
12. november 2002 - 20:08 #16
danielks -> Hvis ikke du har fået noget svar der dækker dine behov vil det være rart med en kommentar ...
Avatar billede athlon-pascal Juniormester
14. november 2002 - 19:13 #17
!
Avatar billede danielks Nybegynder
14. november 2002 - 20:37 #18
Jeg undskylder... kommer her...
Avatar billede danielks Nybegynder
03. december 2002 - 17:50 #19
Oki nogen der lige gider skrive hvilke tal der skal stå i:

ExitWindowsEx ( 1,0 )

for at den laver en force eller en normal shut down ....
Avatar billede danielks Nybegynder
08. december 2002 - 14:53 #20
tjen 100 point her... http://www.eksperten.dk/spm/292368
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