怎样用VC像另一个程序的一个TXTBOX写字符串?

dceacho 2009-02-17 11:57:15
你可以先用spy++看一下那个程序,找到那个EDIT控件的ID值(注意你在SPY中看到的数值都是16进制的),然后这么的:

HWND hwnd=::FindWindow(NULL,"Title"); //其中第二个参数是那个程序的标题,一定要写对
if(hwnd)
{
HWND hwnd2=::GetDlgItem(hwnd, 0x1234); //第二个参数就是那个EDIT控件的ID值,把你找到的值代进去
if(hwnd2)
{
char text[250];
::SendMessage(hwnd2,WM_GETTEXT,(WPARAM)250,(LPARAM)text);
}
}

这是我在论坛上找的获取字符串的一个方法,我用spy++瞄准目标TXTBOX得到:
Windows:00010F12
Text:"." //像是一个点
Class:Edit
Style:50110004
Rect:[549,398]-[985,442]436x44
Thread ID:00000A50
Process ID:00001228
这些东西哪一个才是EDIT控件的ID值啊,还有上面只是说过去字符串,我该怎么发?

就像累世QQ的自动发消息一样
...全文
188 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
hhyttppd 2009-02-18
  • 打赏
  • 举报
回复
你可以直接看spy的源代码。
dceacho 2009-02-18
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 oyljerry 的回复:]
FindWindow查找的是窗口,你要先拿到窗口再找控件
[/Quote]

窗口句柄是行不通的,不知道拿窗口再找控件该怎么做?最好有代码,我刚学VC,有了思路我还是不会写
VirGhost 2009-02-18
  • 打赏
  • 举报
回复
还有就是可以采用DLL注入的办法,这样可以获得更多更灵活的控制,建议研读 《Windows via C/C++》。
VirGhost 2009-02-18
  • 打赏
  • 举报
回复
HWND hParent = ::FindWindow(NULL, L"Title"); //得到父窗口的句柄
HWND hChild = ::FindWindowEx(hParent, NULL, L"Edit", NULL); //在父窗口中搜索你要找的Edit控件
LPARAM lParam = (LPARAM)L"yepp"; //设置消息参数
::SendMessage(hChild, WM_SETTEXT, 0, lParam); //发送消息

VS2005下测试通过。
另:若父窗口中有多个Edit控件,可以不断调用FindWindowEx()函数找到要修改的Edit,具体可以查看MSDN中FindWindowEx()的用法。
waizqfor 2009-02-17
  • 打赏
  • 举报
回复
帮顶吃饭去!~~
waizqfor 2009-02-17
  • 打赏
  • 举报
回复
帮顶吃饭去!~~
dceacho 2009-02-17
  • 打赏
  • 举报
回复
HWND hwnd=::FindWindow(NULL,"Title"); //其中第二个参数是那个程序的标题,一定要写对

HWND hwnd2=::GetDlgItem(hwnd, 0x1234); //第二个参数就是那个EDIT控件的ID值,把你找到的值代进去
这2行编译的时候提示错误我改了,不知道会不会有什么问题
main()
{
HWND hwnd1;
HWND hwnd2;

hwnd=FindWindow(NULL,"Title");
hwnd2=GetDlgItem(hwnd, 0x1234);
hhyttppd 2009-02-17
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 wyc7610 的回复:]
既然已经使用了spy为什么不用它直接拿到edit框的窗口句柄?
拿到句柄就可以干你自己想干的事。
[/Quote]

下次运行,这个句柄会变。
wyc761024 2009-02-17
  • 打赏
  • 举报
回复
既然已经使用了spy为什么不用它直接拿到edit框的窗口句柄?
拿到句柄就可以干你自己想干的事。
hhyttppd 2009-02-17
  • 打赏
  • 举报
回复
你用SPY可以找到控件ID的。
而且SPY的窗口标题里显示的内容就是TXTBOX的内容。
oyljerry 2009-02-17
  • 打赏
  • 举报
回复
FindWindow查找的是窗口,你要先拿到窗口再找控件
wzg112 2009-02-17
  • 打赏
  • 举报
回复
没这么用过,有趣!
zhangfeiran100 2009-02-17
  • 打赏
  • 举报
回复
Process ID:00001228
alan001 2009-02-17
  • 打赏
  • 举报
回复
都不是ID值
zjj_zjj 2009-02-17
  • 打赏
  • 举报
回复
sendmessage
内容概要:本文详细介绍了一种基于自适应虚拟阻抗的光储并网系统谐波抑制策略,并提供了完整的Simulink仿真实现方案。该策略针对光伏-储能系统在并网过程中因非线性负载或电网波动引发的电流谐波问题,通过引入自适应调节机制动态调整虚拟阻抗参数,从而有效提升系统在不同运行工况下的谐波抑制能力与电能质量水平。文档强调“完美复现”,表明所构建模型具有高度准确性与可验证性,具备较强的工程应用参考价值,适用于科研仿真、教学实践及高水平论文成果复现。; 适合人群:具备一定电力电子、自动控制与电力系统基础知识,从事新能源并网、微电网控制、电能质量治理等相关研究方向的研究生、科研人员及工程技术人员。; 使用场景及目标:①深入理解光储并网系统中谐波产生机理及其抑制方法;②掌握自适应虚拟阻抗控制策略的设计原理与Simulink建模技术;③复现高水平学术论文中的关键成果,支撑科研课题推进、学位论文撰或工程项目开发。; 阅读建议:建议结合文中提示的“公众号——荔枝科研社”获取完整仿真资源,按照文档指引逐步搭建模型,重点关注控制器结构设计、参数整定过程及仿真结果的对比分析,以实现对核心技术的深刻理解与灵活应用。

65,210

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