• 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上的例子:

  • 相关阅读:
    MVC中单选按钮的实现
    前端点击手机号码跳转到手机拨号页面
    jQuery限制文本框只能输入正整数
    Asp.Net 之 二维码生成
    MVC +Jqyery+Ajax 实现弹出层提醒
    jQuery Ajax使用实例
    ASP的调试技术解答
    模式应用场景
    redis笔记
    yii resful
  • 原文地址:https://www.cnblogs.com/strive-sun/p/14578328.html
Copyright © 2020-2023  润新知