为什么 System.Windows.Forms.Control MousePosition 属性可以读取,但 Location 属性不能读取?

2023-12-09

我从某个网站复制了这个 PowerShell 代码,它显示了鼠标的当前位置:

[Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms') | Out-Null
$control = [System.Windows.Forms.Control]
$mouseX = $control::MousePosition.X
$mouseY = $control::MousePosition.Y
Write-Host 'MousePosition:' $mouseX $mouseY

我回顾了System.Windows.Forms.Control 类文档并发现了 MousePosition 的几个“姐妹”属性(如 Bottom、Bounds、Left、Location、Right 或 Top),其中包含有关“控件”(以像素为单位)的度量,因此我也尝试报告位置属性值是这样的:

[Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms') | Out-Null
$control = [System.Windows.Forms.Control]
$mouseX = $control::MousePosition.X
$mouseY = $control::MousePosition.Y
Write-Host 'MousePosition:' $mouseX $mouseY
$locationX = $control::Location.X
$locationY = $control::Location.Y
Write-Host 'Location:' $locationX $locationY

但是,此代码不起作用:没有报告错误,但不显示位置值:

MousePosition: 368 431
Location:

为什么MousePosition属性可以正确访问,而Location属性却不能正确访问?

此代码的目的是获取运行 PowerShell 脚本的 cmd.exe 窗口的尺寸和位置(以像素为单位)。获取这些值的正确方法是什么在 PowerShell 中?


此代码的目的是获取运行 PowerShell 脚本的 cmd.exe 窗口的尺寸和位置(以像素为单位)。在 PowerShell 中获取这些值的正确方法是什么?

If so, System.Windows.Forms.Control不是您想要的 - 控制台主机不是 Windows 窗体控件。

您可以从 Win32 API 获取这些值(user32.dll)与GetWindowRect功能:

$WindowFunction,$RectangleStruct = Add-Type -MemberDefinition @'
[DllImport("user32.dll", SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
public static extern bool GetWindowRect(IntPtr hWnd, ref RECT lpRect);
[StructLayout(LayoutKind.Sequential)]
public struct RECT
{
    public int Left;
    public int Top;
    public int Right;
    public int Bottom;
}
'@ -Name "type$([guid]::NewGuid() -replace '-')" -PassThru

$MyWindowHandle = Get-Process -Id $PID |Select -ExpandProperty MainWindowHandle
$WindowRect = New-Object -TypeName $RectangleStruct.FullName
$null = $WindowFunction::GetWindowRect($MyWindowHandle,[ref]$WindowRect)

The $WindowRect变量现在具有窗口的位置坐标:

PS C:\> $WindowRect.Top
45
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 System.Windows.Forms.Control MousePosition 属性可以读取,但 Location 属性不能读取? 的相关文章

  • 在 Javascript 中本地化字符串

    我目前正在使用 resx文件来管理我的 NET 服务器端资源 我正在处理的应用程序还允许开发人员将 JavaScript 插入各种事件处理程序中以进行客户端验证等 对我来说本地化 JavaScript 消息和字符串的最佳方法是什么 理想情况
  • 如何将pdf页面设置设置为打印属性对话框?

    大家好 我想知道如何设置 pdf 页面设置到打印属性对话框 例如 如果我的 PDF 页面设置为横向 则布局会自动显示横向而不是纵向 如果我的 PDF 页面设置为纵向 则布局会自动显示纵向 我在这个主题上做了很多研发 但没有找到任何满意的链接
  • 关闭 XDOCUMENT 的实例

    我收到这个错误 该进程无法访问文件 C test Person xml 因为它是 被另一个进程使用 IOException 未处理 保存文件内容后如何关闭 xml 文件的实例 using System using System Collec
  • 为什么WCF中不允许方法重载?

    假设这是一个ServiceContract ServiceContract public interface MyService OperationContract int Sum int x int y OperationContract
  • 如何强制执行特定的 UserControl 设计

    我正在编写一个基本用户控件 它将由一堆其他用户控件继承 我需要对所有这些后代控件强制执行某种设计 例如 顶部必须有几个按钮以及一个或两个标签 后代用户控件区域的其余部分可以自由放置任何内容 最初 我认为我可以将一个面板放到 Base Use
  • 元素属性语法和属性属性语法之间有语义差异吗?

    我认为元素属性语法和属性属性语法在语义上没有太大区别 但是 我发现一定有什么不同 例如 下面的例子只是演示了一个简单的触发器
  • 设置 runat=server 时输入名称和 id 发生变化

    在我的表单中 我需要插入 文本 类型的不同输入 输入必须是带有名称和 ID 的 html 控件 因为我将此表单发送到外部网址 对于验证 我在所有输入中执行 runat server 然后我可以使用 requiredfieldvalidato
  • 如何在报表查看器中添加参数?

    嘿 我在 Visual Studio 2010 中有一个表单应用程序 我想使用报表查看器创建一个报表并添加一些参数 我尝试从代码中添加参数 但没有成功 我有这个错误 tablix Tablix1 的 FilterExpression 表达式
  • 无法获取托管类型(“T”)的地址、获取其大小或声明指向托管类型的指针

    为什么哦为什么这是不允许的 private static unsafe byte ConvertStruct
  • .NET 中严格浮点数学的库

    我有 Java 算法 计算及其单元测试 单元测试期望结果具有一定的精度 增量 现在我将算法移植到 NET 中 并希望使用相同的单元测试 我使用双数据类型 问题在于 Java 使用 strictfp 64 位 来执行 Math 类中的某些操作
  • 确定最接近的已知颜色

    我允许我的应用程序的用户选择自定义颜色 并希望有一种方法来显示每种颜色的友好名称 而不是显示十六进制代码的文本表示形式 我如何找到最近的System Drawing Color对于给定的十六进制代码 希望这对某人有帮助 Public Fun
  • DataGridView 中的 C# FormatException

    我创建了一个带有一些列的 DataGridView 订单列仅允许用户输入 int 数字 当我输入 j 例如 时 它会抛出 FormatException 并且我尝试添加 try catch 来解决问题 但它看起来不起作用 private v
  • 序列包含多个元素

    我在通过 Linq 获取 RhsTruck 类型的列表并显示它们时遇到一些问题 RhsTruck 只有属性 品牌 型号 序列号 等 RhsCustomer 具有 CustomerName CustomerAddress 等属性 我不断收到错
  • Android 手机作为 GSM 调制解调器在 PC 上发送/接收短信?

    是否可以将 Android 移动设备用作 PC 上的 GSM 调制解调器 我正在 net下开发应用程序来发送 接收短信等 现在我想通过 USB 将我的 Android 设备连接到我的 PC 并将其用作 GSM 调制解调器来与其通信 这里是参
  • 确保 StreamReader 不会挂起等待数据

    下面的代码读取从 tcp 客户端流读取的所有内容 并且在下一次迭代中它将仅位于 Read 上 我假设正在等待数据 我如何确保它不会在没有任何内容可供读取时返回 我是否必须设置低超时 并在失败时响应异常 或者有更好的办法吗 TcpClient
  • powershell 中的展开存档无法提取嵌套文件夹和文件

    我有以下简单的 powershell 将 zip 文件夹 包含其他文件夹和仅日志文件 提取到目的地 FolderPath C Temp Whatever Expand Archive Path FolderPath logs zip Des
  • 获取两个工作日之间的天数差异

    这听起来很简单 但我不明白其中的意义 那么获取两次之间的天数的最简单方法是什么DayOfWeeks当第一个是起点时 如果下一个工作日较早 则应考虑在下周 The DayOfWeek 枚举 http 20 20 5B1 5D 3a 20htt
  • 使用接口有什么好处?

    使用接口有什么用 我听说它用来代替多重继承 并且还可以用它来完成数据隐藏 还有其他优点吗 哪些地方使用了接口 程序员如何识别需要该接口 有什么区别explicit interface implementation and implicit
  • 获取 FTP 服务器上的文件大小并将其放在标签上

    我正在尝试获取托管在FTP服务器并将其放入Label而 BackgroundWorker 在后台工作 我在用着 Try 来获取该值 但是该值在第一次尝试时被捕获 下载后 如果我按尝试再次获取它 那么它就可以工作 Note 第一次尝试时进度条
  • 如何检测表单的任何控件的变化?

    如何检测 C 中表单的任何控件的更改 由于我在一个表单上有许多控件 并且如果表单中的任何控件值发生更改 我需要禁用按钮 我正在寻找一些内置函数 事件处理程序 属性 并且不想为此创建自定义函数 不 我不知道任何时候都会触发任何事件any控制表

随机推荐

  • 临时局部变量的命名约定

    在本地函数中命名临时变量的标准方法是什么 让我向您说明我正在做的事情 我得到一个指向结构的指针 因此我想在本地存储其成员之一以避免取消引用 然后将任何修改分配回指针 更具体地说 struct Foo double m d void func
  • 使用python从MAC获取IP地址

    我的本地网络中有一个设备并且知道它的 MAC 地址 它通过 DHCP 自动获取 IP 地址 我想获得这个IP 我不想使用 nmap 但 scapy 就可以了 因为我是从 kivy 应用程序导入的 I found from scapy all
  • Codeigniter 3 中禁止 POST url 403

    您好 专家们 您能给我一个建议吗 为什么我在当前在本地主机上运行的代码点火器上收到此 403 禁止消息 403 禁止 过程是这样的 我使用 ajax 来轻松 顺利地访问和检索从模型 控制器到视图的数据 下图是我在视图到控制器中的代码 div
  • Python:如何在其他函数中使用一个函数中的命名变量

    我是一名新手程序员 试图使用 Python 3 3 2 编写一个程序 该程序具有main 调用的函数function1 然后循环function2 and function3 我的代码通常如下所示 def function1 print h
  • 阻止禁用用户 firebase 规则

    我不确定这是否有效 但我想知道如果用户已被禁用 是否可以在规则中阻止存储 firestore 读 写 这可能吗 上下文 auth 禁用 或者我是否只需要等待令牌过期 用户就被拒绝访问 禁用用户意味着他们无法再登录 也无法刷新其 ID 令牌
  • python 字符串搜索替换

    SSViewer set theme bullsorbit 这是我的绳子 我想在字符串中搜索 SSViewer set theme bullsorbit 并替换 bullsorbit 用另一根绳子 bullsorbit 字符串是动态变化的
  • IE8 内部 HTML 错误

    这个innerHTML代码在IE8中不能可靠地工作 但正在 IE6 IE7 FF Opera Chrome Safari 中工作 通过不可靠地工作 我的意思是我已将此代码放置在各种元素上的 onmouseover 处理程序中 有时当鼠标悬停
  • 表单嵌套在表中时的 jQuery 表单提交

    是否有原因导致表单无法在表内使用 jQuery 提交 或者我只是做错了什么 我已经在表格外测试了表单提交 然后当我将其包装在表格内时 它就停止工作 即使我添加了额外的parent 来弥补上方移动的形式 td 代码中的元素 有人可以帮我解决这
  • AJAX 响应在 C++ 中无效,但在 Apache 中无效

    我想制作一个用 C 编写的服务器来支持我的游戏 我学习了套接字的基础知识 并编写了一个运行良好的基本聊天程序 现在我想创建一个像 Apache 一样的 HTTP 服务器 但仅限于 AJAX 请求响应部分 我想一开始我复制了一个 Apache
  • Rails 3 + PDFKit 问题:权限被拒绝 (Errno::EACCES)

    我想用PDFKit在我的 Rails 3 应用程序中在 Windows 上 我安装了wkhtmltopdf和pdfkit gem 这是我用来创建 PDF 的代码 class JobsController lt ApplicationCont
  • 如何创建 POI Word 格式的电子邮件链接

    如何在电子邮件中创建外部链接或电子邮件链接XWPF文档 有一个描述Excel HSSF XSSF 但我还没有找到与 Word HWPF XWPF 类似的内容 public void example throws Exception XWPF
  • Android Studio:测试:使用 java 8 或更高版本编译的库依赖项

    请帮忙 我在为 android studio 设置测试时经历了一段非常糟糕的时光 我已经从 cucumber github 下载了计算器示例来练习 cumcumber 代码测试 https github com cucumber cucum
  • Pepper 机器人:上传 python 模块

    我正在编程一个辣椒机器人 with 编舞我正在使用一个真正的机器人 我遇到的问题是如何将 python 模块安装到机器人上 因为我需要使用requests包进行 API 调用 我一直在互联网上浏览 但没有找到任何解决方案 出于安全原因 根访
  • 如何从直线访问Metastore?

    我需要做一些 SQL 查询 如here 直接来自 Metasore PS 命令 SHOW DESCRIBE 是not足够的 如何启用它作为数据库的访问 或者 Metastore 的数据库名称是什么 现在 2019年 有可能吗 NOTES W
  • 覆盖/修改 Rails 类 (ActiveResource)

    我现在一直在努力解决 ActiveResource 的问题 当主机名解析 ActiveResource 请求 但另一端没有服务器返回信息时 ActiveResource 的超时值不起作用 请求只是挂起 在查看 ActiveResource
  • Windows 命令提示符下 Python 3.6 中的模块未找到错误

    我创建了一个如下项目 project package1 init py module1 py package2 init py module2 py 我想将 module1 导入到 module2 中 from package1 impor
  • 如何在 Ansible 中交替替换多个列表的元素?

    我有多个列表作为输入 所有列表都具有相同的长度 但输入可以有超过 3 个列表 我想创建一个列表 它是所有交替其元素的输入列表的总和 例如 给定以下输入 data 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 我期待
  • ByteBuffer.asCharArray().array() 上出现 UnsupportedOperationException

    有人能好心解释一下为什么在下一行我有 UnsupportedOperationException 吗 System out println ByteBuffer wrap new byte t e s t n asCharBuffer ar
  • RxJS 排队相关任务

    如果我有一个像这样的数组数组 parent name stu children name bob name sarah 我想循环遍历每个父级并依次循环遍历它们的子级 这样我就不会启动下一个父级 直到所有子级都已处理完毕 一些漫长的异步过程
  • 为什么 System.Windows.Forms.Control MousePosition 属性可以读取,但 Location 属性不能读取?

    我从某个网站复制了这个 PowerShell 代码 它显示了鼠标的当前位置 Reflection Assembly LoadWithPartialName System Windows Forms Out Null control Syst