Einzelnen Beitrag anzeigen
Ungelesen 02.12.09, 20:17   #2
manta656
Profi
 
Benutzerbild von manta656
 
Registriert seit: Jan 2009
Beiträge: 1.435
Bedankt: 1.504
manta656 leckt gerne myGully Deckel in der Kanalisation! | 2541547 Respekt Punktemanta656 leckt gerne myGully Deckel in der Kanalisation! | 2541547 Respekt Punktemanta656 leckt gerne myGully Deckel in der Kanalisation! | 2541547 Respekt Punktemanta656 leckt gerne myGully Deckel in der Kanalisation! | 2541547 Respekt Punktemanta656 leckt gerne myGully Deckel in der Kanalisation! | 2541547 Respekt Punktemanta656 leckt gerne myGully Deckel in der Kanalisation! | 2541547 Respekt Punktemanta656 leckt gerne myGully Deckel in der Kanalisation! | 2541547 Respekt Punktemanta656 leckt gerne myGully Deckel in der Kanalisation! | 2541547 Respekt Punktemanta656 leckt gerne myGully Deckel in der Kanalisation! | 2541547 Respekt Punktemanta656 leckt gerne myGully Deckel in der Kanalisation! | 2541547 Respekt Punktemanta656 leckt gerne myGully Deckel in der Kanalisation! | 2541547 Respekt Punkte
Standard

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
__________________
[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]
[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]
[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]
manta656 ist offline   Mit Zitat antworten