社区
C#
帖子详情
200分送上,winform中如何用一个程序去控制另一个程序
lonelydreamsym
2008-07-15 11:19:28
两个winform程序a,b,我需要用a控制b的运行,比如控制b的登陆,用a点击b的某个列表,某个按钮,总体来说,在a中找到b的句柄,但之后,如何找到b的某个按钮,或b的对话框的信息,或b的某个列表中的子项,如何实现?
...全文
731
64
打赏
收藏
200分送上,winform中如何用一个程序去控制另一个程序
两个winform程序a,b,我需要用a控制b的运行,比如控制b的登陆,用a点击b的某个列表,某个按钮,总体来说,在a中找到b的句柄,但之后,如何找到b的某个按钮,或b的对话框的信息,或b的某个列表中的子项,如何实现?
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
64 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zagj11
2008-07-31
打赏
举报
回复
学习,帮顶!
SSXYC
2008-07-31
打赏
举报
回复
关注
lovefootball
2008-07-31
打赏
举报
回复
Sorry,Control.FromHandle 是我错了,有点想当然了
用API控制是没问题的
你把你要实现的东西贴出来
最好还有代码
出错的地方大家可以帮你调试
f3135210
2008-07-31
打赏
举报
回复
[Quote=引用 49 楼 wuxinyuyun 的回复:]
新手学习
[/Quote]
lonelydreamsym
2008-07-31
打赏
举报
回复
另外a程序中不知道b程序中的控件名称,上面一位朋友给出的方法是不行的.
tony_dagoo
2008-07-31
打赏
举报
回复
[Quote=引用 2 楼 lovefootball 的回复:]
用Spy++查看
然后使用FindWindow FindwindowEx找到句柄
然后SendMessage
[/Quote]
这种可以.我试过.不过只成功的控制textbox.
lonelydreamsym
2008-07-31
打赏
举报
回复
不是不结,是偶测试了,都没有得到比较好的解决办法,B程序是其它公司发布的程序,基于net实现的,a是自己写的,我是想以加个壳的方式通过a控制b的运行.
CsToD
2008-07-29
打赏
举报
回复
[Quote=引用 30 楼 zxkid 的回复:]
可以参照一下MSDN Magazine的ManagedSpy的源码
[/Quote]
a12321321321312321
2008-07-29
打赏
举报
回复
[Quote=引用 10 楼 Pw52867 的回复:]
学习
[/Quote]
lonelydreamsym
2008-07-29
打赏
举报
回复
两个程序都是net的,这个确定.
萱哥老了
2008-07-29
打赏
举报
回复
FindWindow + SendMessage
另外 你的控制的意思是什么? 是在你的程序中操作 还是 启动加载其他程序 还是 调用程序 中的某些功能
exy337
2008-07-29
打赏
举报
回复
[Quote=引用 27 楼 amandag 的回复:]
1. 如果你的两个程序都是.NET的应用程序,用反射即可
2. 如果你的受控制程序不是.NET的应用程序,只能使用win32API来控制,如2楼
[/Quote]
学习.
再见品月
2008-07-29
打赏
举报
回复
Mark 学习
CsToD
2008-07-29
打赏
举报
回复
[Quote=引用 50 楼 lovefootball 的回复:]
引用 33 楼 lonelydreamsym 的回复:
两个程序都是net的,这个确定.
如果都是.net的
使用FindWindow FindwindowEx找到句柄
然后可以使用Control.FromHandle
就可以得到你想要的控件了
然后你想干啥就干啥呗
半个月了还不结
[/Quote]
3颗星的人还信口雌黄?
Control.FromHandle
该函数只适用于本进程,跨进程无效
严重怀疑3星的由来(谁去调查一下有没有倒分?)
csharp_study_99
2008-07-29
打赏
举报
回复
up
zhouchunping_99
2008-07-29
打赏
举报
回复
up
hanyu0528
2008-07-29
打赏
举报
回复
学习一下
lovefootball
2008-07-29
打赏
举报
回复
[Quote=引用 33 楼 lonelydreamsym 的回复:]
两个程序都是net的,这个确定.
[/Quote]
如果都是.net的
使用FindWindow FindwindowEx找到句柄
然后可以使用Control.FromHandle
就可以得到你想要的控件了
然后你想干啥就干啥呗
半个月了还不结
无心雨云
2008-07-29
打赏
举报
回复
新手学习
ruguo_58
2008-07-29
打赏
举报
回复
不懂,学习......
加载更多回复(43)
西门子 S7-
200
Smart 与
WinForm
通讯实战:无需改PLC
程序
,踩坑总结
ping通 ≠ 通讯成功能ping通PLC,只说明网络层是通的并不代表协议层、参数层一定没问题PLC IP配置电脑IP配置ping测试CPU类型 / 通讯参数实际项目里,前面三步很多人都会做,但真正容易忽略的,往往是最后一步。网络配置参数匹配数据理解不改PLC
程序
,也可以快速实现数据采集。
Winform
轻量级SCADA系统:S7-
200
CN通信与实时监控实战
SCADA系统是工业自动化
中
实现数据采集、监控与
控制
的核心技术,其本质在于协议解析、实时性保障与人机交互协同。在老旧产线(如Windows 7工控机、S7-
200
CN PLC)场景下,传统组态软件因协议支持弱、响应滞后、二次开发封闭而难以落地;而基于.NET Framework的
Winform
架构凭借低内存占用、高启动速度和强兼容性,成为轻量级SCADA的理想载体。本文聚焦S7-
200
CN PPI协议直连、
Winform
Timer精准调度、ChartSurface双缓冲趋势图渲染及PropertyGrid
Winform
SCADA系统实战:单exe部署S7-
200
CN喷漆产线监控
SCADA(数据采集与监控系统)是工业自动化核心基础架构,其本质在于可靠连接PLC、实时处理工艺数据并支撑闭环
控制
。
Winform
作为.NET原生GUI框架,凭借低资源占用、高确定性响应和强硬件兼容性,在老旧工控机(如Win7+Atom平台)上展现出不可替代的工程价值。相比Web或WPF方案,
Winform
能规避浏览器崩溃、GC卡顿、驱动不兼容等现场高频故障,尤其适配S7-
200
CN等经典PLC的PPI串口通讯。技术价值体现在稳定运行、免安装部署、断网续采与本地SQLite历史存储;典型应用场景覆盖喷涂、电
Winform
拖拽式运动
控制
框架开发指南
运动
控制
是工业自动化领域的核心技术,通过编程实现机械设备的精确运动。传统方式需要编写大量底层代码,而现代可视化编程技术如
Winform
拖拽式开发,可以大幅提升开发效率。该技术基于.NET Framework和C#语言,利用控件库封装常见运动
控制
功能,通过数据绑定和事件机制实现模块化设计。在工业自动化项目
中
,这种可视化编程方法特别适用于需要快速开发人机界面的场景,如数控机床、机器人
控制
等。本文介绍的
Winform
拖拽式运动
控制
框架,采用S曲线加减速算法和状态机设计,支持从简单单轴
控制
到复杂多轴联动的各类应用,
C#
WinForm
中
TextBox控件输入
控制
实战指南
TextBox 是 Windows Forms
中
最常用的控件之一,用于获取用户输入的文本数据。它为开发者提供了丰富的方法、属性和事件,以满足不同场景下的输入需求。在实际应用
中
,我们常常需要对TextBox控件
中
的输入内容进行定制化的限制,以满足特定的业务需求。输入过滤器是实现这一目标的有效手段,它允许我们定义输入规则,确保用户输入符合预期格式。自定义输入过滤器通常涉及处理事件,根据事件参数
中
的新输入值来判断是否接受该输入。以下是
一个
简单的自定义过滤器实现示例,它限制用户只能输入数字。
C#
111,128
社区成员
642,536
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章