"Sie können den Computer jetzt ausschalten"

Hier kann alles mögliche diskutiert werden. Themen zu Purebasic sind hier erwünscht.
Flames und Spam kommen ungefragt in den Mülleimer.
Benutzeravatar
Joel
Beiträge: 851
Registriert: 21.04.2006 19:22

"Sie können den Computer jetzt ausschalten"

Beitrag von Joel »

Hi,

Wenn ich über den Windows Shutdown Befehl einen Netzwerk PC herunterfahre, dann kommt immer die Meldung: "Sie können den Computer jetzt ausschalten".

Beim Normalen Herunterfahren per Startmenü kommt die Meldung nicht. Wie stelle ich das beim Shutdown ab?

Habe Windows 2000
----------------------------------------------------------

PB 5.20 Beta 10 | Windows 7
Benutzeravatar
Vera
Beiträge: 928
Registriert: 18.03.2009 14:47
Computerausstattung: Win XP SP2, Suse 11.1
Wohnort: Essen

Re: "Sie können den Computer jetzt ausschalten"

Beitrag von Vera »

Hi Joel,

schau doch mal hier nach:
http://www.admins-tipps.de/Microsoft/Windows_2000.htm
http://www.admins-tipps.de/Microsoft/Wi ... tarten.htm
http://www.admins-tipps.de/Microsoft/Wi ... wn.exe.htm

Ich verwende seit Anfang an eigene Shortcuts zum Runterfahren etc. (und es wird über die Parameter gesteuert) hatte aber nie mit Win 2000 zu tun. Falls Du es auch so lösen willst und Dir noch die shutdown.exe fehlt - dann nur Bescheid sagen. :wink:

Gruß ~ Vera
Benutzeravatar
Falko
Admin
Beiträge: 3535
Registriert: 29.08.2004 11:27
Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit)
Kontaktdaten:

Beitrag von Falko »

Beim Win2000er-Rechner in der Firma funktioniert dieser Source
von Michael Vogel ganz gut.

Code: Alles auswählen

;Autor: Michael Vogel
Procedure DoShutDown()
   Protected Privileges.TOKEN_PRIVILEGES
   Protected htoken
   OpenProcessToken_(GetCurrentProcess_(),40,@hToken)
   Privileges\PrivilegeCount=1
   Privileges\Privileges[0]\Attributes=#SE_PRIVILEGE_ENABLED
   LookupPrivilegeValue_(0,"SeShutdownPrivilege",@Privileges\Privileges[0]\Luid)
   AdjustTokenPrivileges_(hToken,0,@Privileges,0,0,0)
   CloseHandle_(hToken)
EndProcedure
Procedure DoSuspend(Hibernate.l,ForceCritical.l,DisableWakeEvent)
   Protected DLL=OpenLibrary(#PB_Any,"Powrprof.dll")
   CallFunction(DLL,"SetSuspendState",Hibernate,ForceCritical,DisableWakeEvent)
   CloseLibrary(DLL)
EndProcedure
Procedure SuspendAllowed()
   Protected DLL=OpenLibrary(#PB_Any,"Powrprof.dll")
   Protected Result=CallFunction(DLL,"IsPwrSuspendAllowed")
   CloseLibrary(DLL)
   ProcedureReturn Result
EndProcedure
Procedure HibernateAllowed()
   Protected DLL=OpenLibrary(#PB_Any,"Powrprof.dll")
   Protected Result=CallFunction(DLL,"IsPwrHibernateAllowed")
   CloseLibrary(DLL)
   ProcedureReturn Result
EndProcedure

Procedure Shutdown(mode)
   Protected SaverActive = #Null

   Select mode
   Case 0
      ; Bildschirmschoner
      SendMessage_(GetForegroundWindow_(),#WM_SYSCOMMAND,#SC_SCREENSAVE,0)

      ; ein wenig warten...
      Delay(5000)

      ; abfragen, ob der Bildschirmschoner läuft...
      If SystemParametersInfo_(#SPI_GETSCREENSAVERRUNNING,0,@SaverActive,0)
         If SaverActive=0
            ; wenn nicht, Bildschirm abdunkeln...
            SendMessage_(GetForegroundWindow_(), #WM_SYSCOMMAND, #SC_MONITORPOWER,1)
         EndIf
      EndIf
   Case 1
      ; Abmelden
      DoShutDown()
      ExitWindowsEx_(0,0)
   Case 2
      ; Beenden
      DoShutDown()
      ExitWindowsEx_(2,0)
   Case 3
      ; Neustart
      DoShutDown()
      ExitWindowsEx_(9,0)
   Case 4
      ; Ruhezustand
      DoSuspend(#True,#False,#False)
   Case 5
      ; Standby
      DoSuspend(#False,#False,#False)
   EndSelect
   End
EndProcedure 
DoShutDown()
 Shutdown(2)
[Edit]
habe wohl das Netzwerk überlesen :freak:
[/Edit]
Bild
Win11 Pro 64-Bit, PB_6.11b1
Antworten