Win32获取屏幕句柄的函数是啥?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Win32获取屏幕句柄的函数是啥?相关的知识,希望对你有一定的参考价值。

获取桌面句柄:HWND GetDesktopWindow(VOID)
该函数返回桌面窗口的句柄。桌面窗口覆盖整个屏幕。桌面窗口是一个要在其上绘制所有的图标和其他窗口的区域。
函数原型:HWND GetDesktopWindow(VOID)
参数:无。
返回值:函数返回桌面窗口的句柄。
声明:
vb
Public Declare Function GetDesktopWindow Lib "user32" Alias "GetDesktopWindow" () As Long
vb_net
Public Declare Function GetDesktopWindow Lib "user32" Alias "GetDesktopWindow" () As Integer
c#
[DllImport("user32", EntryPoint="GetDesktopWindow")]
  public static extern int GetDesktopWindow (
  ref
  );

说明】
获得代表整个屏幕的一个窗口(桌面窗口)句柄【返回值】
  Long,桌面窗口的句柄
【参数表】
  所有桌面图标都在这个窗口里拒绝。它也用于各类屏幕保护程序
参考技术A 获取桌面句柄:HWND GetDesktopWindow(VOID);
获取屏幕DC:HDC GetWindowDC(NULL);

你想要的是哪个呢,屏幕是没有句柄的,句柄是窗口才有的,想在屏幕上画图,可以用屏幕DC追问

大哥 怎么我的小球在屏幕移动会有痕迹出现?
HWND hWndc=GetDesktopWindow(VOID);//为什么这个报错')' ?
RECT rect=0;
GetWindowRect( hWndc, &rect );

追答

报什么错,把错误说明发出来,有痕迹是没有清除上次画的痕迹

本回答被提问者采纳

如何使用 Win32 句柄在 C++ 中获取文件名? [复制]

【中文标题】如何使用 Win32 句柄在 C++ 中获取文件名? [复制]【英文标题】:how to get the name of a file in C++ using Win32 Handle? [duplicate] 【发布时间】:2012-04-16 06:20:08 【问题描述】:

我正在尝试使用 C++ 中的 Win32 句柄获取文件的名称。

我还有两个问题,文件可能是空的(打开文件可能不起作用),我不能使用 Windows Vista 及更高版本支持的所有花哨的功能(例如 GetFinalPathNameByHandle)。

感谢您的帮助!

【问题讨论】:

“处理程序”是什么意思? POSIX 文件描述符? C标准输出文件? C ++ iostreams fstream? Win32 API什么的? Qt 还有什么? 我认为他的意思是从CreateFile 收到的 Win32 HANDLE 他应该这么说!并用winapi 标记问​​题。这不是 C++ 问题,而是 Windows 编程问题。 我编辑了这个问题以澄清它。不幸的是,我仍然无法就您提供给我们的大量信息提供答案。您能否还澄清一下“使用所有花哨的功能”是什么意思?你的意思是你不能使用STL? 嘿,花哨的方式意味着我不能使用 GetFinalPathNameByHandle 例如,处理程序意味着 win32 处理程序,(C++ HANDLE 类型)。据我了解,使用文件映射不起作用,因为文件可能没有内容。 【参考方案1】:

对于 XP+,您可以映射文件,然后调用 GetMappedFileName,它将返回名称(尽管不是目录)。见Obtaining a File Name From a File Handle。

【讨论】:

【参考方案2】:

我不知道 win32,但我知道 sysinternals 进程资源管理器。 Google 提出了一个开源替代方案:http://processhacker.sourceforge.net/

也许研究该代码将使您能够做到这一点。

【讨论】:

【参考方案3】:

GetMappedFilename() 虽然在 MSDN 中推荐,但并不是最好的解决方案。

我已经发布了完全符合您要求的代码,可以在此处复制和粘贴: How to get name associated with open HANDLE

【讨论】:

以上是关于Win32获取屏幕句柄的函数是啥?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 pywin32 在 Python 中获取特定应用程序窗口的句柄?

如何从 win32 进程获取线程句柄列表?

如何使用 Win32 句柄在 C++ 中获取文件名? [复制]

python中获取子窗口的句柄

Win32:捕获句柄到显示监视器

win32api win32gui win32con 窗口句柄 发送消息 常用方法