2019年1月30日 星期三

C#獲取滑鼠當下位置

方法1--直接獲取

//取得目前滑鼠位置
Console.WriteLine("x:" + System.Windows.Forms.Cursor.Position.X);
Console.WriteLine("y:" + System.Windows.Forms.Cursor.Position.Y);


方法2--透過事件新增

private void pictureBox2_MouseMove(object sender, MouseEventArgs e)
{
    label2.Text = "x:" + e.Location.X;
    label3.Text = "y:" + e.Location.Y;
}


測試環境:c#2015

2019年1月13日 星期日

[C#]外部程式 縮小 最大化 隱藏

需要 using System.Diagnostics;

string FileName = "123.exe"


----------------------程式碼-------------------------------------------

 Process pro = new Process();
 pro.StartInfo.FileName = FileName;
 pro.StartInfo.Arguments = Arguments;
 pro.StartInfo.CreateNoWindow = true;

pro.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Minimized;//縮小(則一使用)
pro.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Maximized;//最大化(則一使用)
pro.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;//隱藏(則一使用)
 pro.Start();

2019年1月11日 星期五

[C#]開啟外部執行檔/關閉外部執行檔

兩個函式宣告,需要 using System.Diagnostics;

----------------------使用方式-------------------------------------------
OpenPress("AAA.exe"" ");//開啟外部檔案
ClosePress("AAA.exe");//關閉外部檔案
----------------------以下為函式-------------------------------------------

public static bool OpenPress(string FileName, string Arguments)//開啟外部檔案
       {
           Process pro = new Process();
           if(System.IO.File.Exists(FileName))
           {
               pro.StartInfo.FileName = FileName;
               pro.StartInfo.Arguments = Arguments;
               pro.StartInfo.CreateNoWindow = true;
               pro.StartInfo.CreateNoWindow = true;
               pro.StartInfo.UseShellExecute = false;
               pro.StartInfo.RedirectStandardInput = true;
               pro.StartInfo.RedirectStandardOutput = true;
               pro.StartInfo.CreateNoWindow = true;               
               pro.Start();
               return true;
           }
           return false;
       }
public static bool ClosePress(string FileName)//關閉外部檔案
       {
           Process[] proa = Process.GetProcesses();//獲取任務管理器中所有進程
           foreach(Process p1 in proa)
           {
               try
               {
                   string processName = p1.ProcessName.ToLower().Trim();
                   if(processName == FileName)
                   {
                       p1.WaitForExit(1000);                       
                       p1.Kill();
                       p1.CloseMainWindow();
                   }
               }
               catch { return false; }
           }
           return true;
       }
----------分隔線 說明--------------------

1.前言
透過程式控制,可在背景執行cmd.exe的命令。

2.說明
程式碼,提供兩種方式執行命令:

//程式碼最少,但是會跳出DOS視窗,閃一下後自行關閉
System.Diagnostics.Process.Start("cmd.exe", @"/c dir");

//在背景執行,無DOS視窗閃爍問題
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.FileName = "cmd.exe";
p.StartInfo.Arguments = @"/c dir";
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardError = true;
p.StartInfo.CreateNoWindow = true;
p.Start();

C#字串處理方法:字串空格替換

處理String 常常會遇到文字或是有空格需要處理替換,
最原始的方式是轉成char做比對處理判斷,再進行替換。

c#中提供一個函數可以快速取代,直接用srtring 就可以處理。

函式為:  Replace("要修改的字","要更換的字");


for example

string a="ABC D E F G";

string b=a.Replace(" ","+");

結果 : b = ABC+D+E+F+G

進階說明 如果要處理多個字串 可以 b=a.Replace(" ","+").Replace("\r\n","");

[SQL]顯示千分位與小數顯示

  CONVERT ( data_type [ ( length ) ] , expression [ , style ] ) CONVERT style參數說明 1  (expression為 money 或 smallmoney型別): 0 : 預設,保留小數位後兩位,並四捨...