MFC如何获取运行程序的数据

MFC如何获取运行程序的数据,第1张

你说的程序A是否可控?如果A是不可修改代码的软件,那么只能通过SPY++获取显示该文本的窗口和控件句柄,然后通过API函数::FindWindow获取A程序指定窗口指定控件的句柄,然后GetWindowText获取窗口内容。当然前提是A软件没有禁止窗口捕捉和获取。

这个问题太不好回答了。

但是又很好回答。

比如:

String str1=new String("我爱我家");

这个时候已经在内存中分配一个内存块用来存储这个字符串数据了。

所以呢你取的时候也是很简单的。

直接读取str1就ok了。

你所说的取内存数据是想问什么呢?

//前面省略

using SystemDataSqlClient; //1:引入命名空间

namespace Test

{

public partial class Form1 : Form

{

static string conStr = "server=; database = myqq; uid=sa; pwd=0000;"; //2: 定义连接字符串

SqlConnection con = new SqlConnection(conStr); //3: 定义数据库连接对象

public Form1()

{

InitializeComponent();

}

private void button1_Click(object sender, EventArgs e)

{

string sql = "select from Users"; //要查询的sql语句

SqlCommand cmd = new SqlCommand(sql, con); //4:创建sqlcommand对象, 执行sql语句

conOpen(); //5: 打开数据库连接

SqlDataReader dr = cmdExecuteReader(); //6: 执行sql语句并返回 sqldatareader对象 <相当赋值>

while (drRead()) //7:利用sqldatareader读取数据

{

MessageBoxShow("姓名是:"+dr["Uname"]ToString()); //只是举了一个例子

}

drClose(); //8:关闭sqldatareader

conClose(); //9:关闭数据库连接

// 利用sqldatareader读取数据的时候,数据连接必须处于打开状态; 读取方式是 一行一行向前读取

}

}

}

如前所述,GUI程序的m文件由一个一个独立的函数构成,与其他编程语言一样,变量的有效范围仅存在于一个函数之内,在函数之外是无效的。因此,从一个函数内获取函数之外的数据,或者想将数据传递到另一个函数,需要一些特殊的方法或技巧。

在GUI编程中,最常遇到的是对控件属性的获取及修改。例如,在一个用于计算的push_button的回调函数中,需要知道一个输入框控件中的文字,以便转换成数字后进行计算,再将结果输入一个文本显示控件中。这就要求能够获取该控件的句柄,以便对该控件进行 *** 作。在GUI程序的回调函数中都会传递一个参数handles,该参数包括了窗口中所有控件的句柄,是一个“句柄包”(因此称为handles)。有了该参数,调用任何控件的属性都是很容易的。例如:

handlesbutton_Calculate→string就表示一个“姓名”(tag属性)为button_Calculate的push_button的string属性的句柄。

GUI编程中,有时还需要进行数据的传递,例如将计算的中间结果传递到另一个回调函数中继续进行计算等。用全局变量可完成这一 *** 作。在GUI程序中,也可以定义全局变量,但是对于结构化编程来说,全局变量会给程序设计和维护带来很多问题,因此推荐用另一种方法完成数据的传递。

GUI所有控件的属性中都有一项“userdata”。这个属性是系统专门留给用户来使用的。程序设计时,通过set和get函数可以在这个属性中存取任何格式的数据。虽然这个属性中只能存取一个变量,但从前面的内容可知,MATLAB可以将多个不同类型的变量组合在一个Cell类型的变量中,因此理论上讲,通过一个控件的“userdata”属性可以传递任意多个不同类型的变量。

1、通过win32api获取到需要的窗体的handle,然后枚举该窗体的子窗体。

2、对每个子窗体通过sendmessage WM_GetText得到其内容。

窗体上上label listbox textbox的内容(text属性的东西)都可以获取,唯独datagridview的东西获取不了。

我改变方法,通过ReadProcessMemory 来获取进程的内存中的内容 发现仍然没有数据,仅获取到datagridview的id,而其他的空间可以获取到内容。

以上就是关于MFC如何获取运行程序的数据全部的内容,包括:MFC如何获取运行程序的数据、JAVA程序如何从内存中获取数据、求~~~通过SQLDataReader读取数据的过程等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10174399.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-06
下一篇2023-05-06

发表评论

登录后才能评论

评论列表(0条)

    保存