C语言如何模拟键盘输入?

Python08

C语言如何模拟键盘输入?,第1张

C语言模拟键盘代码如下:

intWINAPIWinMain(HINSTANCEhInstance,HINSTANCEhPrevInstance,LPSTRszCmdLine,intiCmdShow)

{

MSGmsg

if(!MyRegisterClass(hInstance))

{

returnFALSE

}

if(!InitInstance(hInstance,iCmdShow))

{

returnFALSE

}

while(GetMessage(&msg,NULL,0,0))

{

TranslateMessage(&msg)

DispatchMessage(&msg)

}

returnmsg.wParam

}

//函数:ShowKey

//作用:实现在窗口中显示按键信息

voidShowKey(HWNDhwnd,intiType,char*szMessage,WPARAMwParam,LPARAMlParam)

{

staticchar*szFormat[2]={"%-14s%3d%c%6u%4d%5s%5s%6s%6s",

"%-14s%3d%c%6u%4d%5s%5s%6s%6s"}

charszBuffer[80]

HDChdc

ScrollWindowEx(hwnd,0,-yChar,&rc,&rc,NULL,NULL,SW_INVALIDATE)

hdc=GetDC(hwnd)

SelectObject(hdc,GetStockObject(SYSTEM_FIXED_FONT))

TextOut(hdc,

xChar,

rc.bottom-yChar,

szBuffer,

wsprintfszBuffer,

szFormat[iType]。

C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。

调win32api函数SendMessage实现模拟按键

#include <windows.h>

...

SendMessage(hWnd,WM_KEYDOWN,键值,0)

...

其中hWnd是目标窗口的句柄

值是被宏定义过的,VK_ENTER回车,VK_ESC是ESC,VK_A是A键等

目标窗口句柄可以通过HWND hwnd=FindWindow("窗口名")获得

语言特点

基本特性

C++语言代码

1、高级语言:它是把高级语言的基本结构和语句与低级语言的实用性结合起来的工作单元。 [10]

2、结构式语言:结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。C 语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。 [10]

4、代码级别的跨平台:由于标准的存在,使得几乎同样的C代码可用于多种操作系统,如Windows、DOS、UNIX等等;也适用于多种机型。C语言对编写需要进行硬件操作的场合,优于其它高级语言。 [10]

5、使用指针:可以直接进行靠近硬件的操作,但是C的指针操作不做保护,也给它带来了很多不安全的因素。C++在这方面做了改进,在保留了指针操作的同时又增强了安全性,受到了一些用户的支持,但是,由于这些改进增加语言的复杂度,也为另一部分所诟病。Java则吸取了C++的教训,取消了指针操作,也取消了C++改进中一些备受争议的地方,在安全性和适合性方面均取得良好的效果,但其本身解释在虚拟机中运行,运行效率低于C++/C。一般而言,C,C++,java被视为同一系的语言,它们长期占据着程序使用榜的前三名。 [11]

特有特点

C语言是一个有结构化程序设计、具有变量作用域(variable scope)以及递归功能的过程式语言。

C语言传递参数均是以值传递(pass by value),另外也可以传递指针(a pointer passed by value)。

不同的变量类型可以用结构体(struct)组合在一起。

只有32个保留字(reserved keywords),使变量、函数命名有更多弹性。

部份的变量类型可以转换,例如整型和字符型变量。

通过指针(pointer),C语言可以容易的对存储器进行低级控制。

预编译处理(preprocessor)让C语言的编译更具有弹性。