C# 強制關閉當前程序進程(完全Kill掉不留痕跡),cf
C# 強制關閉當前程序進程(完全Kill掉不留痕跡)
C# 強制關閉當前程序進程(完全Kill掉不留痕跡)
C#代碼
- /// <summary>
- /// 運行DOS命令
- /// DOS關閉進程命令(ntsd -c q -p PID )PID為進程的ID
- /// </summary>
- /// <param name="command"></param>
- /// <returns></returns>
- public static string RunCmd(string command)
- {
- //實例一個Process類,啟動一個獨立進程
- System.Diagnostics.Process p = new System.Diagnostics.Process();
-
- //Process類有一個StartInfo屬性,這個是ProcessStartInfo類,包括了一些屬性和方法,下面我們用到了他的幾個屬性:
-
- p.StartInfo.FileName = "cmd.exe"; //設定程序名
- p.StartInfo.Arguments = "/c " + command; //設定程式執行參數
- p.StartInfo.UseShellExecute = false; //關閉Shell的使用
- p.StartInfo.RedirectStandardInput = true; //重定向標準輸入
- p.StartInfo.RedirectStandardOutput = true; //重定向標準輸出
- p.StartInfo.RedirectStandardError = true; //重定向錯誤輸出
- p.StartInfo.CreateNoWindow = true; //設置不顯示窗口
-
- p.Start(); //啟動
-
- //p.StandardInput.WriteLine(command); //也可以用這種方式輸入要執行的命令
- //p.StandardInput.WriteLine("exit"); //不過要記得加上Exit要不然下一行程式執行的時候會當機
-
- return p.StandardOutput.ReadToEnd(); //從輸出流取得命令執行結果
-
- }
在Program.cs加上如下
C#代碼
- static class Program
- {
- /// <summary>
- /// 應用程序的主入口點。
- /// </summary>
- [STAThread]
- static void Main()
- {
- Application.EnableVisualStyles();
- Application.SetCompatibleTextRenderingDefault(false);
- Application.Run(new MainForm());
- //強制關閉進程
- string exeName = System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName;
- string[] exeArray = exeName.Split('\\');
-
- FunctionClass.RunCmd("taskkill /im " + exeArray[exeArray.Length-1] + " /f ");
- }
- }
C語言中 ^怎使用
a1 = 0x01; //0000 0001
a2 = 0x00; //0000 0000
a3 = 0x03; //0000 0011
a4 = 0x02; //0000 0010
b1 = a1 ^ a2; //0000 0001
b2 = a1 ^ a3; //0000 0010
b3 = a1 ^ a4; //0000 0011
^異或運算符,位值相同為0,不同為1,見上示例.
//
簡單實際問題舉例:
======\=======\=======
======a=======b=======
上面是2條電路,2個開關分別為a和b,打開狀態:\[1],關閉狀態:/[0].
若同時打開或者關閉,兩條電路均不通.
若a打開[1],b關閉[0],電路1通電
======\=======/=======
若a關閉[0],b打開[1],電路2通電
======/=======\=======
綜上,電路在a,b狀態相同時不通[0],在a,b不同時通電[1].
C語言&& || !分別是什
&是取址運算符,作用是提取一個變量的地址。
比如你定義了一個變量,那麼在編譯時,系統就會在內存中分配一個空間。
而這個空間在內存中的位置就是它的地址。&就提取它的地址。
e.g int a;在編譯時就給它分配一個地址,比如是2000;&a就是2000。
假如先定義了一個整型指針變量p,p=&a;就是把a的地址2000賦給p。運行後p=2000。
又如scanf("%d",&a);當你輸入3時,它會先根據&a知道a的地址,由地址找到a在內存中的空間,再把3寫入這個空間。
*是指針運算符,作用與&相反,它是根據變量的地址取出變量的值。
比如,*a的值就是變量a的值3。
下面是定義和聲明中用到指針的小結
int *p; 定義一個指向整型數據的指針。
int *p[n]; 定義指針數組p,它由n個指向整型數據的指針元素組成。
int (*p)[n]; p為指向含n個元素的一維數組的指針變量。
int *p(); p為返回一個指針的函數,該指針指向整型數據。
int (*p)(); p為指向函數的指針,該函數返回一個整型值
int **p; p是一個指針變量,它指向一個指向整型數據的指針變量。
如果你想系統的了解建議你可以看看譚浩強的《c程序設計》(第三版)這本書通俗易懂。是學習c語言不錯的教材。