麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > C# > 正文

C#定位txt指定行的方法小例子

2020-01-24 03:26:06
字體:
來源:轉載
供稿:網友

復制代碼 代碼如下:

            [DllImport("User32.dll", EntryPoint = "FindWindow")]
            private static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
            [DllImport("user32.dll")]
            static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpszClass, string lpszWindow);
            [DllImport("user32.dll")]
            static extern bool SetForegroundWindow(IntPtr hWnd);
            ///<summary>
            /// 定位到txt文件指定行
            ///</summary>
            ///<param name="strFullName">文件路徑</param>
            ///<param name="strRow">指定行</param>
            ///<returns>定位是否成功</returns>
            private bool LocateNotePad(string strFullName, string strRow)
            {
                int iRow;
                int.TryParse(strRow, out iRow);
                if (iRow <= 0)
                {
                    return false;
                }
                IntPtr hwnd = FindWindow("Notepad", string.Format("{0} - 記事本", Path.GetFileName(strFullName)));//查看當前文件是否已打開
                if (hwnd.ToInt32() == 0)
                {
                    Process p = Process.Start(@"notepad.exe",strFullName);
                    p.WaitForInputIdle(1000);  //等一秒,等文本打開,焦點去到notepad
                    System.Windows.Forms.SendKeys.SendWait("{DOWN " + (iRow - 1) + "}");
                    System.Windows.Forms.SendKeys.SendWait("{HOME}"); //行首
                    System.Windows.Forms.SendKeys.SendWait("+{END}"); //選中當前行
                    return true;
                }
                else
                {
                    hwnd = FindWindowEx(hwnd, IntPtr.Zero, "Edit", string.Empty);
                    if (hwnd.ToInt32() == 0) return false;
                    else
                    {
                        SetForegroundWindow(hwnd);
                        System.Windows.Forms.SendKeys.SendWait("^{HOME}");//將光標定位到首行
                        System.Windows.Forms.SendKeys.SendWait("{DOWN " + (iRow - 1) + "}"); //
                        System.Windows.Forms.SendKeys.SendWait("{HOME}"); //行首
                        System.Windows.Forms.SendKeys.SendWait("+{END}"); //選中當前行
                    }
                }
                return true;
            }


調用代碼 LocateNotePad("D://test.txt","3");

代碼很簡單,通過FindWindow,FindWindowEx,SetForegroundWindow三個API進行獲取句柄并設置進程當前以及發送系統命令操作,利用winform中的SendKeys發送鍵盤命令達到定位的目的.

PS:此命令需要增加 System.Windows.Forms,在引用處添加..希望對各位有幫助,也希望能得到各位朋友的指點改進,謝謝

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 久久久久久久国产a∨ | 亚洲精品7777 | h网站在线观看 | 午夜精品福利影院 | 黄污网站在线观看 | 国产精品爱久久久久久久 | 日本精品二区 | 午夜视频大全 | 免费色片 | 91精品国啪老师啪 | 蜜桃视频在线观看免费 | 国产88久久久国产精品免费二区 | 激情小说区 | 久久精品国产99国产精品澳门 | 麻豆国产网站 | 日本中文字幕久久 | 91精品国产日韩91久久久久久360 | 成人毛片在线 | 国产一及毛片 | 99激情| 粉色视频污| 亚洲国产视频网 | 亚洲第五色综合网 | 嫩草91在线 | 国产片91 | 亚洲片在线 | 国产伦久视频免费观看视频 | 免费黄色大片网站 | 一级免费a| 欧美一级小视频 | 日韩av影片在线观看 | 成人激情视频网站 | 国产亚洲精品精 | 成人午夜免费国产 | 久久久久国产成人精品亚洲午夜 | 亚洲九草| 色网站在线免费观看 | 精品乱码久久久久 | 久久精品中文字幕一区 | 免费国产视频在线观看 | 中国免费一级毛片 |