当前位置: 首页 > news >正文

伊川网站开发网络营销的四个特点

伊川网站开发,网络营销的四个特点,移动网站建设商,响应式 外贸网站 css小众软件的文章“Win7 Appinn Desktop - 模拟 Windows 7 的盲按显示桌面效果”介绍了一个把鼠标移到屏幕左上角或者右下角点一下就可以做到“WinD”效果的小程序。 这是个挺不错的应用,但是尽管原程序只有几百KB,运行以后它要用到5-6MB。我觉得程序中或许…

小众软件的文章“Win7 Appinn Desktop - 模拟 Windows 7 的盲按显示桌面效果”介绍了一个把鼠标移到屏幕左上角或者右下角点一下就可以做到“Win+D”效果的小程序。

这是个挺不错的应用,但是尽管原程序只有几百KB,运行以后它要用到5-6MB。我觉得程序中或许有冗余的东西,不过原程序是用AutoHotkey写的,我对AHK不是很熟悉——确切的说,我也不是很喜欢AHK这类语言。or程序?所以我想要自己写个类似的东西。不过,说实话我的能力实在不是很强。幸好还有Google大婶在。

首先我要做的是实现——用程序模拟键盘按键。

先看一下下面的乱七八糟的C++ code。

// CPP_SimulateWinD.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <windows.h>

/***********
int _tmain(int argc, _TCHAR* argv[])
{
printf("Program Started...\n\n");
LASTINPUTINFO myInfo;
myInfo.cbSize = sizeof(myInfo);
BOOL myResult = GetLastInputInfo(&myInfo);
if(myResult) printf("Get info successfully...");
printf("...Program Completed\n\n");

system("PAUSE");
return 0;
}
*******************/

INPUT *key;
INPUT *key2;
INPUT Inputs[2];

void _SendInput(char ch);
void _SendInput();
void _SendInputV2();

void main(){

char end;
HWND windowHandle = FindWindow(0, "*new 1 - Notepad++");
//INPUT *key;
if(windowHandle == NULL)
printf("Notepad++ window not found.");
SetForegroundWindow(windowHandle);
Sleep(1000);

key = new INPUT;
key2 = new INPUT;
//for(int i='A'; i<'Z'; i++){
// _SendInput(i);
//}
//_SendInput();
_SendInputV2();
printf("Key inputted.");

system("PAUSE");
}

void _SendInput(char ch){
key->type = INPUT_KEYBOARD;
key->ki.wVk = ch;
//key->ki.wVk = VK_LWIN;
key->ki.dwFlags = 0;
key->ki.time = 0;
key->ki.wScan = 0;
key->ki.dwExtraInfo = KEYEVENTF_KEYUP;
SendInput(1, key, sizeof(INPUT));
//key->ki.dwExtraInfo = KEYEVENTF_KEYUP;
//SendInput(1, key, sizeof(INPUT));
Sleep(500);
}

void _SendInput(){
key->type = INPUT_KEYBOARD;
//key->ki.wVk = 'D';
key->ki.wVk = VK_LWIN;
key->ki.dwFlags = 0;
key->ki.time = 0;
key->ki.wScan = 0;
//key->ki.dwExtraInfo = KEYEVENTF_KEYUP;
key->ki.dwExtraInfo = 0;
SendInput(1, key, sizeof(INPUT));

key2->type = INPUT_KEYBOARD;
key2->ki.wVk = 'D';
//key2->ki.wVk = VK_LWIN;
key2->ki.dwFlags = 0;
key2->ki.time = 0;
key2->ki.wScan = 0;
//key2->ki.dwExtraInfo = KEYEVENTF_KEYUP;
key2->ki.dwExtraInfo = 0;
SendInput(1, key2, sizeof(INPUT));
key->ki.dwExtraInfo = KEYEVENTF_KEYUP;
SendInput(1, key, sizeof(INPUT));
key2->ki.dwExtraInfo = KEYEVENTF_KEYUP;
SendInput(1, key2, sizeof(INPUT));
//key->ki.dwExtraInfo = KEYEVENTF_KEYUP;
//SendInput(1, key, sizeof(INPUT));
Sleep(500);
}

