C#完成txt定位指定行完全實例。本站提示廣大學習愛好者:(C#完成txt定位指定行完全實例)文章只能為提供參考,不一定能成為您想要的結果。以下是C#完成txt定位指定行完全實例正文
本文實例講述了C#完成txt定位指定行的辦法。分享給年夜家供年夜家參考。詳細完成辦法以下:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Diagnostics; using System.IO; using System.Runtime.InteropServices; namespace WfpApp { class PositionNotepad { [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> public static bool PositionNotePad(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); //等一秒,等文本翻開,核心去到notepad p.WaitForInputIdle(1000); 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; } } }
挪用:
string path = @"C:\Users\ZKK\Desktop\English.txt"; bool res = PositionNotepad.PositionNotePad(path, "5");
願望本文所述對年夜家的C#法式設計有所贊助。