欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2013年04月24日 15:43:59   作者:  
近日,在開發(fā)CAD插件時(shí)需要定位TXT文件指定行并將其選中,在網(wǎng)絡(luò)找了一下沒有找到現(xiàn)成的,自己根據(jù)外掛的思路編了一個(gè)定位程序,實(shí)現(xiàn)了定位功能..與大家分享

復(fù)制代碼 代碼如下:

            [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)));//查看當(dāng)前文件是否已打開
                if (hwnd.ToInt32() == 0)
                {
                    Process p = Process.Start(@"notepad.exe",strFullName);
                    p.WaitForInputIdle(1000);  //等一秒,等文本打開,焦點(diǎn)去到notepad
                    System.Windows.Forms.SendKeys.SendWait("{DOWN " + (iRow - 1) + "}");
                    System.Windows.Forms.SendKeys.SendWait("{HOME}"); //行首
                    System.Windows.Forms.SendKeys.SendWait("+{END}"); //選中當(dāng)前行
                    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}");//將光標(biāo)定位到首行
                        System.Windows.Forms.SendKeys.SendWait("{DOWN " + (iRow - 1) + "}"); //
                        System.Windows.Forms.SendKeys.SendWait("{HOME}"); //行首
                        System.Windows.Forms.SendKeys.SendWait("+{END}"); //選中當(dāng)前行
                    }
                }
                return true;
            }


調(diào)用代碼 LocateNotePad("D:\\test.txt","3");

代碼很簡(jiǎn)單,通過FindWindow,FindWindowEx,SetForegroundWindow三個(gè)API進(jìn)行獲取句柄并設(shè)置進(jìn)程當(dāng)前以及發(fā)送系統(tǒng)命令操作,利用winform中的SendKeys發(fā)送鍵盤命令達(dá)到定位的目的.

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

相關(guān)文章

  • 淺談C#中簡(jiǎn)單的異常引發(fā)與處理操作

    淺談C#中簡(jiǎn)單的異常引發(fā)與處理操作

    這篇文章主要介紹了C#中簡(jiǎn)單的異常引發(fā)與處理操作,講到了Exception類和try...catch及throw語(yǔ)句的基本使用,需要的朋友可以參考下
    2016-02-02
  • C#圖像處理之圖像平移的方法

    C#圖像處理之圖像平移的方法

    這篇文章主要介紹了C#圖像處理之圖像平移的方法,涉及C#操作圖形實(shí)現(xiàn)平移的相關(guān)技巧,需要的朋友可以參考下
    2015-04-04
  • C#數(shù)據(jù)導(dǎo)入到EXCEL的方法

    C#數(shù)據(jù)導(dǎo)入到EXCEL的方法

    今天小編就為大家分享一篇關(guān)于C#數(shù)據(jù)導(dǎo)入到EXCEL的方法,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • 深入理解C#序列化與反序列化的詳解

    深入理解C#序列化與反序列化的詳解

    本篇文章是對(duì)C#中序列化與反序列化進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • 使用C#調(diào)用系統(tǒng)API實(shí)現(xiàn)內(nèi)存注入的代碼

    使用C#調(diào)用系統(tǒng)API實(shí)現(xiàn)內(nèi)存注入的代碼

    使用C#調(diào)用系統(tǒng)API實(shí)現(xiàn)內(nèi)存注入的代碼,學(xué)習(xí)c#的朋友可以參考下。
    2011-06-06
  • C#中參數(shù)的傳遞方式詳解

    C#中參數(shù)的傳遞方式詳解

    本文詳細(xì)講解了C#中參數(shù)的傳遞方式,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-07-07
  • C#交錯(cuò)數(shù)組淺析

    C#交錯(cuò)數(shù)組淺析

    這里介紹C#交錯(cuò)數(shù)組,數(shù)組是具有同一類型的一組值,數(shù)組是引用類型的,因此存在內(nèi)存堆中。數(shù)組中的元素值可以在定義數(shù)組時(shí)賦予,也可以在定義數(shù)組后對(duì)單個(gè)元素進(jìn)行賦值
    2012-09-09
  • C#繪制橢圓的方法

    C#繪制橢圓的方法

    這篇文章主要介紹了C#繪制橢圓的方法,涉及C#圖形繪制的相關(guān)技巧,需要的朋友可以參考下
    2015-06-06
  • c#序列化詳解示例

    c#序列化詳解示例

    序列化是將對(duì)象狀態(tài)轉(zhuǎn)換為可保持或傳輸?shù)母袷降倪^程。與序列化相對(duì)的是反序列化,它將流轉(zhuǎn)換為對(duì)象。這兩個(gè)過程結(jié)合起來,可以輕松地存儲(chǔ)和傳輸數(shù)據(jù)
    2014-02-02
  • C#實(shí)現(xiàn)操作windows系統(tǒng)服務(wù)(service)的方法

    C#實(shí)現(xiàn)操作windows系統(tǒng)服務(wù)(service)的方法

    這篇文章主要介紹了C#實(shí)現(xiàn)操作windows系統(tǒng)服務(wù)(service)的方法,可實(shí)現(xiàn)系統(tǒng)服務(wù)的啟動(dòng)和停止功能,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-04-04

最新評(píng)論