用C语言MessageBox~编写段对当前窗口发送后台信息的程序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用C语言MessageBox~编写段对当前窗口发送后台信息的程序相关的知识,希望对你有一定的参考价值。

在C语言用 MessageBox
编写向当前窗口 发送后台按键EXC 的重复操作
使当前窗口放到后台 也可执行此工作
哪位刚手帮忙写下
Plugin Window.SendKeyDown(hw,27)
我不知道怎么加额。。。
难道C语言就这么垃圾么?
VB都能做的出来
说了那么多的人 给我做出来啊???就会在那说
继续加分!

呵呵。。先纠正楼主一个“心理担忧”。。

我感觉的出。你肯定初学C语言。。

离开了你曾经热爱的VB。。

不过。。虽然VB一拖一放。程序就出来了。。

但是你慢慢会发现C语言是多么的强大。。

要知道。伟大的操作系统大部分代码都是基于C语言开发的。。

再说你的问题吧。听你说的糊里糊涂的。不知道你想干嘛?

你想向当前活动窗口发一个ESC按键还是向当前最前面的窗口发?

HWND hwnd=::FindWindow(窗口类名,"窗口标题名")(两个条件随便填一个)

这样可以拿到一个你自己指定的窗口(包括活动窗口和最签名的置顶窗口)

的句柄。。只要得到句柄。就可以用SendMessage随意的发按键了。

比如发ESC。。SendMessage(hWnd(刚才得到的句柄),WM_KEYDOWN,0x1B(键名),NULL);

获取活动窗口。则是 GetActiveWindow

获取前台窗口 则是 GetForegroundWindow

都是很简单的API调用。。当然了。用API了。自然得包含windows.h

要是还有不懂。。就百度hi吧。。这问题很琐碎。但是都不是啥难事。。

楼主不要太灰心。轻易的对语言产生厌恶活着偏见。。。
参考技术A 楼上不要误人子弟!
vb就像傻瓜相机,vc就像专业单反,不要自己不会用就说vc不如vb,
什么叫vc封装不完全??这是因为vc留给程序师的空间比较多。

为什么世界c++工程师平均年薪10万美金,为什么vb永远是小公司用的拖拽工具?为什么linux、unix、魔兽世界不用vb写?为什么在大公司里一说vb这个字眼就让人忍俊不禁??

我用c++可以让你自动在淘宝上卖东西,用vb可以做超智能行为特性分析ai,可以做让你摄像头被我共享的木马插件,你用vb做一个?
参考技术B 老实说,楼主这段程序代码也不少。
VC因为对象封装的不完整,很多细节都要程序员去做,这样虽然程序运行效率高,想怎样就怎样,可是程序员要对这些细节都懂才行,所以开发效率较低,比较适合高手来开发对运行速度有要求的程序,对于楼主这样的问题,其实还是VB简单好搞。
参考技术C C语言来写并不麻烦 代码如下:
#include <Windows.h>
void main()

while (1)//循环直到程序退出

keybd_event(VK_ESCAPE,0,0,0);//按下esc键
keybd_event(VK_ESCAPE,0,KEYEVENTF_KEYUP,0);//弹起esc键
Sleep(10);//延迟10毫秒

参考技术D 关注
今天又看了看这个问题,说实话没明白你的意思,要是你今天看到最好表达清楚点,我帮你写

能否给我一个用纯C编写的UDP发送和接收的程序

不要C++的,要纯C编写的。辛苦各位了
不是TCP啊,要UDP的

UDP的,你看下

1.服务器端实现

程序在收到客户端发送来的消息后,给客户端发送消息,提示客户端收到了该消息

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <stdio.h>
#include <unistd.h>

int main(int argc, char *argv[])

int sock, length, fromlen, n;
struct sockaddr_in server;
struct sockaddr_in from;
char buf[1024];

//要求执行是输入端口信息
if (argc!= 2)
printf( "Usage: %s port_num\n",argv[0]);
return 1;


//创建通信所需的套接字,并与地址和端口信息帮定
sock=socket(AF_INET, SOCK_DGRAM, 0);
if (sock < 0)
perror("cannot create communicating socket");
return 1;


length = sizeof(server);
bzero(&server,length);
server.sin_family=AF_INET;
server.sin_addr.s_addr=INADDR_ANY;
server.sin_port=htons(atoi(argv[1]));

if (bind(sock,(struct sockaddr *)&server,length)<0)
perror("cannot bind the socket");
close(sock);
return 1;


fromlen = sizeof(struct sockaddr_in);

