Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

c# sendmessage

作者:√学卟会掩饰   发布日期:2026-03-09   浏览:71

using System;
using System.Runtime.InteropServices;

class Program
{
    [DllImport("user32.dll", CharSet = CharSet.Auto)]
    public static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam);

    const uint WM_SETTEXT = 0x000C;

    static void Main()
    {
        // 假设我们有一个窗口句柄 hWnd 和要发送的文本
        IntPtr hWnd = new IntPtr(123); // 示例窗口句柄,实际使用时需要获取真实窗口句柄
        string text = "Hello, World!";

        // 将字符串转换为指针
        IntPtr pText = Marshal.StringToHGlobalAuto(text);

        // 发送消息
        SendMessage(hWnd, WM_SETTEXT, IntPtr.Zero, pText);

        // 释放内存
        Marshal.FreeHGlobal(pText);
    }
}

解释说明:

  1. DllImport:通过 DllImport 属性导入 Windows API 函数 SendMessage,该函数用于向指定窗口发送消息。
  2. SendMessage 函数:此函数有四个参数:
    • hWnd:目标窗口的句柄。
    • Msg:要发送的消息类型(例如 WM_SETTEXT)。
    • wParamlParam:附加的消息参数,具体含义取决于消息类型。
  3. WM_SETTEXT:这是一个常量,表示设置窗口文本的消息。
  4. Marshal.StringToHGlobalAuto:将 C# 字符串转换为非托管内存中的字符串指针,以便传递给 SendMessage
  5. Marshal.FreeHGlobal:在使用完非托管内存后,释放分配的内存。

这个示例代码展示了如何使用 SendMessage 函数来设置窗口的文本内容。请注意,实际使用时需要获取真实的窗口句柄,并根据具体需求调整代码。

上一篇:c# progressbar

下一篇:c# eventhandler

大家都在看

c# 二进制

c# 创建目录

c# datatable group by

c# tcp client

c# type.gettype

c# sqlconnection

c# string.format 小数位数

.net和c#

c#获取系统时间

c#游戏开发

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站