乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 282|回复: 14

选中/取消选中对话框中的复选框

[复制链接]

154

主题

1274

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1936
发表于 2008-4-4 09:44:31 | 显示全部楼层 |阅读模式
说到Windows API,我完全是个新手 我需要能够选中/取消选中Inventor中对话框上的一个框 我希望有人能帮我解决这个问题/从哪里开始 我可以打开并激活对话框
谢谢你
回复

使用道具 举报

154

主题

1274

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1936
发表于 2008-4-4 11:30:25 | 显示全部楼层
我认为你想从某种反应器中操作对话框,或者至少是一个VB(a)程序,它打开窗口并做一些事情…
你需要知道几件事,取决于你得到了什么,将取决于您需要多少。让我们从基础开始:
要通过VB操作windows控件(a)您需要使用SendMessage或SetWindowLong…每个都有正反两面…I'我会让你研究这些
句柄随着实例的不同而变化,所以如果你现在打开窗口,它将是一件事,但下次打开它时,它将不同。那么我们如何在一定程度上准确地找到它…
通过窗口标题,但因为它不是'作为一个最顶层的窗口,我们如何确定标题可能是什么;t除非标题是静态的,否则我们不'我也不知道这是真的。所以我们必须找到主要应用程序AutoCAD的标题。使用该应用程序可以相对轻松地完成这项工作。VB(a)中的标题属性
有了标题后,可以使用FindWindow API来获取AutoCAD应用程序窗口的句柄。有了它,您可以使用EnumerateChildWindows,直到找到包含要操作的控件的窗口的类和/或标题。显然,通配符比较是为了确保您拥有正确的窗口
通过标题和/或类定位对话框后,枚举所有控件,直到找到要操作的控件。当然,您需要使用Spy++进行一些窥探工作,以确定类、键、文本或其他可唯一识别的项,从而知道您有正确的复选框。EnumChildWindowsProc将标识要操作的控件的句柄
最后,您可以使用SendMessage或SetWindowLong将复选框更改为选中状态
对以下内容进行一些研究:
FindWindow
EnumChildWindows
SendMessage
设置WindowLong
还需要调查上述过程所需的所有常数,以确定需要哪些常数。
回复

使用道具 举报

154

主题

1274

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1936
发表于 2008-4-4 11:57:19 | 显示全部楼层
谢谢,我会调查的。
回复

使用道具 举报

154

主题

1274

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1936
发表于 2008-4-7 10:42:07 | 显示全部楼层
谢谢你的帮助 从命令上看,我肯定是疯了 计算出解决方案所需的时间可能不会#039;t节省了自动化首先需要的时间 我现在正在通过sendkeys进行此操作 现在它起作用了,我将在将来看到错误。
回复

使用道具 举报

154

主题

1274

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1936
发表于 2008-4-7 13:12:59 | 显示全部楼层
不错的选择——因为他忘了,或者帮了你一个忙,遗漏了最难的部分——实际上告诉你对话框何时真正弹出。
回复

使用道具 举报

154

主题

1274

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1936
发表于 2008-4-7 13:21:10 | 显示全部楼层

他已经说过他可以打开它,我猜想如果他能打开它,他就会知道它什么时候打开。但你是对的,如果你必须观察某个特定的窗口才能打开,这是另一组问题。
回复

使用道具 举报

154

主题

1274

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1936
发表于 2008-4-8 07:21:27 | 显示全部楼层
没错,我可以把它打开 在试图找到它的句柄时,我在使用windows API时遇到了问题 
回复

使用道具 举报

154

主题

1274

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1936
发表于 2008-4-8 08:18:02 | 显示全部楼层
也许如果我能抽出时间,我'我将发布一些代码剪贴画来展示它的实际效果。
回复

使用道具 举报

154

主题

1274

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1936
发表于 2008-4-8 12:44:13 | 显示全部楼层
如果你有时间,我非常感谢,但请不要;如果你不't。
回复

使用道具 举报

154

主题

1274

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1936
发表于 2008-4-9 05:58:05 | 显示全部楼层
本人'd有兴趣看这个(VBA?)代码,我自己。当我劫持另一个应用程序的界面时,我经常遇到的问题之一是抓取弹出的对话框。由于这是一个VBA论坛,我'd假设代码是用VBA编写的,并且运算符的地址不可用-这意味着轮询
轮询意味着陷入循环、等待并耗尽资源。添加Doevents在某些方面有所帮助,但也意味着我可能会错过一个可能不像某些人那样“保持”打开的对话框,以及;您的代码陷入循环
当然,如果是a'公共对话框',it#039;s母公司Hwnd;可能不一定是呼叫应用程序-因此可能涉及一些侦探工作。(当通过API创建公共对话框时,将'父'hwnd设置为桌面hwnd是获得非模式对话框的一种简单方法…)
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-7-4 23:56 , Processed in 1.434857 second(s), 72 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表