//读取客户端发送来的信息,显示后,发回相关信息给客户端
while (1)
n = recvfrom(sock,buf,sizeof(buf),0,(struct sockaddr *)&from,&fromlen);
if (n < 0)
perror("cannot receive date from client");
break;

write(STDOUT_FILENO,"server: Received a datagram: ",29);
write(STDOUT_FILENO,buf,n);

n = sendto(sock,"send message to client\n",22,
0,(struct sockaddr *)&from,fromlen);
if (n < 0)
perror("cannot send data to the client");
break;



close(sock);
return 0;


2.客户端实现

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <netdb.h>
#include <stdio.h>
#include <unistd.h>

int main(int argc, char *argv[])

int sock, length, n;
struct sockaddr_in server, from;
struct hostent *hp;
char buffer[256];

//判断输入参数是否符合要求
if (argc != 3)
printf("Usage: %s server_ip port_num\n",argv[0]);
return 1;


//创建通信套接字
sock= socket(AF_INET, SOCK_DGRAM, 0);
if (sock < 0)
perror("cannot create communicating socket");
return 1;


server.sin_family = AF_INET;
hp = gethostbyname(argv[1]);
if (hp==0)
perror("cannot get the server ip address");
return 1;


bcopy((char *)hp->h_addr,
(char *)&server.sin_addr,
hp->h_length);

server.sin_port = htons(atoi(argv[2]));
length=sizeof(struct sockaddr_in);

printf("(client) enter the message: ");
bzero(buffer,256);
fgets(buffer,255,stdin);

//发送数据给指定服务器
n=sendto(sock,buffer,strlen(buffer),0,&server,length);
if (n < 0)
perror("cannot get message from the client");
return 1;


//从服务器中接受数据
bzero(buffer,256);
n = recvfrom(sock,buffer,256,0,&from, &length);
if (n < 0)
perror("cannot send message to the server");
return 1;


printf("client got message : %s\n",buffer);
close(sock);
return 0;
参考技术A 纯C的???

这个够纯
//////////////////////////////////////////////////
// TCPServer.cpp文件

#include "../common/InitSock.h"
#include <stdio.h>

CInitSock(BYTE minorVer, BYTE majorVer)

BYTE minorVer = 2, majorVer = 2
// 初始化WS2_32.dll
WSADATA wsaData;
WORD sockVersion = MAKEWORD(minorVer, majorVer);
if(::WSAStartup(sockVersion, &wsaData) != 0)

exit(0);



int main()

// 创建套节字
SOCKET sListen = ::socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if(sListen == INVALID_SOCKET)

printf("Failed socket() \n");
return 0;


// 填充sockaddr_in结构
sockaddr_in sin;
sin.sin_family = AF_INET;
sin.sin_port = htons(4567);
sin.sin_addr.S_un.S_addr = INADDR_ANY;

// 绑定这个套节字到一个本地地址
if(::bind(sListen, (LPSOCKADDR)&sin, sizeof(sin)) == SOCKET_ERROR)

printf("Failed bind() \n");
return 0;


// 进入监听模式
if(::listen(sListen, 2) == SOCKET_ERROR)

printf("Failed listen() \n");
return 0;


// 循环接受客户的连接请求
sockaddr_in remoteAddr;
int nAddrLen = sizeof(remoteAddr);
SOCKET sClient;
char szText[] = " TCP Server Demo! \r\n";
while(TRUE)

// 接受一个新连接
sClient = ::accept(sListen, (SOCKADDR*)&remoteAddr, &nAddrLen);
if(sClient == INVALID_SOCKET)

printf("Failed accept()");
continue;


printf(" 接受到一个连接:%s \r\n", inet_ntoa(remoteAddr.sin_addr));

// 向客户端发送数据
::send(sClient, szText, strlen(szText), 0);
// 关闭同客户端的连接
::closesocket(sClient);


// 关闭监听套节字
::closesocket(sListen);

return 0;
参考技术B 我看热闹! 参考技术C 我也正在学习UDP
论坛上有很多源程序,建议多在百度上搜搜
参考技术D 那个头文件?

以上是关于用C语言MessageBox~编写段对当前窗口发送后台信息的程序的主要内容,如果未能解决你的问题,请参考以下文章

C语言怎么自定义MessageBox函数的按钮?要新窗口吗?

C语言中messagebox的用法

怎么用C语言编定时器?

能否给我一个用纯C编写的UDP发送和接收的程序

怎么用C语言编写一个windows窗口?

WinForm------弹出MessageBox窗口的同时隐藏当前窗口