当前位置:编程学习 > C#/ASP.NET >>

C#怎么能获取到另一个正在运行的C++程序的文本框内的文字数据?

C#怎么能获取到另一个正在运行的C++程序的文本框内的文字数据?
是不是要用到windowsAPI 要用到什么方法呢?怎么才能得到这个文本框内的文字呢?
大概思路和用到的方法

--------------------编程问答-------------------- 我也是刚学,不太懂, --------------------编程问答-------------------- 请高手帮忙呀 --------------------编程问答-------------------- 我觉得可行性不是很大 如果这能实现的话 那么所有的程序都可以被你为之所用,更别提还要精确到文本框的输入了,你只能在process进程列表中取得正在运行的程序的一些基本信息 对于他们的内容 原则是是无法获得的 --------------------编程问答-------------------- 需要用到钩子技术,可以用API实现,具体可以在网上搜索一下,有很多现成的代码。 --------------------编程问答-------------------- 应该可以吧,其实就和游戏的外挂差不多 --------------------编程问答-------------------- 有没有能详细点的思路? --------------------编程问答-------------------- 进程通信 C++代码要能抛出这个文本框的内容 要不除非人家系统有漏洞 --------------------编程问答-------------------- 在C#中定义FindWindow和GetWindowText的API接口

[DllImport("coredll.dll", EntryPoint="FindWindowW", SetLastError=true)]
private static extern IntPtr FindWindowCE(string lpClassName, string lpWindowName);

然后调用GetWindowText:

[DllImport("user32.dll", EntryPoint="GetWindowText", 
     ExactSpelling=false, CharSet=CharSet.Auto, SetLastError=true)]
    private static extern int _GetWindowText(IntPtr hWnd,
    StringBuilder lpWindowText, int nMaxCount);

public static string GetWindowText(IntPtr hWnd)
{
    StringBuilder title = new StringBuilder(MAXTITLE);
    int titleLength = _GetWindowText(hWnd, title, title.Capacity + 1);
    title.Length = titleLength;

    return title.ToString();
}

上面是伪代码,希望对你有所启发,祝你好运。
--------------------编程问答--------------------
引用 7 楼 yilanwuyu123 的回复:
进程通信 C++代码要能抛出这个文本框的内容 要不除非人家系统有漏洞

基本是这样,与C++程序可以通过消息通讯也可以传输数据,但前提是c++程序要把响应你的消息或是它会向外广播数据,这样通过加个hook,然后就可以获取数据了。总之想在人家不知情的情况下获取数据这是不可能的。 --------------------编程问答-------------------- 如果你成功了  那你已经向黑客迈近了一步!
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,