我一直在使用一个Windows CE应用程序,它在单击按钮时会在其文本框中生成一个文本。我需要这个文本用于我的C#应用程序。如何触发其按钮并将其文本复制到我的应用程序。
private void button1_Click(object sender, EventArgs e)
{
Process myProcess = new Process();
try
{
myProcess.StartInfo.UseShellExecute = false;
myProcess.StartInfo.FileName = "\\Program Files\\kangkong\\Barcode2005.exe";
myProcess.Start();
// minimize Barcode2005.exe and the code goes here...
}
catch
{
throw;
}
}
无论如何,我在Windows CE中使用C#
谢谢:)
答案 0 :(得分:1)
这与您的其他问题c# how to get handle over a specific mainmenu using coredll.dll
类似您需要定义一些p / invokes才能使用本机FindWindow,GetWindowText函数。
首先使用FindWindow和外部窗口的类名和/或标题来获取主窗口的句柄。您还可以使用processID(pID)来标识外部窗口。 然后枚举主窗口的所有子窗口,直到找到文本框的窗口(在本机API中,TextBox使用的是EDIT类,并且只是一个窗口,就像您看到的其他内容一样)。然后,您可以使用EDIT窗口中找到的句柄来使用GetWindowText。
如果外部窗口是对话框,则必须将GetDlgItem添加到p / invoke列表中。然后,您可以使用EDIT dlg项的控件ID来标识输入字段,然后使用此句柄使用GetWindowText。 AFAIR控件ID在Windows exe文件的资源中可用(使用ResHacker获取ID)。
BTW:barcode2005.exe来自哪里?你可以上传一份副本进行分析吗?这是条形码图形生成器还是解码器?如果是这样,有更简单的方法可以在C#中获取条形码图形或解码。