上海古都建筑设计集团,上海办公室装修设计公司,上海装修公司高质量的内容分享社区,上海装修公司我们不是内容生产者,我们只是上海办公室装修设计公司内容的搬运工平台

C# 对其他窗口发送文本

guduadmin281月前
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Runtime.InteropServices;
namespace mysend
{
    public partial class Form1 : Form
    {
        const int WM_SETTEXT = 0x0C;
        IntPtr targethwnd;
        [DllImport("user32.dll", CharSet = CharSet.Auto)]
        public static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam);
        public Form1()
        {
            InitializeComponent();
        }
        private void button1_Click(object sender, EventArgs e)
        {
            IntPtr buffer = Marshal.AllocHGlobal(Marshal.SizeOf(textBox2.Text.Length+1));
            Marshal.Copy(textBox2.Text.ToCharArray(), 0, buffer, textBox2.Text.Length);
            targethwnd = (IntPtr)Int32.Parse(textBox1.Text);
            SendMessage(targethwnd , WM_SETTEXT, IntPtr.Zero, buffer);
            Marshal.FreeHGlobal(buffer);
        }
    }
}

发送文本时SendMessage第四个字段是InPtr类型,要使用Marshal;

发送之后释放buffer,否则多几次就出问题;

目标句柄手动填入,发送到记事本;

C# 对其他窗口发送文本,第1张

更改计算器窗口的标题也是可以的;

C# 对其他窗口发送文本,第2张 

网友评论

搜索
最新文章
热门文章
热门标签
 
 梦见老公去世哭得伤心  女人梦见整齐的断一截头发  梦见海水涨潮往上跑成功逃生