#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");
}
打开记事本,发送字符到记事本编辑窗口,ShellExecute、FindWindow、SendMessage函数
最新推荐文章于 2024-05-20 19:39:01 发布