C#窗口句柄

C#窗口句柄在Windows中,句柄是一个系统内部数据结构的引用。例如当你操作一个窗口,或说是一个Delphi窗体时,系统会给你一个该窗口的句柄,系统会通知你:你正在操作142号窗口,就此你的应用程序就能要求系统对142号窗口进行操作——移动窗口、改变窗口大小、把窗口极小化为图标等。实际上许多WindowsAPI函数把句柄作为它的第一个参数,如GDI(图形设备接口)句柄、菜单句柄、实例句柄、位图句柄等,不仅仅局限于窗口函数。换句话说,句柄是一种内部代码,通过它能引用受系统控制的特殊元素,如窗口、位图、图标、内存块、

大家好,又见面了,我是你们的朋友全栈君。

在Windows中,句柄是一个系统内部数据结构的引用。例如当你操作一个窗口,或说是一个Delphi窗体时,系统会给你一个该窗口的句柄,系统会通知你:你正在操作142号窗口,就此你的应用程序就能要求系统对142号窗口进行操作——移动窗口、改变窗口大小、把窗口极小化为图标等。实际上许多 Windows API函数把句柄作为它的第一个参数,如GDI(图形设备接口)句柄、菜单句柄、实例句柄、位图句柄等,不仅仅局限于窗口函数。换句话说,句柄是一种内部代码,通过它能引用受系统控制的特殊元素,如窗口、位图、图标、内存块、光标、字体、菜单等。

  1. Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long

  2. Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long

  3.   Private Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hwnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long

  4.   Private Const WS_EX_LAYERED = &H80000

  5.   Private Const GWL_EXSTYLE = (-20)

  6.   Private Const LWA_ALPHA = &H2

  7.   Private Sub Form_Activate()

  8.   On Error Resume Next

  9.   For i = 0 To 150 Step 2.5

  10.   SetLayeredWindowAttributes Me.hwnd, 0, i, LWA_ALPHA

  11.   DoEvents

  12.   Next i

  13.   End Sub

  14.   Private Sub Form_load()

  15.   Dim rtn As Long

  16.   rtn = GetWindowLong(Me.hwnd, GWL_EXSTYLE)

  17.   rtn = rtn Or WS_EX_LAYERED

  18.   SetWindowLong Me.hwnd, GWL_EXSTYLE, rtn

  19.   SetLayeredWindowAttributes Me.hwnd, 0, 0, LWA_ALPHA

  20.   End Sub

 

 
  1. //获取窗口标题

  2. [DllImport("user32", SetLastError = true)]

  3. public static extern int GetWindowText(

  4. IntPtr hWnd,//窗口句柄

  5. StringBuilder lpString,//标题

  6. int nMaxCount //最大值

  7. );

  8.  
  9. //获取类的名字

  10. [DllImport("user32.dll")]

  11. private static extern int GetClassName(

  12. IntPtr hWnd,//句柄

  13. StringBuilder lpString, //类名

  14. int nMaxCount //最大值

  15. );

  16.  
  17. //根据坐标获取窗口句柄

  18. [DllImport("user32")]

  19. private static extern IntPtr WindowFromPoint(

  20. Point Point //坐标

  21. );

  22.  
  23. private void timer1_Tick(object sender, EventArgs e)

  24. {

  25. int x = Cursor.Position.X;

  26. int y = Cursor.Position.Y;

  27. Point p = new Point(x, y);

  28. IntPtr formHandle = WindowFromPoint(p);//得到窗口句柄

  29. StringBuilder title = new StringBuilder(256);

  30. GetWindowText(formHandle, title, title.Capacity);//得到窗口的标题

  31. StringBuilder className = new StringBuilder(256);

  32. GetClassName(formHandle, className, className.Capacity);//得到窗口的句柄

  33. this.textBox1.Text = title.ToString();

  34. this.textBox2.Text = formHandle.ToString();

  35. this.textBox3.Text = className.ToString();

  36. }

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/158985.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • mybatiscodehelperpro激活成功教程2.8.4_idea 激活成功教程

    mybatiscodehelperpro激活成功教程2.8.4_idea 激活成功教程https://zhile.io/2019/04/23/mybatis-code-helper-pro-crack.html

    2022年9月21日
    1
  • pytorch word2vec_word2vec和lstm

    pytorch word2vec_word2vec和lstmword2vec原理(一):CBOW与Skip-Gram模型基础word2vec原理(二):基于HierarchicalSoftmax的模型word2vec原理(三):基于NegativeSampling的模型目录1.词向量基础1.1One-Hot编码(独热编码)1.2分布式表示:词向量/词嵌入1.3词向量可视化1.4用词嵌入做迁移学习2….

    2022年9月7日
    0
  • Loadrunner教程–常用操做流程[通俗易懂]

    Loadrunner教程–常用操做流程[通俗易懂]作者博客:vps精选网1loadrunner压力测试一般使用流程1.1loadrunner压力测试原理本质就是在loadrunner上模拟多个用户同时按固定行为访问web站点。其中固定行为在loadrunner中是通过录制脚本定义的,多个用户同时访问的策略是在loadrunner的场景中定义的。1.2压测思路通过loadrunner进行压力测试web应用的主要思路分两步:第…

    2022年5月24日
    38
  • php strom教程,PhpStorm常用教程

    php strom教程,PhpStorm常用教程一、PhpStorm界面简化Ctrl+Shift+A查找快捷键ALT+1:关闭或打开左边项目二、PhpStorm几个最重要的快捷键快速查找文件:CTRL+SHIFT+N==>Shift+F显示文件有哪些方法:CTRL+F12==>Shift+F+M最近打开文件:CTRL+E查找方法名或类名:==>Shift+M三、PSR自动加载支…

    2025年6月10日
    0
  • Java获取当前年月日、时间[通俗易懂]

    Java获取当前年月日、时间[通俗易懂]两种方法,通过Date类或者通过Calendar类。Date类比较简单,但是要得到细致的字段的话Calendar类比较方便。importjava.text.DateFormat;importjava.text.SimpleDateFormat;importjava.util.Calendar;importjava.util.Date;importjava.util.L

    2022年10月21日
    0
  • spring cloud之 hello world和eurake介绍及eurake使用

    spring cloud之 hello world和eurake介绍及eurake使用一.springcloud之helloworld1.两个微服务,分别是用户和订单,其中用户是微服务提供者,订单是微服务消费者2.首先建一个工程,里面有两个module:prvoider-user和comsumer-ordercomsumer-user配置文件:prvoider-order配置文件:用spring提供的RestTemplate访问rest…

    2022年5月10日
    52

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号