C# выключение компа

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by brasco2k, 27 Jan 2008.

  1. brasco2k

    brasco2k Elder - Старейшина

    Joined:
    23 Nov 2007
    Messages:
    258
    Likes Received:
    91
    Reputations:
    0
    Подскажите плз какой командой вырубить комп в C# или класс
     
    1 person likes this.
  2. Delimiter

    Delimiter Banned

    Joined:
    8 Apr 2005
    Messages:
    317
    Likes Received:
    173
    Reputations:
    12
    8)) это WInAPI а не внутренняя команда языка!
    команды WINAPI подключаются на этапе линковки!
    например
    Code:
      ExitWindowsEx(EWX_REBOOT | EWX_FORCE,0);
                  ^        ^        ^
                  |        |        - не задавать вопросов
                  |        -рестарт  если выключить то EWX_SHUTDOWN
                   -суфикс WinApiшных команд
     
    не думаю что в шарке намного изменится следующий код
    Code:
      	                HANDLE hToken; 
    	                TOKEN_PRIVILEGES tkp; 
    	                // Get a token for this process. 
    	                if (OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken)) 
    					{
    	                  LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME,&tkp.Privileges[0].Luid); 
    	                  tkp.PrivilegeCount = 1;  // one privilege to set    
    	                  tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; 
    	                  // Get the shutdown privilege for this process. 
    	                  AdjustTokenPrivileges(hToken,FALSE,&tkp,0,(PTOKEN_PRIVILEGES)NULL, 0); 
    	                  // Cannot test the return value of AdjustTokenPrivileges. 
    	                 if (GetLastError() == ERROR_SUCCESS) 
    		 	           // Shut down the system and force all applications to close.
    	                  ExitWindowsEx(EWX_REBOOT | EWX_FORCE,0);
    					}
    
    ... так как от того что вы используете шарк вы не перестанете использовать user32.dll а 80% вышеуказанных функций линкуются из user32.lib
     
    #2 Delimiter, 27 Jan 2008
    Last edited: 27 Jan 2008
  3. nerezus

    nerezus Banned

    Joined:
    12 Aug 2004
    Messages:
    3,191
    Likes Received:
    727
    Reputations:
    266
    http://www.google.com/search?q=rundll+shutdown
     
    2 people like this.
  4. Forcer

    Forcer Elder - Старейшина

    Joined:
    12 Apr 2007
    Messages:
    321
    Likes Received:
    98
    Reputations:
    12
    В Си есть функция system() из библиотеки <stdlib.h> - выполнение системных команд. С помощью неё тоже можно выключить комп. Шарп не знаю, но думаю тоже что-нибудь подобное есть. Как некоторый кроссплатформенный вариант.
     
  5. brasco2k

    brasco2k Elder - Старейшина

    Joined:
    23 Nov 2007
    Messages:
    258
    Likes Received:
    91
    Reputations:
    0
    Syntax

    Usage: shutdown [-i | -l | -s | -r | -a] [-f] [-m \\computername] [-t xx] [-c "comment"] [-d up:xx:yy]No args Display this message (same as -?)
    -i Display GUI interface, must be the first option
    -l Log off (cannot be used with -m option)
    -s Shutdown the computer
    -r Shutdown and restart the computer
    -a Abort a system shutdown
    -m \\computername Remote computer to shutdown/restart/abort
    -t xx Set timeout for shutdown to xx seconds
    -c "comment" Shutdown comment (maximum of 127 characters)
    -f Forces running applications to close without warning
    -d [p]:xx:yy The reason code for the shutdown
    u is the user code
    p is a planned shutdown code
    xx is the major reason code (positive integer less than 256)
    yy is the minor reason code (positive integer less than 65536)

    спс нашел если комунить нужно
     
  6. sandalwood

    sandalwood Banned

    Joined:
    13 Jan 2008
    Messages:
    19
    Likes Received:
    10
    Reputations:
    4
    в тему http://bugtraq.ru/library/internals/shut.html
     
  7. brasco2k

    brasco2k Elder - Старейшина

    Joined:
    23 Nov 2007
    Messages:
    258
    Likes Received:
    91
    Reputations:
    0
    Я про C# спрашивал
     
  8. Jes

    Jes Elder - Старейшина

    Joined:
    16 Apr 2007
    Messages:
    370
    Likes Received:
    391
    Reputations:
    34
    зххх ...
    Ну вот тебе на C# ...
    Code:
      System.Diagnostics.Process p = new System.Diagnostics.Process();
                p.StartInfo.FileName = "cmd.exe";
                p.StartInfo.Arguments = "/c shutdown -s";
                p.Start();
     
  9. sandalwood

    sandalwood Banned

    Joined:
    13 Jan 2008
    Messages:
    19
    Likes Received:
    10
    Reputations:
    4
    да хоть и на ассемблере, какая разница. Там же апи
     
  10. nerezus

    nerezus Banned

    Joined:
    12 Aug 2004
    Messages:
    3,191
    Likes Received:
    727
    Reputations:
    266
    Вот именно использование апи в шарпе - путь через жопу. Ну тут можно и с помощью них, т.к. задача такая.
     
    1 person likes this.
  11. brasco2k

    brasco2k Elder - Старейшина

    Joined:
    23 Nov 2007
    Messages:
    258
    Likes Received:
    91
    Reputations:
    0
    ДЕЛО однозначно!
    правда вырубается долго))
    ну вобщем то что хотел