国产精品高清免费在线视频-亚洲精品午夜福利一区-91成人精品国产免费男男-噼里啪啦日本一区二区

上海啟嘟渡科技商貿(mào)有限公司
SEARCH

與我們合作

我們專注提供互聯(lián)網(wǎng)一站式服務(wù),助力企業(yè)品牌宣傳多平臺多途徑導流量。
主營業(yè)務(wù):網(wǎng)站建設(shè)、移動端微信小程序開發(fā)、營銷推廣、基礎(chǔ)網(wǎng)絡(luò)、品牌形象策劃等

您也可通過下列途徑與我們?nèi)〉寐?lián)系:

微 信: wxyunyingzhe

手 機: 15624122141

郵 箱:

如何用網(wǎng)頁語言編寫一個服務(wù)器關(guān)機程序

更新時間:2025-01-11 18:01:13

// 引入必要的命名空間

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

using System.Runtime.InteropServices; // 提供DllImport等特性,是P/Invoke的關(guān)鍵

namespace test

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

// 這個結(jié)構(gòu)體將會傳遞給API。使用StructLayout(...特性,確保其中的成員是按順序排列的,C#編譯器不會對其進行調(diào)整。

[StructLayout(LayoutKind.Sequential, Pack = 1)]

internal struct TokPriv1Luid

{

public int Count;

public long Luid;

public int Attr;

}

// 以下使用DllImport特性導入了所需的Windows API。

// 導入的方法必須是static extern的,并且沒有方法體。調(diào)用這些方法就相當于調(diào)用Windows API。

[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);

// 以下定義了在調(diào)用WinAPI時需要的常數(shù)。這些常數(shù)通常可以從Platform SDK的包含文件(頭文件)中找到

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;

// 通過調(diào)用WinAPI實現(xiàn)關(guān)機,主要代碼再最后一行ExitWindowsEx,這調(diào)用了同名的WinAPI,正好是關(guān)機用的。

private static void DoExitWin(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);

}

private void button1_Click(object sender, EventArgs e)

{

if (radioButton1.Checked == true)

{

DoExitWin(EWX_SHUTDOWN);

}

else

{

Application.Exit();

}

//MessageBox.Show("2");

}

}

}

多重隨機標簽

猜你喜歡文章

QQ客服 電話咨詢
亚洲精品一区二区三区免| 中文字幕日韩无套内射| 日本高清加勒比免费在线| 国产免费无遮挡精品视频 | 国产超薄黑色肉色丝袜| 国产欧美日本在线播放| 国产欧美另类激情久久久| 久热青青草视频在线观看| 国产精品不卡一区二区三区四区 | 日韩黄色一级片免费收看| 精品综合欧美一区二区三区 | 成人综合网视频在线观看| 欧美日韩亚洲国产精品| 我要看日本黄色小视频| 又黄又硬又爽又色的视频 | 黄色美女日本的美女日人| 久久香蕉综合网精品视频| 在线精品首页中文字幕亚洲 | 亚洲一区二区三区av高清| 国产精品免费福利在线| 中国一区二区三区人妻| 超薄丝袜足一区二区三区| 久久国产人妻一区二区免费| 麻豆91成人国产在线观看| 日韩精品综合福利在线观看| 最新午夜福利视频偷拍| 午夜久久久精品国产精品| 欧美一区二区在线日韩| 免费特黄欧美亚洲黄片| 午夜精品国产一区在线观看| 国产精品欧美激情在线播放| 亚洲乱码av中文一区二区三区| 精品女同在线一区二区| 日韩欧美国产高清在线| 欧美一级不卡视频在线观看| 搡老妇女老熟女一区二区| 国产高清视频一区不卡| 九九久久精品久久久精品| 国产免费人成视频尤物| 久久国内午夜福利直播| 国产精品不卡免费视频|