myGully.com

myGully.com (https://mygully.com/index.php)
-   Programmierung (https://mygully.com/forumdisplay.php?f=67)
-   -   C# Computer herunterfahren (https://mygully.com/showthread.php?t=1949218)

Darren 02.12.09 18:25

C# Computer herunterfahren
 
weiß wemand von euch den code um den computer herunter zu fahren

einen code mit dem man die exe datai nicht mehr schließen kan (auf x drücken) nur durch eine passwort eingabe

und eine timer( noch 10,9,8........)

dake

manta656 02.12.09 20:17

also ein Timer , wirst du sehr leicht hinbekommen ... Dass man das Programm nicht schliessen kann , wird allerdings schwieriger , da ich nicht genau weiss , wie man es vor den Prozessen im Taskmanager versteckt ;) Aber auf das X klicken , geht auch ganz leicht mit C# . Mit etwas erfahrung , kannst du das alleine hinbekommen
das ist eine möglichkeit zum hertunterfahren

hier musst du noch System.Diagnostics importieren also über den using befehl.
Code:

System.Diagnostics.Process.Start("cmd.exe /k shutdown -f -s");
oder

Code:

using System;
using System.Runtime.InteropServices;

namespace ShutDown
{
    class XPShutDown
    {
 [StructLayout(LayoutKind.Sequential, Pack=1)]
    internal struct TokPriv1Luid
 {
    public int Count;
    public long Luid;
    public int Attr;
 }

 [DllImport("kernel32.dll", ExactSpelling=true)]
 internal static extern IntPtr GetCurrentProcess();

 [DllImport("advapi32.dll", ExactSpelling=true, SetLastError=true)]
 internal static extern bool OpenProcessToken(IntPtr h, int acc, ref IntPtr phtok);

 [DllImport("advapi32.dll", SetLastError=true)]
 internal static extern bool LookupPrivilegeValue(string host, string name, ref long pluid );

 [DllImport("advapi32.dll", ExactSpelling=true, SetLastError=true)]
 internal static extern bool AdjustTokenPrivileges(IntPtr htok, bool disall, ref TokPriv1Luid newst, int len, IntPtr prev,IntPtr relen);

 [DllImport("user32.dll", ExactSpelling=true, SetLastError=true)]
 internal static extern bool ExitWindowsEx(int flg, int rea);

 internal const int SE_PRIVILEGE_ENABLED = 0x00000002;
 internal const int TOKEN_QUERY = 0x00000008;
 internal const int TOKEN_ADJUST_PRIVILEGES = 0x00000020;
 internal const string SE_SHUTDOWN_NAME = "SeShutdownPrivilege";
 internal const int EWX_LOGOFF = 0x00000000;
 internal const int EWX_SHUTDOWN = 0x00000001;
 internal const int EWX_REBOOT = 0x00000002;
 internal const int EWX_FORCE = 0x00000004;
 internal const int EWX_POWEROFF = 0x00000008;
 internal const int EWX_FORCEIFHUNG = 0x00000010;

 private static void XPRebootCommand(int flg)
 {
    bool ok;
    TokPriv1Luid tp;
    IntPtr hproc = GetCurrentProcess();
    IntPtr htok = IntPtr.Zero;
    ok = OpenProcessToken( hproc, TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, ref htok );
    tp.Count = 1;
    tp.Luid = 0;
    tp.Attr = SE_PRIVILEGE_ENABLED;
    ok = LookupPrivilegeValue( null, SE_SHUTDOWN_NAME, ref tp.Luid );
    ok = AdjustTokenPrivileges( htok, false, ref tp, 0, IntPtr.Zero, IntPtr.Zero );
    ok = ExitWindowsEx( flg, 0 );
 }

 static void Main()
 {
    XPRebootCommand(EWX_REBOOT + EWX_FORCE);
 }
    }
}

alles über google gefunden , der erste code , sieht mit plausiebel aus da er über die Konsole geht , der 2. könnte klappen , hab halt nicht mit C# gearbeitet ^^ also nicht so viel ^^

noch einen

Code:

using System.Runtime.InteropServices;

namespace ShutDown
{
class XPShutDown
{
[DllImport("user32.dll", ExactSpelling=true, SetLastError=true)]
internal static extern bool ExitWindowsEx(int flg, int rea);

internal const int EWX_LOGOFF = 0x00000000;
internal const int EWX_SHUTDOWN = 0x00000001;
internal const int EWX_REBOOT = 0x00000002;
internal const int EWX_FORCE = 0x00000004;
internal const int EWX_POWEROFF = 0x00000008;
internal const int EWX_FORCEIFHUNG = 0x00000010;
 ok = ExitWindowsEx( flg, 0 );
}

static void Main()
{
 ExitWindowsEx(EWX_REBOOT + EWX_FORCE, 0);
}
}
}

einer der 3 muss gehen ;)

nightmare1942 02.12.09 20:30

wenn du beim ersten noch "-t 60" dranhängst, fährt er sich in 60 sekunden runter!

gosha16 02.12.09 20:30

im Habo gibts ne Anleitung zum verstecken eines Prozesses. Das funktioniert auch mit C#

gosha16 03.12.09 13:58

shutdown exe kann ich aber deaktivieren oder nach dem start abschießen.

nooneonearth 11.12.09 15:26

Wenn du mit Visual Studio arbeitest, kannst du dir aus dem Server-Explorer den Unterknoten Servers -> COMPUTERNAME -> Management Classes -> Operating Systems -> @ (ggf. deutsch) auf bspw. eine Windows-Forms-Anwendung ziehen und dann die Methode Win32Shutdown(int, int) von der erstellten Instanz der generierten Klasse aufrufen, z.B.
Code:

operatingSystem01.Win32Shutdown(0, 0);


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:47 Uhr.

Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.