|
| Autor |
Nachricht |
Fuka Coder

Anmeldedatum: 01.05.2008 Beiträge: 97
|
[S] Power off - Code
Verfasst am: 04.09.2008, 19:28 |
|
|
Moin Moin Leutz,
Ich suche diesen Source, womit man einen Rechner SOFORT ausmachen kann. Leider finde ich ihn nicht mehr. Es hieß "APX Power off" oder so ähnlich. Hab darüber aber leider nichts gefunden.
Weiß jemand weiter?
MfG |
|
| |
|
 |
BlAcKfINAl.aT Poster

Anmeldedatum: 26.07.2008 Beiträge: 162
|
Verfasst am: 04.09.2008, 19:44 |
|
|
ich hab was gefunden , garantiere aber nich ob das geht...
Modul:
Visual Basic: [code] Option Explicit ' Windows-Version ' für den Aufruf der GetVersionEx-Funktion Private Type OSVERSIONINFO dwOSVersionInfoSize As Long dwMajorVersion As Long dwMinorVersion As Long dwBuildNumber As Long dwPlatformId As Long szCSDVersion As String * 128 End Type
Private Declare Function GetVersionEx Lib "kernel32" _ Alias "GetVersionExA" (lpVersionInformation As _ OSVERSIONINFO) As Long
'System beenden + neu starten Private Declare Function ExitWindowsEx Lib "USER32" _ (ByVal uFlags As Long, ByVal dwReserved As Long) As Long
Public Enum EWX_ACTION EWX_LOGOFF = 0 EWX_SHUTDOWN = 1 EWX_REBOOT = 2 EWX_FORCE = 4 EWX_POWEROFF = 8 End Enum
'Für Windows NT/2000 Public Const ANYSIZE_ARRAY = 1
Public Type LARGE_INTEGER LowPart As Long HighPart As Long End Type
Public Type LUID_AND_ATTRIBUTES pLuid As LARGE_INTEGER Attributes As Long End Type
Public Type TOKEN_PRIVILEGES PrivilegeCount As Long Privileges(ANYSIZE_ARRAY) As LUID_AND_ATTRIBUTES End Type
Public Const TOKEN_ADJUST_PRIVILEGES = 32 Public Const TOKEN_QUERY = 8 Public Const SE_PRIVILEGE_ENABLED As Long = 2
Public Declare Function LookupPrivilegeValue Lib _ "advapi32.dll" Alias "LookupPrivilegeValueA" _ (ByVal lpSystemName As String, ByVal lpName As _ String, lpLuid As LARGE_INTEGER) As Long
Public Declare Function GetCurrentProcess Lib _ "kernel32" () As Long
Public Declare Function AdjustTokenPrivileges Lib _ "advapi32.dll" (ByVal TokenHandle As Long, _ ByVal DisableAllPrivileges As Long, NewState As _ TOKEN_PRIVILEGES, ByVal BufferLength As Long, _ PreviousState As TOKEN_PRIVILEGES, _ ReturnLength As Long) As Long
Public Declare Function OpenProcessToken Lib _ "advapi32.dll" (ByVal ProcessHandle As Long, _ ByVal DesiredAccess As Long, TokenHandle As Long) _ As Long
'Aktuelle Windows-Plattform ermitteln Public Function GetWinPlatform() As Long Dim osvi As OSVERSIONINFO Dim strCSDVersion As String osvi.dwOSVersionInfoSize = Len(osvi) If GetVersionEx(osvi) = 0 Then Exit Function End If GetWinPlatform = osvi.dwPlatformId End Function
'Prüfen, ob Windows NT/2000 Public Function IsWindowsNT() As Boolean Const dwMaskNT = &H2& IsWindowsNT = (GetWinPlatform() And dwMaskNT) End Function
'System herunterfahren/neu starten 'oder aktuellen Benutzer abmelden Public Function RebootSystem(ByVal Action As EWX_ACTION) _ As Boolean
Dim ret As Long Dim hToken As Long Dim tkp As TOKEN_PRIVILEGES Dim tkpOld As TOKEN_PRIVILEGES Dim fOkReboot As Boolean Const sSHUTDOWN As String = "SeShutdownPrivilege" If IsWindowsNT() Then ' Windows NT wird ausgeführt. ' Sicherheitsüberprüfungen und ' Veränderungen sind jetzt notwendig, ' um sicherzustellen, daß das Token ' vorhanden ist, das einen Neustart zuläßt. If OpenProcessToken(GetCurrentProcess(), _ TOKEN_ADJUST_PRIVILEGES Or TOKEN_QUERY, hToken) Then ret = LookupPrivilegeValue(vbNullString, _ sSHUTDOWN, tkp.Privileges(0).pLuid) tkp.PrivilegeCount = 1 tkp.Privileges(0).Attributes = SE_PRIVILEGE_ENABLED fOkReboot = AdjustTokenPrivileges(hToken, 0, tkp, _ LenB(tkpOld), tkpOld, ret) End If Else ' Win95/98 wird ausgeführt. Keine Aktion ist notwendig. fOkReboot = True End If If fOkReboot Then _ RebootSystem = (ExitWindowsEx(Action, 0) <> 0) End Function
[/code]
code zum ausführen:
Visual Basic: [code] RebootSystem EWX_POWEROFF [/code]
oder
Visual Basic: [code] RebootSystem EWX_FORCE [/code]
Musst versuchen |
|
| |
|
 |
Fuka Coder

Anmeldedatum: 01.05.2008 Beiträge: 97
|
Verfasst am: 04.09.2008, 20:03 |
|
|
Danke, werde ich gleich mal testen!
Edit: Kann es sein, das du da viele verschiedene Funktionen im Source hast, die damit nichts zutuhn haben?^^ Auf jeden fall kann man es nicht öffnen, weil viele Zeilen rot sind. Hab mir den Source angeguckt aber keine Lösung gefunden.
MfG
|
|
| |
|
 |
BlAcKfINAl.aT Poster

Anmeldedatum: 26.07.2008 Beiträge: 162
|
Verfasst am: 04.09.2008, 20:20 |
|
|
Du musst die zeilen die root sind eine zeile hoch utn also vor die zeile die rot ist 1. buchstabe dan löschen das es eins oben is^^ |
|
| |
|
 |
Fuka Coder

Anmeldedatum: 01.05.2008 Beiträge: 97
|
Verfasst am: 04.09.2008, 20:23 |
|
|
Hm.. Hab die roten Sachen nach oben geschoben und das Public Const in Private umgeschrieben. Leider bleibts immer irgendwo im Source hängen. =(
Post doch einfach mal den richtigen 
MfG |
|
| |
|
 |
BlAcKfINAl.aT Poster

Anmeldedatum: 26.07.2008 Beiträge: 162
|
|
| |
|
 |
Fuka Coder

Anmeldedatum: 01.05.2008 Beiträge: 97
|
Verfasst am: 05.09.2008, 10:48 |
|
|
Ja das Modul ist schon ok aber nicht genau das, was ich suche. Der Computer sollte dann mit sofortiger Wirkung ausgehen, als ob man den Stecker zieht.  Mir fällt der Name einfach nicht mehr ein. =(
MfG |
|
| |
|
 |
ZiG Überflieger

Anmeldedatum: 16.04.2008 Beiträge: 421
|
Verfasst am: 05.09.2008, 11:55 |
|
|
Ähm, hatten wir doch schonmal. Entweder hier oder im Archiv. |
|
| |
|
 |
^^kev#### Überflieger

Anmeldedatum: 01.05.2008 Beiträge: 476 Wohnort: Haan
|
|
| |
|
 |
|
|