zoukankan      html  css  js  c++  java
  • c# 测试通过

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
     
    using System.Text;
    using System.Text.RegularExpressions;
    using System.Diagnostics;
    using System.Threading;
     
    using System.Runtime.InteropServices;

    namespace WindowPosDemo
    {
        public struct WindowInfo
        {
            public IntPtr hWnd;
            public string szWindowName;
            public string szClassName;
        }
        class Program
        {
            [DllImport("shell32.dll")]
            public static extern int ShellExecute(IntPtr hwnd, StringBuilder lpszOp, StringBuilder lpszFile, StringBuilder lpszParams, StringBuilder lpszDir, int FsShowCmd);
            [DllImport("user32.dll")]
            private static extern bool EnumWindows(WNDENUMPROC lpEnumFunc, int lParam);

            [DllImport("user32.dll", ExactSpelling = true)]
            private static extern bool EnumChildWindows(IntPtr hwndParent, WNDENUMPROC lpEnumFunc, int lParam);

            [DllImport("user32.dll", CharSet = CharSet.Auto)]
            public static extern int SendMessage(IntPtr hWnd, int msg, int wParam, string lparam);
            [DllImport("user32.dll", EntryPoint = "FindWindow", SetLastError = true)]//查找窗口
            private static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
            [DllImport("user32.dll")]
            public static extern int GetWindowText(IntPtr hWnd, StringBuilder lpString, int nMaxCount);
            [DllImport("user32.dll")]
            private static extern int GetWindowTextW(IntPtr hWnd, [MarshalAs(UnmanagedType.LPWStr)]StringBuilder lpString, int nMaxCount);
            [DllImport("user32.dll")]
            private static extern int GetClassNameW(IntPtr hWnd, [MarshalAs(UnmanagedType.LPWStr)]StringBuilder lpString, int nMaxCount);
            private delegate bool WNDENUMPROC(IntPtr hWnd, int lParam);
            static IntPtr Game;
            [DllImport("user32.dll")]
            public static extern bool IsWindowVisible(IntPtr hWnd);
            static void Main(string[] args)
            {
                WindowInfo[] a = GetAllDesktopWindows();
                int i = 0;
                int index = 0;
                for (i = 0; i < a.Length; i++)
                {
                    // MessageBox.Show(a[i].szWindowName.ToString());
                    if (a[i].szWindowName.ToString().Contains("文化"))
                    {
                        Console.WriteLine(a[i].hWnd.ToString().PadRight(20) + a[i].szClassName.ToString()+ a[i].szWindowName.ToString());

                        GetAllchildWindows(a[i].hWnd);
                        index = i;
                    }
                }
                Game = a[index].hWnd;
                Console.ReadKey();
            }

            //寻找系统的全部窗口
            static WindowInfo[] GetAllDesktopWindows()
            {
                List<WindowInfo> wndList = new List<WindowInfo>();
                EnumWindows(delegate (IntPtr hWnd, int lParam)
                {
                    WindowInfo wnd = new WindowInfo();
                    StringBuilder sb = new StringBuilder(256);
                    //get hwnd
                    wnd.hWnd = hWnd;
                    //get window name
                    GetWindowTextW(hWnd, sb, sb.Capacity);
                    wnd.szWindowName = sb.ToString();
                    //get window class
                    GetClassNameW(hWnd, sb, sb.Capacity);
                    wnd.szClassName = sb.ToString();
                    Console.WriteLine("Window handle=" + wnd.hWnd.ToString().PadRight(20) + " szClassName=" + wnd.szClassName.PadRight(20) + " szWindowName=" + wnd.szWindowName);
                    //add it into list
                    wndList.Add(wnd);
                    return true;
                }, 0);
                return wndList.ToArray();
            }
            //寻找系统的全部子窗口
            static WindowInfo[] GetAllchildWindows(IntPtr hwndParent)
            {
                List<WindowInfo> wndList = new List<WindowInfo>();
                EnumChildWindows(hwndParent, delegate (IntPtr hWnd, int lParam)
                {
                    WindowInfo wnd = new WindowInfo();
                    StringBuilder sb = new StringBuilder(256);
                    //get hwnd
                    wnd.hWnd = hWnd;
                    //get window name
                    GetWindowTextW(hWnd, sb, sb.Capacity);
                    wnd.szWindowName = sb.ToString();
                    //get window class
                    GetClassNameW(hWnd, sb, sb.Capacity);
                    wnd.szClassName = sb.ToString();
                    Console.WriteLine("Window handle=" + wnd.hWnd.ToString().PadRight(20) + " szClassName=" + wnd.szClassName.PadRight(20) + " szWindowName=" + wnd.szWindowName);
                    //add it into list
                    if (IsWindowVisible(hWnd))   //跳过不可见的窗口
                        wndList.Add(wnd);
                    return true;
                }, 0);
                return wndList.ToArray();
            }
        }
    }

  • 相关阅读:
    微信多业务
    jps命令
    三白话经典算法系列 Shell排序实现
    无法识别的属性“targetFramework”。请注意,属性名是大写和小写。错误的解决方案
    Timus 1777. Anindilyakwa 奇怪的问题计数
    tokumx经营报表
    Quartz CronTrigger应用
    HDU 3681 BFS&amp;像缩进DP&amp;二分法
    01背包问题
    Web模板
  • 原文地址:https://www.cnblogs.com/bigdata007/p/4972426.html
Copyright © 2011-2022 走看看