article search result of 'GetForegroundWindow' : 1

  1. 2011.01.31 [C#] 활성윈도우 이름 과 핸들 알아내기 와 익스플로러 주소값 알아내기 (194)

[C#] 활성윈도우 이름 과 핸들 알아내기 와 익스플로러 주소값 알아내기




using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

//[0] 필요한 DLL 추가 SHDocVw는 윈도우에서 찾기
using SHDocVw; 
using System.Runtime.InteropServices;

namespace LINK_HELPER2
{
    public partial class MainWindow : Window
    {
        TRACE.TraceDele trace = TRACE.getTrace;
        bool isCk = false;

        //[1] user32.dll 의 필요한 함수 선언
        [DllImport("user32.dll")]
        static extern int GetForegroundWindow();
        [DllImport("user32.dll")]
        static extern int GetWindowText(int hWnd, StringBuilder text, int count);


        public MainWindow()
        {
            InitializeComponent();

            //[2] 체크박스 이벤트 선언
            checkBox1.PreviewMouseDown += new MouseButtonEventHandler(checkBox1_MouseDown); 
            check();
        }
        //[3] 체크박스의 핸들러 [검색의 실행 / 대기]  
        void checkBox1_MouseDown(object sender, MouseButtonEventArgs e)
        {
            if (!checkBox1.IsChecked == true)
                isCk = true;
            else
                isCk = false;
        }


        //[4]체크 시작
        private void check()
        {
            System.Timers.Timer t = new System.Timers.Timer();
            t.Interval = 1000;
            t.Elapsed += (s, e) =>
            {
                if (isCk == true)
                {
                    ckIE();
                    getWindow();
                }
            };
            t.Start();
        }

        //[5] 윈도우의 타이틀 얻기
        void getWindow()
        {
            const int nChars = 256;
            int handle = 0;
            StringBuilder Buff = new StringBuilder(nChars);
            handle = GetForegroundWindow();
            if (GetWindowText(handle, Buff, nChars) > 0)
            {
                trace("caption ", Buff.ToString());
                trace("handle", handle.ToString());
            }
        }

        //[6] 익스플로러의 이름과 현제 URL 얻기
        private void ckIE()
        {
            foreach (InternetExplorer ie in new ShellWindowsClass())
            {
                trace(ie.Name, ie.LocationURL);
            }
            trace("--->");
        }
    }
}


@p.s
익스플로러에 검출에 "Windows 탐색기" 도 걸린다.
Yamecoder 야매코더_
C# 2011.01.31 22:40
Powerd by Tistory, designed by criuce
rss