C# User32 Win API 通过句柄控制进程

C#user32.dll内嵌方法使用详解 Console.WriteLine("子窗口句柄: " + childWindowHandle);Console.WriteLine("窗口标题文本长度: " + titleLength);Console.WriteLine("窗口句柄: " + windowHandle);Console.WriteLine("未找到窗口句柄");// 调用 EnumChildWindows 函数来获取指定窗口的所有子窗口句柄。// 调用 EnumChildWindows 函数来枚举指定父窗口的所有子窗口。 阅读详情

        近期公司需要做一个比较冷门的项目,对于上位机开发者来说可能很常见,但是对不接触上位机开发方面的小白来说,还是比较棘手,一头雾水,今天花费了一天时间,把句柄、user32、窗口等定义了解了一下,并结合项目的实际需求,看看Win API提供了哪些需要的可用的方法。

句柄

百度AI中对句柄的解释,我觉得比较通俗易懂。

”“句柄是一种用于引用对象或资源的特殊数据类型。‌ 句柄可以看作是一个指向对象或资源的标识符,而不是直接引用对象或资源本身。句柄机制在C#中用于管理资源、跟踪对象的生命周期以及实现对象之间的引用关系”

        如果想要对句柄进行更深层次的了解,可以百度一下,网上大佬很多。

user32

        User32.dll是C#中常用的DLL,用于各种与用户界面和窗口相关的操作。

  1. 窗口操作:User32.dll提供了操作窗口的函数,如创建、关闭、调整大小、移动和隐藏/显示窗口。
  2. 消息处理:User32.dll允许您处理发送到窗口的消息。
  3. 输入控制:User32.dll提供了处理键盘和鼠标输入的函数。
  4. 剪贴板操作:User32.dll使您能够处理剪贴板。
  5. 窗口枚举:User32.dll允许您枚举系统上所有打开的窗口。

user32常用方法

1.GetWindowText 获取给定窗口句柄的窗口标题

2.FindWindowEx函数在指定的父窗口下查找具有指定类名和窗口标题的窗口

3.FindWindow函数根据窗口的类名和窗口标题进行查找

4.IsWindowVisible函数用于确定指定窗口是否可见

5.GetWindowTextLength函数用于获取指定窗口标题文本的长度

6.SetForegroundWindow函数用于将指定窗口设置为前台窗口,并将其激活

7.EnumWindows函数用于枚举系统中所有顶级窗口的句柄

8.EnumChildWindows函数来获取指定窗口的所有子窗口句柄

9.EnumChildWindows函数用于枚举指定父窗口的所有子窗口

今天对这几个常用方法进行了探秘,但是窗口的控件还没有获取,无法控制应用程序,明天继续。

C#调用Win32 的API函数--User32.dll Win32的API函数是微软自己的东西,可以直接在C#中直接调用,在做WinForm时还是很有帮助的。有时候我们之直接调用Win32 的API,可以很高效的实现想要的效果。CodeCode highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->using 阅读详情

相关推荐

C# 通过窗口句柄为指定窗口发送指令(user32.dll,mshtml)

c# win32.dll mshtml

zhangdm的博客 4850

User32大全详解

User32大全详解 转载:https://blog.youkuaiyun.com/cbacq/article/details/51442020 函数名称 说明 1.ActiveKeyboardLayout 激活一个不同的键盘布局,该布局必须先由LoadKeyBoardLayout函数装载 2.AdjustWindowRect 根据希望的用户矩形大小来计算所需矩形窗口的大小,然后将该窗口矩形给 3.Creat...

qq_38406587的博客 8164

Unity调用Win7系统软键盘实战:Process与Windows API方案详解

在跨平台应用开发中,进程间通信是实现应用与操作系统组件交互的核心技术。其原理在于允许不同进程通过共享内存、消息传递或远程过程调用等方式交换数据与指令,从而突破单个应用沙盒的限制。这项技术的价值在于能够复用系统原生功能,提升开发效率并保证兼容性。在游戏开发、信息终端、教育软件等场景中,常需调用如系统输入法、软键盘等组件以优化触摸屏用户体验。本文聚焦于Unity引擎在Windows平台,特别是Win7系统下,通过C#的Process类启动osk.exe进程,并结合user32.dll进行窗口控制的实战方案,解决

weixin_28728715的博客 260

C#引入Win32API:常用Win32API

using System; using System.Collections.Generic; using System.Text; using System.Runtime.InteropServices; //这个肯定要的 namespace WindowsApplication1 { class win32API { publ...

coolsooner 113

Unity调用Windows API实现透明可点击悬浮窗:P/Invoke实战指南

在桌面应用开发中,实现透明、置顶且可交互的悬浮窗口是提升用户体验的常见需求,这通常需要深入操作系统底层。其核心原理在于理解Windows的窗口机制与消息循环,通过平台调用(P/Invoke)技术,C#等托管语言能够与user32.dll等原生系统库交互,从而精细控制窗口的样式、层级和输入行为。这项技术的工程价值在于突破了传统UI框架的限制,为开发者提供了高度的定制化能力,尤其适用于开发系统监控面板、桌面小工具或游戏辅助悬浮窗等场景。本文以Unity引擎为例,详细解析了如何利用P/Invoke调用Window

