注册 登录
编程论坛 VB6论坛

求用VB或VBA将桌面上一个打开的exe内内容复制到另一个打开的exe中

蝈曲曲 发布于 2022-03-22 23:17, 2832 次点击
我们单位有个报表,要上传到网络中心,每次我们都要用手动来传,求哪位大神,能教我用VB或者是vba编写一个代码,把报表的内容上传到网络中心,报表的内容跟网络中心的网页每个空是对应的,我本人有vba编写程序的基础,🌹
18 回复
#2
约定的童话2022-03-23 07:24
exe没有导出功能吗?
#3
yuma2022-03-23 18:45
网络中心是FTP还是什么东西?
IP地址,端口又是多少?支持主动连接,还是被动连接?
#4
蝈曲曲2022-03-23 22:06
回复 3楼 yuma
我的目的是用编程模拟我们人的操作一样,把一个一个内容复制粘贴到网络上。比如我们手工把excel表格的姓名、性别、年龄……(30-40项)内容复制到网络中心网页的每个空格上,手动操作太慢了,就是想给自己偷懒一下😛,我大概有个想法,首先要用,获取鼠标,并且还要获取网络中心每个格子的位置及excel每个格子对应的位置,再把内容一个一个喊过去,这样可以实现吗?
#5
yuma2022-03-24 07:10
如果你们的“网络中心”是网页版的,操作网页元素+模拟键鼠标就可以实现。
#6
吹水佬2022-03-24 07:35
用个浏览器控件打开网页,操作这个网页的相关元素就可以
#7
蝈曲曲2022-03-24 13:47
回复 5楼 yuma
能具体点吗?
#8
蝈曲曲2022-03-24 13:48
回复 6楼 吹水佬
浏览器控件,具体是什么?能给个例子吗?
#9
yuma2022-03-24 14:31
WebBrowser控件
#10
风吹过b2022-03-24 15:01
也许可以考虑使用按键精灵 。
另一个,如果你们能抓包的话,找到提交数据的封包,直接自己做也行。
#11
yuma2022-03-24 15:59
我不爱提供完整代码了,苦力活全被我干了。
#12
蝈曲曲2022-03-24 19:29
回复 9楼 yuma
我没做过,有这方面的文章吗?推荐一下
#13
蝈曲曲2022-03-24 19:34
回复 10楼 风吹过b
怎么抓包?我没做过,推荐个文章
#14
蝈曲曲2022-03-24 19:37
回复 11楼 yuma
好人做到底啊
#15
吹水佬2022-03-25 09:57
以下是引用蝈曲曲在2022-3-24 19:37:45的发言:

好人做到底啊

这类问题是没有公式,首先要告诉人家你具体在做什么,也要人家能可以按你的做法一样去测试,不管结果如何应该都会给你答案。
#16
风吹过b2022-03-25 17:29
抓包软件很多,随便到网上搜索一大把,发封包。如果需要登录,建议用 webbrow ,

#17
yuma2022-03-25 18:22
回复 16楼 风吹过b
抓包之后,如何操作,风哥科普一下呗

用POST方法发送数据包吗?可以绕过登录验证码吗?
#18
风吹过b2022-03-26 18:33
首先,这个网站需要支持IE,如果不支持,那就不要使用这种方法了,
1、抓到包的数据 ,分析包的数据结构。
具体封包结构你可以自己百度了解一下,我们需要的就是提交数据那部分。看看是 get 还是 post 方式,两种方法 的数据位置有区别。
根据这个数据封包,根据你的数据,就应该可以一一对应的把数据填到每项后面拼起来。

2、在程序里使用 webbrow 控件,登录网页,然后 使用 webbrow 转到 或提交 post 方式提交自己组合生成的数据包。
这里面, cookie ,webbrow 已帮我们自己处理了,所以我们只需要构建封包里的数据了。

#19
风吹过b2022-03-26 18:49
还有一种就是 自动填表,也是要求网页支持IE浏览器

首先,选中所要填的区域,来检查元素,或自己编程列出 webbrow 中的对象来找到所有格子名字的或名字的规律。

再使用 js 写一段填表的函数,这个函数很简单的,如 (未经测试,大体上这样的吧)catch 部分可以省掉
"javascript:tb(n,v){document.all(n).value=v;};catch(e){alert('填写' + n + '时出现错误!')};"

每个格子 与数据对象,分别生成一行使命令
tb(名字,数据);
都连接起来,然后拼到这个JS后面

最后使用 webbrows 有一个接口是运行 js 的,提交运行。
如果生成的命令总成不超过 255 的字符,也可以直接 使用 Navigate 提交。

----------------------
网页是框架怎解决,
那就在 网页载入完成 响应函数里检查 完成的URL,是目标URL,那在那个 obj 中执行JS 。

这种方法可行不可行,需要你自己 测试,建议先写一行,固定填一个格子来测试起。
另外,格子名 和数据对象关系,你甚至可以写成一个配置文件来解析读取。
这里不要求顺序的。


---------
太久了没写代码了,都手生了,很多东西忘掉了。
1