打开记事本,发送字符到记事本编辑窗口,ShellExecute、FindWindow、SendMessage函数

#define  _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include<stdlib.h>
#include<Windows.h>

void main()
{
	//ShellExecute(
	//hWnd: HWND; {指定父窗口句柄}
	//Operation: PChar; {指定动作, 譬如: open、runas以管理员身份打开、print、edit、explore、find[2]  }
	//FileName: PChar; {指定要打开的文件或程序}
	//Parameters: PChar; {给要打开的程序指定参数; 如果打开的是文件这里应该是 nil}
	//Directory: PChar; {缺省目录}
    //ShowCmd: Integer{ 打开选项 }
	//) :
	//ShowCmd 参数可选值 : SW_HIDE = 0; {隐藏}
	//SW_SHOWNORMAL = 1; {用最近的大小和位置显示, 激活}
	//SW_NORMAL = 1; {同 SW_SHOWNORMAL}
	//SW_SHOWMINIMIZED = 2; {最小化, 激活}
	//SW_SHOWMAXIMIZED = 3; {最大化, 激活}
	//SW_MAXIMIZE = 3; {同 SW_SHOWMAXIMIZED}
	//SW_SHOWNOACTIVATE = 4; {用最近的大小和位置显示, 不激活}
	//SW_SHOW = 5; {同 SW_SHOWNORMAL}
	//SW_MINIMIZE = 6; {最小化, 不激活}
	//SW_SHOWMINNOACTIVE = 7; {同 SW_MINIMIZE}
	//SW_SHOWNA = 8; {同 SW_SHOWNOACTIVATE}
	//SW_RESTORE = 9; {同 SW_SHOWNORMAL}
	//SW_SHOWDEFAULT = 10; {同 SW_SHOWNORMAL}
	//SW_MAX = 10; {同 SW_SHOWNORMAL}

	ShellExecute(NULL, L"open", L"notepad", NULL, NULL, SW_SHOWNORMAL);
	Sleep(1000);//等待记事本打开
	HWND win=FindWindow(L"Notepad",L"无标题 - 记事本");//查找窗口(主窗口)
	if (win == NULL)
	{
		printf("窗口没找到");
		system("pause");
		return;
	}

	HWND winsub = FindWindowEx(win, NULL, L"Edit", NULL);
		if (winsub == NULL)
		{
			printf("子窗口没找到");
			system("pause");
			return;
		}
		/*
		LRESULT SendMessage(         
				HWNDhWnd,//窗口句柄 如果此参数为的值为HWND_BROADCAST,则消息将被发送到系统中所有顶层窗口,包括无效或不可见的非自身拥有的窗口、被覆盖的窗口和弹出式窗口,但消息不被发送到子窗口。
                UINT Msg,//指定将要被发送的消息。
                WPARAMwParam,//指定附加的消息特定信息 通常是一个与消息有关的常量值,也可能是窗口或控件的句柄。
                LPARAMlParam//指定附加的消息特定信息 指向内存中数据的指针
);
		*/
		char str[128];
		while (1)
		{
			scanf("%[^\n]", str);
			SendMessageA(winsub, WM_SETTEXT, 0, (long)str);
			getchar();
		}

	system("pause");
}
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值