C#实现txt定位指定行完整实例
更新时间:2015年08月21日 12:30:59 作者:我心依旧
这篇文章主要介绍了C#实现txt定位指定行的方法,涉及C#针对文本文件进行光标定位的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
本文实例讲述了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#程序设计有所帮助。
相关文章
C#实现给DevExpress中GridView表格指定列添加进度条
这篇文章主要为大家详细介绍了如何利用C#实现给DevExpress中GridView表格指定列添加进度条显示效果,感兴趣的小伙伴可以尝试一下2022-06-06
如何利用Jenkins + TFS为.Net Core实现持续集成/部署详解
这篇文章主要给大家介绍了关于如何利用Jenkins + TFS为.Net Core实现持续集成/部署的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧2018-05-05
C#使用DevExpress中的SplashScreenManager控件实现启动闪屏和等待信息窗口
这篇文章介绍了C#使用DevExpress中的SplashScreenManager控件实现启动闪屏和等待信息窗口的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2022-05-05


最新评论