Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > C/C++
You last visited: Today at 20:41

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Computer instant herunterfahren

Discussion on Computer instant herunterfahren within the C/C++ forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Jul 2010
Posts: 40
Received Thanks: 1
Question Computer instant herunterfahren

Weiss jemand wie man mit einem (vertretbaren aufwand^^) in c++ einen computer instant herunterfährt (so, als wäre das strom gekappt worden)?

so wie dieses tool hier z.B:
kleinernascher4 is offline  
Old 03/02/2012, 22:36   #2
 
.SkyneT.'s Avatar
 
elite*gold: 273
Join Date: Sep 2010
Posts: 1,831
Received Thanks: 786
In der ntdll.dll sollte man mit der "NtShutdownSystem" Funktion etwas anfangen können.
.SkyneT. is offline  
Old 03/02/2012, 22:38   #3
 
Schwalli!'s Avatar
 
elite*gold: 42
Join Date: Apr 2010
Posts: 1,746
Received Thanks: 612
zieh doch einfach den Stecker raus wenn du den sofort aus haben wills?
Schwalli! is offline  
Old 03/02/2012, 23:21   #4


 
MrSm!th's Avatar
 
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,909
Received Thanks: 25,409
Das dürfte nur über einen Treiber per ACPI gehen, habe aber keine genaueren Kenntnisse über die Usermode NT API.
MrSm!th is offline  
Old 03/03/2012, 10:00   #5
 
elite*gold: 0
Join Date: Jul 2010
Posts: 40
Received Thanks: 1
ntdll.dll hab ich jetzt mal mit LoadLibrary aufgerufen...
dann mit GetProcAddress die funktion gefunden...
alles klappt wunderbar, beide geben eine vernünftige zahl zurück...
aber (n00bfrage) wie rufe ich die funktion jetzt auf (also die NtShutdownSystem)??
(hab sowas noch NIE gemacht^^)

wenns geht, kann mir jemand büdde ein kleines codebeispiel schreiben damit ich sehe wie ich dat ding jetzt zum laufen bring

danke schonmal ^^
kleinernascher4 is offline  
Old 03/03/2012, 10:11   #6
 
elite*gold: 50
Join Date: Mar 2010
Posts: 1,373
Received Thanks: 521
gibt dir den Funktionszeiger zu der gesuchten Funktion zurück. Über den Zeiger kannst du die Funktion aufrufen.

Beispiel:
jacky919 is offline  
Old 03/03/2012, 12:25   #7
 
elite*gold: 0
Join Date: Jul 2010
Posts: 40
Received Thanks: 1
aber NtShutdownSystem benötigt doch einen der 3 parameter

ShutdownNoReboot,
ShutdownReboot,
ShutdownPowerOff

ShutdownPowerOff scheint der richtige zu sein(gehe ich jetzt mal fest davon aus )

Code:
FARPROC Shutdown;
HMODULE hNtdll;
UINT Func;

hNtdll = ::LoadLibrary(L"NTDLL.DLL");
Shutdown = ::GetProcAddress (hNtdll,"NtShutdownSystem");
so und jetzt kommts^^
also wie ich denem link entnehmen konnte, müsste die nächste zeile so aussehen:

Code:
Func = Shutdown(ShutdownPowerOff);
jedoch kommt (wie erwartet^^) eine Fehlermeldung:

error C2065: 'ShutdownPowerOff': nichtdeklarierter Bezeichner

hmmm... is ja eigentlich klar, ShutdownPowerOff is ja nirgends definiert.
also wie soll ich es dann machen? weiss wer noch was dazu?
kleinernascher4 is offline  
Old 03/03/2012, 12:41   #8
 
elite*gold: 50
Join Date: Mar 2010
Posts: 1,373
Received Thanks: 521
Code:
typedef enum _SHUTDOWN_ACTION
{
	ShutdownNoReboot,
	ShutdownReboot,
	ShutdownPowerOff
} SHUTDOWN_ACTION, *PSHUTDOWN_ACTION;
Das laden der Funktion würde etwa so funktionieren:
Code:
typedef DWORD (WINAPI* lpNtShutdownSystem)(SHUTDOWN_ACTION);

HINSTANCE hDLL  = LoadLibrary(L"ntdll.dll");

lpNtShutdownSystem NtShutdownSystem = (lpNtShutdownSystem)GetProcAddress(hDLL, "NtShutdownSystem");
Ausführen dann so:
Code:
NtShutdownSystem(ShutdownPowerOff);
jacky919 is offline  
Old 03/03/2012, 12:49   #9
 
