在Windows CE中控制和复制来自其他应用程序的文本

时间:2014-09-30 05:14:23

标签: c# compact-framework windows-ce

我一直在使用一个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#

谢谢:)

1 个答案:

答案 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#中获取条形码图形或解码。