.Net 計算標準差

只需將數字存入 List 帶入 Function 即可計算出結果。

        /// <summary> 
        /// 標準差(StandardDifference) 
        /// </summary> 
        /// <param name="val"></param> 
        /// <returns></returns> 
        public double SD(List<double> val)
        {
            if (val.Count > 1)
            {
                double avg = AVG(val);
                double _result = (from a in val select Math.Pow(a - avg, 2)).Sum();
                if (avg > 0 && _result > 0)
                {
                    double _sum = _result / (double)(val.Count - 1);
                    double _Sqrt = Math.Sqrt(_sum);
                    return _Sqrt;
                }
                else
                    return 0;
            }
            else if (val.Count == 1)
            {
                return 0;
            }
            else
            {
                return 0;
            }
        }

  2012-11-11      ez      .NET
.Net 利用 taskkill 或 tskill 關閉指定軟體

Windows 7 含以上支援 taskkill 指令,Windows XP 只支援 tskill 指令,所以這邊偷懶利用 try cache,當 taskkill 無法使用時換成 tskill。

利用指令關閉 iexplore.exe:

while (Process.GetProcessesByName("iexplore").Length > 0)
{
     Console.WriteLine("關閉瀏覽器");
     try {
          Process P = new Process();
          P.StartInfo.FileName = "taskkill";
          P.StartInfo.Arguments = "/F /IM iexplore.exe";
          P.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
          P.StartInfo.CreateNoWindow = true;
          P.Start();
          P.WaitForExit();
     }
     catch {
          Process P = new Process();
          P.StartInfo.FileName = "tskill";
          P.StartInfo.Arguments = "iexplore.exe /A /V";
          P.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
          P.StartInfo.CreateNoWindow = true;
          P.Start();
          P.WaitForExit();
     }
}

  2012-11-11      ez      .NET
.Net 序列化 及 反序列化 轉為 XML

首先加入Function

        /// <summary>
        /// 反序列化
        /// </summary>
        /// <param name="data"></param>
        /// <returns></returns>
        static T DoDeserialize<T>(string s)
        {
            XmlDocument XD = new XmlDocument();
            try
            {
                XD.LoadXml(s);
                XmlNodeReader XNR = new XmlNodeReader(XD.DocumentElement);
                XmlSerializer XS = new XmlSerializer(typeof(T));
                object obj = XS.Deserialize(XNR);
                return (T)obj;
            }
            catch
            {
                return default(T);
            }
        }
        /// <summary>
        /// 序列化
        /// </summary>
        /// <param name="obj"></param>
        /// <returns></returns>
        static string DoSerialize(object o)
        {
            XmlSerializer XS = new XmlSerializer(o.GetType());
            StringBuilder SB = new StringBuilder();
            StringWriter SW = new StringWriter(SB);
            XS.Serialize(SW, o);
            return SB.ToString();
        }

  2012-11-11      ez      .NET
.Net Console 視窗 最上層顯示

可以利用 Win32 API 控制 Console 視窗 最大化 或 最小化。

[DllImport("user32.dll", SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
private static extern bool SetWindowPos(
IntPtr hWnd,
IntPtr hWndInsertAfter,
int x,
int y,
int cx,
int cy,
int uFlags);
private const int HWND_TOPMOST = -1;
private const int SWP_NOMOVE = 0x0002;
private const int SWP_NOSIZE = 0x0001;

要控制視窗時只要呼叫:

IntPtr hWnd = Process.GetCurrentProcess().MainWindowHandle;
SetWindowPos(hWnd, new IntPtr(HWND_TOPMOST), 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);

  2012-11-11      ez      .NET
.Net 指定程式 視窗 最大化 最小化

可以利用 Win32 API 控制 Console 視窗 最大化 或 最小化。

[DllImport("User32")]
private static extern int ShowWindow(int hwnd, int nCmdShow);
private enum CommandShow : int { SW_HIDE = 0, SW_SHOWNORMAL = 1, SW_NORMAL = 1, SW_SHOWMINIMIZED = 2, SW_SHOWMAXIMIZED = 3, SW_MAXIMIZE = 3, SW_SHOWNOACTIVATE = 4, SW_SHOW = 5, SW_MINIMIZE = 6, SW_SHOWMINNOACTIVE = 7, SW_SHOWNA = 8, SW_RESTORE = 9, SW_SHOWDEFAULT = 10, SW_FORCEMINIMIZE = 11, SW_MAX = 11 } ;

將 iexplore.exe 視窗最大化:

Process[] p = Process.GetProcessesByName("iexplore");
if (p.Length > 0)
{
    for (int i = 0; i < p.Length; i++)
    {
        int hwnd = p[i].MainWindowHandle.ToInt32();
        ShowWindow(hwnd, (int)CommandShow.SW_NORMAL);
    }
}
p = null;

  2012-11-11      ez      .NET
.Net Console 視窗 最大化 最小化

可以利用 Win32 API 控制 Console 視窗 最大化 或 最小化。

[DllImport("user32.dll", SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
private static extern bool SetWindowPos(
IntPtr hWnd,
IntPtr hWndInsertAfter,
int x,
int y,
int cx,
int cy,
int uFlags);
private const int HWND_TOPMOST = -1;
private const int SWP_NOMOVE = 0x0002;
private const int SWP_NOSIZE = 0x0001;

要控制視窗時只要呼叫:

ShowWindow(ThisConsole, MAXIMIZE);

  2012-11-11      ez      .NET
Envision H2776MHAL 27型 VA寬螢幕 開箱

已經用很久了都沒有時間 PO 出來,用起來感覺便宜又好用,壞處是有點太亮,不過久了就習慣了。

型號 H2776MHAL 面板尺寸 27" 面板比率 16:9 反應時間 12ms 最佳解析度 1920x1080 對比率 50M:1 亮度 300cd/m² 顯示色度 16.7M 可視角度 178/178 可視面積 686 mm 點距 0.311 mm 輸入信號 Analog, HDMI 信號輸入端子 D-Sub/HDMI*2 喇叭 2W*2 高頻寬數位內容保護 YES 輸入電壓 100-240VAC, 50/60Hz 電源供應器 build in 開機模式耗電量 (W) ≦45 待機模式耗電量 (W) ≦1 壁掛規格 VESA 100 x 100 mm 顏色 Black 外觀尺寸 (W×H×D) mm 645.26 x 441.08 x 249.37 包裝尺寸 (W×H×D) mm 714 x 520 x 141 重量 (淨重/ 毛重) kg 5.49kg / 7.33kg 隨插即用 DDC CI or VESA DDC2B™ OSD按鍵控制選項 Auto, Left, Right, Menu, Power 使用語言介面 英文,德文,法文,意大利文,西班牙文,瑞典文,波蘭文,捷克文,俄羅斯文,葡萄牙文,韓文,繁體中文,簡體中文,日文 安規規範 cTUVus, FCC, CE, EPA, CCC, CB, RoHS, Win7, BSMI 適用情境 標準, 文字, 網路, 遊戲, 電影, 運動 畫面設定 保固 產品三年保固期間:提供(零件、檢修工資)免費保固服務。 三年免費到府收送(需有必要維修),離島地區和偏遠地區除外。 保固範圍指正常狀況下無法使用,及製造、材質、組裝上之瑕疵,概屬保固範圍內。
 
外盒包裝,還蠻簡潔的,箱子不大!差不多就是螢幕大小,再塞幾個保麗龍。


  2012-10-30      ez      開箱