a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > 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,在引用處添加..希望對各位有幫助,也希望能得到各位朋友的指點改進,謝謝

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 久久久久av | 久久在线视频 | av免费播放 | 久久精品成人免费视频 | 在线观看国产小视频 | 成人亚洲视频在线观看 | 欧美国产精品一区 | 日韩一二三区视频 | 婷婷精品久久久久久久久久不卡 | 日韩在线播放欧美字幕 | 免费看国产片在线观看 | 欧美日韩电影一区二区三区 | 国产精品久久久久久久久久久久久久 | 日韩精品一区在线视频 | 日本xxxwww | 欧美日本在线播放 | 一级黄色毛片子 | 久久久久久久久久久久久久久 | 91亚洲视频 | 久久夜夜| 情五月| 久久av黄色 | 午夜日韩在线观看 | 玖玖玖视频| 日韩一区二区不卡 | 日本一区二区视频在线 | 亚洲a在线观看 | 久久久.com| 欧美高清视频在线观看 | 久久精品电影 | 久久99精品国产91久久来源 | 精品久久久久久久人人人人传媒 | 亚洲国产成人精品女人 | 国产乱a视频在线 | 国产黄色av | 巨骚综合 | 亚洲午夜性视频 | 国产在线日韩 | 久久国产精品一区二区 | 农村少妇kkkk7777 | 欧美成人一区二区 |