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();
}
上面是伪代码,希望对你有所启发,祝你好运。
--------------------编程问答--------------------
基本是这样,与C++程序可以通过消息通讯也可以传输数据,但前提是c++程序要把响应你的消息或是它会向外广播数据,这样通过加个hook,然后就可以获取数据了。总之想在人家不知情的情况下获取数据这是不可能的。 --------------------编程问答-------------------- 如果你成功了 那你已经向黑客迈近了一步!
补充:.NET技术 , C#