求教通过VB.NET对软件(无开放API)文本框的自动输入

问题描述

问题描述:工作中的计算软件因为没有相应的API开放,但是某一些计算算例却并不需要重新输入,而仅仅需要修改某几个输入框的值,所以想通过程序对之前算例的输入内容自动读取然后再自动填入相应的文本框内。个人想法:通过程序来控制对软件菜单的单击操作(通过鼠标坐标),然后控制光标并依次定位于每一个文本框,读取原算例内容后,将相应的值自动填写进相应的框内,完成数据的快速输入。期望解答的内容:是否可行?若可以,我应该学习哪些内容?,希望不吝赐教,谢谢!!程序界面示意:

解决方案

解决方案二:
api函数,findwindow/findchildwindow找到文本框句柄,发wm_settext消息即可。
解决方案三:
<DllImport("user32.dll",SetLastError:=True,CharSet:=CharSet.Auto)>_PrivateFunctionSendMessage(ByValhWndAsIntPtr,ByValMsgAsUInteger,ByValwParamAsInt32,ByVallParamAsString)AsInt32EndFunctionPrivateConstWM_SETTEXTAsInt32=&HCPublicSubSetText(ByVal目标文本框句柄AsIntPtr,ByValtextAsString)SendMessage(目标文本框句柄,WM_SETTEXT,0,text)EndSub

就这么样了
解决方案四:
引用2楼zj_zwl的回复:

<DllImport("user32.dll",SetLastError:=True,CharSet:=CharSet.Auto)>_PrivateFunctionSendMessage(ByValhWndAsIntPtr,ByValMsgAsUInteger,ByValwParamAsInt32,ByVallParamAsString)AsInt32EndFunctionPrivateConstWM_SETTEXTAsInt32=&HCPublicSubSetText(ByVal目标文本框句柄AsIntPtr,ByValtextAsString)SendMessage(目标文本框句柄,WM_SETTEXT,0,text)EndSub

就这么样了

谢谢你的回复,这两天我也学习了一下相关API,现在能够对部分文本框的额内容进行更改和输入,但是通过SPY++工具查看发现,在子窗体下一些文本框的类名称和窗体名称都一样,无法区分,搜索了半天说是通过getwindowfrompoint函数来区分。但没有此函数的相关例子,能否指教一二。
解决方案五:
可以用它的位置来区别,用getwindowrect获取
解决方案六:
894526138,这两天有时间帮你解决
解决方案七:
在谷歌上找到一段Enumchildwindow的代码,源代码没有问题,但是我想添加一个自定义的数组,但是在赋值的时候有问题:PublicSharedFunctionGetChildWindows(ByValParentHandleAsIntPtr)AsIntPtr()DimChildrenListAsNewList(OfIntPtr)DimListHandleAsGCHandle=GCHandle.Alloc(ChildrenList)DimabAsIntPtr()TryEnumChildWindows(ParentHandle,AddressOfEnumWindowProc,GCHandle.ToIntPtr(ListHandle))FinallyIfListHandle.IsAllocatedThenListHandle.Free()EndTryReturnChildrenList.ToArrayab=GetChildWindowsEndFunction

以上代码中,参数ab是我添加的,可是在调用此函数过程中函数值无法给ab数组赋值,即ab始终为nothing,求教原因是什么
解决方案八:
引用1楼caozhy的回复:

api函数,findwindow/findchildwindow找到文本框句柄,发wm_settext消息即可。

PublicSharedFunctionGetChildWindows(ByValParentHandleAsIntPtr)AsIntPtr()DimChildrenListAsNewList(OfIntPtr)DimListHandleAsGCHandle=GCHandle.Alloc(ChildrenList)DimabAsIntPtr()TryEnumChildWindows(ParentHandle,AddressOfEnumWindowProc,GCHandle.ToIntPtr(ListHandle))FinallyIfListHandle.IsAllocatedThenListHandle.Free()EndTryReturnChildrenList.ToArrayab=GetChildWindowsEndFunction

以上代码中,参数ab是我添加的,可是在调用此函数过程中函数值无法给ab数组赋值,即ab始终为nothing,求教原因是什么
解决方案九:
这个问题好深奥,不懂
解决方案十:
ReturnChildrenList.ToArrayab=GetChildWindows我认为Return之后不能再赋值了

时间: 2024-10-16 17:56:56

求教通过VB.NET对软件(无开放API)文本框的自动输入的相关文章

在VB中制作不回显的文本框