367

C#调用Google Earth COM实现动态缩放、鼠标交互与彩色截图

Google Earth COM接口是Windows平台下将三维地理可视化深度集成进.NET桌面应用的关键技术路径,其本质是通过Win32 API与跨进程消息机制桥接托管代码与原生渲染引擎。理解COM对象的STA线程模型、窗口消息循环(如WM_SIZE/WM_PAINT)及设备上下文(DC)共享原理,是解决动态适配、精准坐标捕获和跨权限截图等工程难题的基础。该方案在地质勘探、应急指挥等需离线强交互的行业系统中具备不可替代性,尤其适用于已固化技术栈但亟需增强空间分析能力的传统WinForm项目。本文聚焦C#对

dianlu5775的博客 322

Unity游戏窗口控制:Win32 API实现系统级交互与《Oneshot》效果复现

在游戏开发中,窗口管理是连接应用与操作系统的关键技术,它决定了用户界面的呈现方式与交互边界。其原理在于通过系统API直接操控窗口句柄,实现对窗口位置、尺寸和样式的像素级控制。这项技术的核心价值在于突破游戏引擎的跨平台封装限制,为开发者提供更底层的系统交互能力,从而创造独特的沉浸式体验。在应用场景上,它特别适用于需要特殊窗口行为的独立游戏、工具软件以及元游戏设计,例如实现动态边框、画中画模式或不规则窗口等创意交互。通过结合P/Invoke技术与Windows消息机制,开发者可以像《Oneshot》那样,实现游

weixin_30647065的博客 364

Unity调用Windows API实现无边框窗口与自定义标题栏

在Windows桌面应用开发中,窗口管理是基础而重要的技术概念。通过操作系统提供的原生API,开发者可以深度控制应用程序窗口的样式和行为,这是实现个性化用户体验的关键。其原理在于操作系统为每个窗口分配唯一的句柄,并通过窗口样式位标志来定义其外观特性,如标题栏、边框和系统按钮等。这项技术的核心价值在于突破了传统UI框架的限制,赋予开发者底层控制权,能够创建高度定制化的应用界面。在游戏开发、工具软件和沉浸式应用等场景中,这种能力尤为重要。例如,在Unity引擎中,虽然内置的Screen类提供了基本的全屏和分辨率

weixin_34055787的博客 306

C#后台模拟键盘鼠标:PostMessage与SendInput实战指南

在Windows桌面自动化领域,模拟键盘和鼠标输入通常有两条技术路线:前台发送与后台发送。前台发送依赖SendInput,将输入事件注入系统输入流,效果与真实操作一致,但会抢占焦点;后台发送则基于Win32消息机制,通过PostMessage向指定窗口句柄直接投递WM_KEYDOWN、WM_LBUTTONDOWN等消息,无需激活窗口,真正实现“隐形操作”。理解这两种机制的差异,是设计C#上位机工具和自动化测试脚本的关键。后台模拟不干扰用户操作,特别适合控制老旧工业软件、数据采集程序或自绘界面,但需注意消息参

diaoju3333的博客 366

Unity无边框窗口实战:Win32 API精准控制与避坑指南

在游戏开发与桌面应用构建中,窗口管理是基础且关键的技术环节。其核心原理在于应用程序与操作系统图形子系统之间的交互,通过API控制窗口样式、位置与行为。掌握底层窗口控制技术,能显著提升应用的沉浸感、专业度与多任务兼容性,尤其适用于模拟器、工具软件及需要极致视觉呈现的游戏项目。通过调用Win32 API,开发者可以绕过引擎限制,实现像素级精准控制,例如创建覆盖任务栏的全屏无边框窗口,或保留系统任务栏的工作区全屏模式。本文以Unity引擎为例,深入解析了如何利用P/Invoke调用GetActiveWindow、

weixin_33801856的博客 357

Unity打造Windows桌面悬浮应用:透明窗口与鼠标穿透交互实战

在桌面应用开发中,窗口管理与系统交互是核心技术点。通过调用Windows API,开发者可以控制窗口样式、层级与透明度,实现原生级的用户体验。透明窗口技术不仅涉及视觉呈现,更关键的是解决用户交互问题,例如鼠标穿透与局部响应的矛盾。这项技术的工程价值在于能够创建不干扰主工作流、始终置顶显示的辅助工具,如系统监控悬浮窗、歌词显示或实时数据面板。利用Unity引擎的UGUI系统与C#脚本能力,结合Windows底层的User32.dll API调用,可以高效构建兼具炫酷动画效果与深度系统集成的桌面应用。本文以实战

weixin_30876945的博客 284

度。 由win版本的和linux,安卓版本的。他们的软件实现方法和厂家都不一样,但是原理相同。 win具体的软件由pmvrotect ...