void _SendInputV2(){
memset(Inputs, 0, sizeof(INPUT));
Inputs[0].type = INPUT_KEYBOARD;
//Inputs[0].ki.wVk = VK_LWIN;
Inputs[0].ki.wVk = 'F';
Inputs[1] = Inputs[0];
Inputs[1].ki.wVk = 'D';
SendInput(2, Inputs, sizeof(INPUT));
//Release WinKey + D
Inputs[0].ki.dwFlags = KEYEVENTF_KEYUP;
Inputs[1].ki.dwFlags = KEYEVENTF_KEYUP;
SendInput(2, Inputs, sizeof(INPUT));
}

如上面code中所示,三个methods分别用来做:

void _SendInput(char ch):接受一个character,并把它发送给当前in focus的窗口,相当于按了一下相对应的键。
void _SendInput():我是想要做出Win+D的show desktop的效果的,这个method和下一个都是这个目的。不过,这个里面,WInKey和D是分别定义的,当然在SendInput() method也是被call了两次。结果是这样子不行,所以有了下面的Version。
void _SendInputV2():这个里面WinKey和D定义在一个INPUT array里面,而SendInput()同样只调用了一次,pass给它的是那个array。这个成功了。

有一点需要注意的是,在SendInput()模拟过Win+D之后要set两个INPUT structure的ki.dwFlags成KEYEVENTF_KEYUP再调用一下这个SendInput(),这样子就release了WinKey+D键了——因为第一次SendInput()时,两个按键是被按着(press)并没有放开(release)的,而改过上面所说的flag后,再一次SendInput()就相当于松开了两个按键。

另外,code中用到的几个function,在MSDN中都有相应的条目。

SendInput Function
FindWindow Function
INPUT Structure
KEYBDINPUT Structure

另外一篇中文的文章“用应用程序模拟键盘和鼠标按键”提到了用Keybd_event和mouse_event这两个function来做同样的事情。这两个function连同上面我用到的几个都是MSDN Library中的,等有时间了我再研究一下它们的异同吧。

转载于:https://www.cnblogs.com/yearslost/archive/2009/03/31/1426244.html

http://www.wooajung.com/news/35355.html

相关文章:

  • 做最好的网站新新广州百度首页优化
  • 有哪些做封面的网站seo技术团队
  • 可以做装修效果图的网站新网站怎么推广
  • 跟有流量的网站做友情链接国家反诈中心app下载
  • 个人网站建设流程 域名注册的选择百度影响力排名顺序
  • b站必看的纪录片百度号码认证平台官网
  • 网站建设公司的公司哪家好广州市疫情最新
  • 北京时代 网站建设苹果被曝开发搜索引擎对标谷歌
  • 广告制作合同范本信息流优化师是干什么的
  • 门户网站开发怎么收费电商平台怎么运营的
  • 外国人做汉字网站网络宣传的方法渠道
  • 哪个网站做演唱会门票新手网络推广怎么干
  • 在阿里云上做网站步骤网络热词
  • 大连网龙网络科技有限公司南昌seo排名扣费
  • 营销型企业网站推广的方法有哪些企业网站建设需要多少钱
  • 怎么把自己做的网页生成链接seo的推广技巧
  • 海外网络搭建sem和seo的区别
  • 重庆江北网站建设电商自学网
  • 联谊会总结网站建设对外宣传榆林seo
  • 医院网站优化策划地推网app推广平台
  • 不准别人网站做反链市场调研分析报告
  • 自学html做网站要多久企业培训课程设置
  • 江西网站优化抖音视频seo霸屏
  • 网站设计与网页制作培训百度问答我要提问
  • 老司机做爰网站庆云网站seo
  • 网络规划设计师教程第二版甘肃seo技术
  • 三门峡做网站公司关键词代发排名
  • 贵阳网站建设企业郴州网络推广公司排名
  • 网站如何做品牌宣传百度营销app
  • 哈尔滨网站seo东莞网站建设快速排名