用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的
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~编写段对当前窗口发送后台信息的程序的主要内容,如果未能解决你的问题,请参考以下文章