zoukankan      html  css  js  c++  java
  • C# EnumWindows示例代码

    代码开箱即用,唯一需要处理的就是要提供一个进程的pid。

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Runtime;
    using System.Runtime.InteropServices;
    using System.Diagnostics;
    
    namespace EnumPTW
    {
        class Program
        {
            [DllImport("user32.dll", SetLastError = true)]
            static extern uint GetWindowThreadProcessId(IntPtr hWnd, out uint lpdwProcessId);
    
            // Callback Declaration
            public delegate bool EnumWindowsCallback(IntPtr hwnd, int lParam);
            [DllImport("user32.dll")]
            private static extern int EnumWindows(EnumWindowsCallback callPtr, int lParam);
            [DllImport("user32.dll", SetLastError = true)]
            internal static extern bool MoveWindow(IntPtr hWnd, int X, int Y, int nWidth, int nHeight, bool bRepaint);
    
            public static bool ReportWindow(IntPtr hwnd, int lParam)
            {
                uint processId = 0;
                uint threadId = GetWindowThreadProcessId(hwnd, out processId);
               
                if(processId == 23272)  //23272: another program pid
                {
                    Console.WriteLine(string.Format("Enumerated Window Handle 0x{0:X8}, Process {1}, Thread {2}", hwnd.ToInt32(), processId, threadId));
                    
                    MoveWindow(hwnd, 100, 100, 800, 600, true);
                }
                
                return true;
            }
    
            static void Main(string[] args)
            {
                // Have to declare a delegate so that a thunk is created, so that win32 may call us back.
                EnumWindowsCallback callBackFn = new EnumWindowsCallback(ReportWindow);
    
                EnumWindows(callBackFn, 0);
    
                Console.WriteLine("Finished. Press any key to continue.");
                Console.ReadKey();
            }
        }
    }

    一些github上的例子:

  • 相关阅读:
    【转】杭电ACM试题分类
    python strip()函数介绍
    正则表达式的语法规则
    POSIX扩展正则表达式函数
    JS学习笔记
    PCRE兼容正则表达式函数
    vs 2008 feature pack 之体验
    #单元测试
    300道四则运算题
    观后感
  • 原文地址:https://www.cnblogs.com/strive-sun/p/14578328.html
Copyright © 2011-2022 走看看