可以使用此函数允许将特定消息传递到窗口,即使消息源自较低完整性级别的进程也是如此。与控制进程消息筛选器的 ChangeWindowMessageFilter 函数不同, ChangeWindowMessageFilterEx 函数控制窗口消息筛选器。如果进程消息筛选器或窗口消息筛选器允许该消息,则会将其传递到窗口。允许全局或进程范围内的任何消息都将通过,但任何未包含在这两个类别中以及来自较低特权进程的消息都将被阻止。这使 hWnd 能够接收消息,无论消息的来源如何,即使消息来自较低特权进程也是如此。

2501_94606492的博客 510

C#提取Windows系统图标的四种方法:从SHGetFileInfo到系统映像列表

在桌面应用开发中,图标是用户界面的重要组成部分,直接关系到用户体验的直观性和专业性。其核心原理在于操作系统通过文件关联机制,将特定图标与文件类型绑定,从而实现视觉上的统一识别。这项技术的价值在于,开发者无需自行设计海量图标,即可让应用界面与操作系统风格无缝融合,提升软件的质感和易用性。典型的应用场景包括文件管理器、资源浏览器、安装程序以及任何需要展示本地文件列表的桌面软件。本文聚焦于C#开发,深入探讨了通过P/Invoke调用**SHGetFileInfo**这一核心Win32 API来提取系统图标的方法,

weixin_34067102的博客 402

Windows进程管理:从基础到实战的6种信息获取方法

进程是操作系统资源分配的基本单位,Windows通过进程ID(PID)唯一标识每个运行中的程序。理解进程管理机制对系统监控、性能优化和安全防护至关重要。本文深入解析Windows进程数据结构与内核原理,重点介绍6种实用的进程信息获取技术:从图形化的任务管理器到命令行工具tasklist,从PowerShell的Get-Process到WMI查询,再到性能计数器和API编程方案。这些方法覆盖了日常维护、自动化脚本和企业级监控等场景,特别是针对进程PID、内存占用和线程数等关键指标的监控技巧,能有效帮助开发者和

weixin_34075268的博客 396

Win32 API封装设计:安全可控的现代语言调用实践

Win32 API是Windows系统底层能力的核心接口集合,涵盖进程、窗口、设备、注册表等关键功能,但其C风格裸调用存在内存管理脆弱、错误码语义模糊、参数契约反直觉等固有缺陷。本文从API本质出发,解析如何通过语义化建模、参数预检、错误归一化和RAII资源守卫等工程手段,将原始Win32调用转化为类型安全、可调试、可审计的现代语言接口。重点围绕CreateFileW等高频高危函数,揭示路径规范化、对象类型探测、权限预判与上下文感知错误分类等关键技术价值,适用于工业控制、嵌入式上位机及高可靠性桌面应用开发场

weixin_34331102的博客 398

C#桌面开发:四种高效提取Windows系统图标的方法与实战优化

在桌面应用开发中,图标作为用户界面的核心视觉元素,其高效、准确的提取是提升应用专业度和用户体验的关键技术。其原理主要依赖于Windows Shell提供的API接口,通过调用系统底层资源来获取与当前主题和文件关联一致的图标。掌握这项技术对于开发文件管理器、资源浏览器等需要高度定制化界面的上位机软件具有重要价值,能确保应用拥有与系统原生应用一致的外观。在实际应用场景中,开发者常面临性能瓶颈和资源管理问题,例如在批量显示文件列表时,不当的图标提取方式会导致严重的性能下降和GDI对象泄漏。本文聚焦于C#开发,深入

weixin_33965305的博客 266

C#原生开发游戏手柄:Raw Input底层接入实战

游戏手柄输入是人机交互的基础技术之一,其本质依赖操作系统提供的底层HID(Human Interface Device)设备通信机制。Windows平台通过Raw Input API将符合HID规范的各类外设——包括Xbox、PS、Switch等主流手柄——统一抽象为原始字节流报告,开发者需理解WM_INPUT消息循环、RAWINPUT结构体解析及设备热插拔管理等核心原理。该方案具备零第三方依赖、高确定性延迟、全品类兼容等技术优势,广泛应用于工业HMI、医疗模拟、无障碍辅助及VR/AR交互等对输入精度与稳定

ciyinzhi8788的博客 419

【算法】—前缀和与差分详解

前缀和指一个数组的某下标之前的所有数组元素的和(即数列的前n项求和),前缀和是一种重要的预处理,能够降低算法的时间复杂度,可以快速地求出某一段的和,对于处理区间之间的问题是往往十分高效相比较其他算法而言,前缀和更像是一种解题的技巧,一种优化方式输入一个长度为 n 的整数序列。接下来再输入 m 个询问,每个询问输入一对 l,r 对于每个询问,输出原序列中从第 l 个数到第 r 个数的和5 32 1 3 6 41 21 32 4123453610。

DAY I 的成长之路 6022
上一篇: WPF 附加属性
下一篇: WPF 资源、样式、模板
hellofengxia
博客等级 码龄19年 135粉丝 18原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值