在应用程序中,有时需要用户录入一些不宜在屏幕上直接显示的内容,如用户口令或机密数据.我们已熟知,在Foxbase/Foxpro中这一功能可以用SETCONSOLEOFF命令关闭向屏幕的回显来实现.那么,在 VisualBasicforWin-dows中如何做到这一点呢? 一个容易想到的方法是利用文本框的Key-Press事件,但为了处理用户对文字的编辑(如删除.插入) ,则还要再用其它变量存放真正输入的内容,而且必须书写大量复杂的控制程序.实践证明,这种方法 比较繁琐,不便使用. 笔者在用VB编

VB.net中使文本框只能输入数字

vb.net中使文本框只能输入数字 首先添加好文本框控件textbox后把属性imemode的值改成disable,这样在该文本框中就不能使用中文输入法了.然后对文本框的keypress事件添加以下代码 private sub textbox1_keypress(byval sender as object, byval e as system.windows.forms.keypresseventargs) handles textbox1.keypress if char.isdigit(e

VB的TextBox文本框实现垂直居中显示的方法_vb

本文实例代码可以实现让VB的TextBox文本框垂直居中显示效果.此处需要注意:Form_Load()窗体代码中的多行属性设置必须为真,即Text1.MultiLine = True,该属性为只读属性,请在设计时修改,换行会被之后的代码屏蔽,不想屏蔽可自行修改,调用此函数就好了. 具体的功能代码如下: '================================================================================ '| 模 块 名 | TextB

霍金专用“说话软件”免费开放下载 他已经用了近20年

霍金专用版"说话软件"免费开放下载 他已经用了近20年因病瘫痪的英国著名物理学家斯蒂芬·霍金多年依靠一套量身定制的电脑软件与他人交流.开发这款软件的美国英特尔公司2日宣布,将在互联网上向有需要的残障人士和研发者免费开放这套软件.对这套应用了人工智能技术的"说话工具",霍金大赞.但就人工智能发展前景,他"悲观"预测,人工智能的高速发展可能最终导致人类"终结".任何人可免费下载英特尔在英国伦敦召开发布会,宣布定于明年1月在互联网上

外行求教:vb.net MDI父窗体与子窗体之间的界线怎么隐藏

问题描述 外行求教:vb.net MDI父窗体与子窗体之间的界线怎么隐藏 外行求教:如图片,用vb2013写的,父窗体中点击不同按钮,显示不同子窗体.图中project按钮在父窗体,背景色为红色,位于一个panel中,panel的borderstyle已经设为none:子窗体的formborderstyle也已设为none,子窗体最上部为一个panel,背景色为红色.想达到的效果是父窗体中的按钮与子窗体最上部的panel看起来是一体的,但是现在两个中间有一道界线.求教怎么把这道线去掉?谢谢! 解

软件-VB如何通过句柄获取文本框数据

问题描述 VB如何通过句柄获取文本框数据 操作一软件,所有信息都显示在文本框里的.我可以用VB获取该软件的文本框窗口句柄. 但我想把文本框里的数据取出来入打开的记事本.应该怎样做.用VB的 解决方案 1.遍历窗口下控件(控件也是有句炳的) 2.找到你想要的文本框 3.返回.text(注意返回值类型) 注意:某些情况下,虽然可以取得控件句柄,但是无法对控件进行操作(比如模拟键盘KeyDown.模拟鼠标点击),但是控件的属性应该是可以返回的 解决方案二: 1,2步已完成.但第三步不是很明白.获得文本

插件-求教淘宝后台修改软件如何修改浏览器显示结果?

问题描述 求教淘宝后台修改软件如何修改浏览器显示结果? 有一种软件可以在登录淘宝买家中心的已付款.已发货.待评价的数字,当然只是修改的浏览器显示结果! 不知道是什么原理!好像需要什么crx的插件! 比方说,今天我待收货数量是10,但是别人远程看我电脑只显示2,刷新也不变! 求教一下是什么原理?想做一个类似的软件! 解决方案 只是修改浏览器显示的话,用fiddler写一个脚本就可以了. 解决方案二: crx是chrome插件 是不是修改的用户的页面内容

使用开放API和工具快速开发情景式mashup应用

Google 地图.屏幕抓取.微软必应.雅虎 Pipes.Delicious.Flickr.Identi.ca 情景式应用是快速开发的满足用户特定需求的"足够好"的应用.mashup 作为快速整合数据的一种应用开发模式,能够非常快速的把与某个主题相关的信息整合在一起,以满足情景式应用的需求.情景式 mashup 应用要求能够比较快速的构建,利用开放 API 和工具就成为最佳的选择. 在 Web 2.0 的时代,每个人的热情和创造性都被释放出来,张扬自己的个性.一方面,用户不再满足于大而

文本框的内容怎么自动发送到手机上的微信软件中?

问题描述 文本框的内容怎么自动发送到手机上的微信软件中? 文本框的内容怎么自动发送到手机上的微信软件中?怎么使用VB 6.0怎么给手机上的微信软件发送消息?