C\#txt 지정 줄 을 찾 는 방법 작은 예

3032 단어 txt지정 줄

            [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 를 추가 하고 인용 부 에 추가 해 야 합 니 다.여러분 에 게 도움 이 되 고 여러분 의 조언 도 개선 되 기 를 바 랍 니 다.감사합니다.

좋은 웹페이지 즐겨찾기