Mega Code Archive

 
Categories / C# / Development Class
 

System Functions

// crudwork // Copyright 2004 by Steve T. Pham (http://www.crudwork.com) // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with This program.  If not, see <http://www.gnu.org/licenses/>. using System; using System.Collections.Generic; using System.Text; using System.Runtime.InteropServices; #if !SILVERLIGHT using System.Windows.Forms; #endif namespace crudwork.Utilities {     /// <summary>     /// System Functions: LogOff, Restart, Shutdown, Hibernate, Standby     /// </summary>     public static class SystemFunctions     {         [DllImport("user32.dll")]         private static extern void LockWorkStation();         [DllImport("user32.dll")]         private static extern int ExitWindowsEx(int uFlags, int dwReason);         private enum RecycleFlags : uint         {             SHERB_NOCONFIRMATION = 0x00000001,             SHERB_NOPROGRESSUI = 0x00000002,             SHERB_NOSOUND = 0x00000004         }         [DllImport("Shell32.dll", CharSet = CharSet.Unicode)]         private static extern uint SHEmptyRecycleBin(IntPtr hwnd, string pszRootPath, RecycleFlags dwFlags);         /// <summary>         /// Empty the System Recycle Bin         /// </summary>         public static uint EmptyRecycleBin()         {             return SHEmptyRecycleBin(IntPtr.Zero, null, 0);         }         /// <summary>         /// Lock the workstation         /// </summary>         public static void Lock()         {             LockWorkStation();         }         /// <summary>         /// Log off the user         /// </summary>         /// <param name="force"></param>         public static void LogOff(bool force)         {             ExitWindowsEx(force ? 4 : 0, 0);         }         /// <summary>         /// Reboot the system         /// </summary>         public static void Reboot()         {             ExitWindowsEx(2, 0);         }         /// <summary>         /// Shutdown the system         /// </summary>         public static void Shutdown()         {             ExitWindowsEx(1, 0);         } #if !SILVERLIGHT         /// <summary>         /// Put the system into hibernate mode         /// </summary>         public static void Hibernate()         {             Hibernate(true, true);         }         /// <summary>         /// Put the system into hibernate mode         /// </summary>         /// <param name="force"></param>         /// <param name="disableWakeupEvent"></param>         public static void Hibernate(bool force, bool disableWakeupEvent)         {             Application.SetSuspendState(PowerState.Hibernate, force, disableWakeupEvent);         }         /// <summary>         /// Put the system into standby mode         /// </summary>         public static void Standby()         {             Standby(true, true);         }         /// <summary>         /// Put the system into standby mode         /// </summary>         /// <param name="force"></param>         /// <param name="disableWakeupEvent"></param>         public static void Standby(bool force, bool disableWakeupEvent)         {             Application.SetSuspendState(PowerState.Suspend, force, disableWakeupEvent);         } #endif     } }