elite*gold: 0
Join Date: Jul 2010
Posts: 40
Received Thanks: 1
sorry, aber ich bin mir der materie nicht so vertraut... was soll ich damit machen
kleinernascher4 is offline  
Old 03/03/2012, 12:51   #10
 
elite*gold: 50
Join Date: Mar 2010
Posts: 1,373
Received Thanks: 521
Hab meinen Beitrag editiert, guck ihn nochmal an.
jacky919 is offline  
Thanks
1 User
Old 03/03/2012, 14:01   #11
 
elite*gold: 0
Join Date: Jul 2010
Posts: 40
Received Thanks: 1
danke funkt wunderbar, thx^^
kleinernascher4 is offline  
Old 03/03/2012, 14:30   #12
 
.SkyneT.'s Avatar
 
elite*gold: 273
Join Date: Sep 2010
Posts: 1,831
Received Thanks: 786
Noch ne Vorraussetzung, damit das funktioniert sind system privileges.
(OpenProcessToken / AdjustTokenPrivileges)

Dann mit LoadLibrary die ntdll.dll laden.
GetProcAdress für den Pointer auf "NtShutdownSystem"...

Und letztendlich noch etwas in der Richtung:
Code:
   typedef int (__stdcall * FUNC)(DWORD);

   FUNC shutitdown;
   shutitdown = FUNC(PointerToNtShutdownSystem);

   shutitdown( 2 );
   FreeLibrary(.....); //A handle to the loaded library module (return von LoadLibrary)
Dann sollte das eigentlich funktionieren, habs mal kompiliert.

ist das Ergenis (schau dir an ob du dir das so vorstellst ).

Edit: Ah hab ich schon wieder Seite 2 übersehen
.SkyneT. is offline  
Old 03/04/2012, 17:07   #13
 
Strean's Avatar
 
elite*gold: 141
Join Date: Dec 2009
Posts: 554
Received Thanks: 3,920
nimm doch einfach system("shutdown - ( parameter weiß ich gerade net )");
Strean is offline  
Old 03/04/2012, 17:12   #14
 
elite*gold: 50
Join Date: Mar 2010
Posts: 1,373
Received Thanks: 521
Quote:
Originally Posted by Strean View Post
nimm doch einfach system("shutdown - ( parameter weiß ich gerade net )");
Das würde Windows ganz normal herunterfahren. Er möchte aber, dass der PC ausgeht als ob er den Stecker ziehen würde.
jacky919 is offline  
Old 03/04/2012, 18:19   #15


 
MrSm!th's Avatar
 
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,909
Received Thanks: 25,409
Interessant :> Wusste gar nicht, dass Windows eine API Funktion zum PowerOff bereitstellt.

Quote:
Originally Posted by Strean View Post
nimm doch einfach system("shutdown - ( parameter weiß ich gerade net )");
Dann nenn mir doch mal den Parameter, der ein sofortiges PowerOff herbeiführt oO
Außerdem ist system() böse.
MrSm!th is offline  
Reply


Similar Threads Similar Threads
[How To] Endstufe am Computer/Car Amplifier on a Computer
01/06/2012 - Tutorials - 2 Replies
Endstufe am Computer/Car Amplifier on a Computer Hallo heute zeige ich euch wie man eine Auto Endstufe an einen Pc anschliesst um Fette Subwoofer daran zu betreiben :) Das ganze nutze ich persönlich schon seit Jahren und habe damit angefangen als ich 15/16 Jahre alt war. 1. Wie funktioniert das ganze 2. Was brauche ich dafür 3. Anleitung 4. Bilder
[S] My Computer/mein Computer [CHEAP]
12/19/2011 - Trading - 11 Replies
Hi, Ich verkaufe meinen so gut wie neuen Pc. Warum? - Da ich ihn zu selten nutze und er hier nur sinnlos verstaubt, und ich noch einen fast genau so guten hier rum stehen habe. Wie erfolgt die Zahlung? - Via Paypal
[How to] Computer herunterfahren für Anfänger
08/06/2011 - Tutorials - 7 Replies
Nur öffnen wenn ihr ein bisschen Humor habt... 'n bisschen... Einleitung In einem anderen Thread den hier] habe ich folgendes Kommentar gelesen: Da habe ich mir gedacht, so ein Tutorial könnte ich doch mal machen! Grundlegendes
Computer startet nach dem Herunterfahren selbstständig neu
01/05/2011 - Technical Support - 6 Replies
Hallo elitepvpers, Seit einigen Tagen habe ich das Problem, sobald ich mein Computer herunterfahren will, startet er sich selbstständig wieder neu. Kennt jemand die Lösung, freue mich auf Antworten!



All times are GMT +1. The time now is 20:42.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.