日期:2014-05-17  浏览次数:21045 次

请教把多个textbox里的文字复制到另一个软件对应的文本框里?
先感谢上一个贴子里,各位的指点http://bbs.csdn.net/topics/390316874。

继续接着上个贴子提问,现在大部分问题都解决了,能够实现1个文本框对另一个软件第1个文本框的复制了,还剩一个问题解决不了。



如上图所示,左侧是自己编的软件,可以按打印规则生成很多个需要手动编号的代码,然后需要自动复制到右侧的“打印软件”里。
说明一下前提:
这是两个不同的软件。左侧是自己编的,右侧不是,所以右侧的功能改不了。

后面我把form里相关的代码附上。

现在的问题是:“打印软件”的所有文本框的类名都相同“InputTextBox”,只是“句柄值”不同。所以在定位时,只能定位到“打印软件”的第一个文本框里,不知道是不是因为使用了“IntPtr.Zero”。不知道该如何处理才能定位到“打印软件”的其它文本框里,由于需要复制的文本框有很多个,折腾好几天了也没搞定,请大家再帮帮忙,给指点一下吧,先谢谢了。


附:相关代码


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;

namespace WindowsFormsApplication6
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        /// <summary>
        /// 向指定窗口发送字符串
        /// </summary>
        [DllImport("User32.dll", EntryPoint = "SendMessage")]
        static extern int SendMessage(IntPtr hWnd, int msg, IntPtr wParam, string lParam);
        /// <summary>
        /// 查找指定窗口句柄
        /// </summary>
        /// <param name="lpClassName">窗口类名</param>
        /// <param name="lpWindowName">窗口标题</param>
        /// <returns></returns>
        [DllImport("user32.dll")]
        private static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
        /// <summary>
        /// 查找子窗口句柄
        /// </summary>
        /// <param name="hwndParent">要查找子窗口的父窗口句柄</param>