小彩蛋(窗口蹦跶器,可以让想要的窗口蹦跶,这里已QQ为例子):
可爱的win操作系统,一切皆窗口,程序开发,无非就两种形式,界面以及数据,win中的界面就是窗口,所见即所得,就是窗口的最好诠释。
以下是完整代码:
#include
#include
#include
#include
using namespace std;
int main() {
cout << "您好,您的电脑已经中毒,不信打开QQ试试" << endl;
//循环检测是否存在我们要调整的窗口
while (1)
{
HWND hwnd;
hwnd = FindWindow("TXGuiFoundation", "QQ");
if (hwnd) {
srand((unsigned)time(NULL));
int cx = GetSystemMetrics(SM_CXSCREEN); //获取屏幕宽度度
int cy = GetSystemMetrics(SM_CYSCREEN); //获取屏幕高度
MoveWindow(hwnd, rand() % cx, rand() % cy, rand() % cx, rand() % cy, true);
Sleep(20);
}
}
system("pause");
return 0;
}
这是一个控制台程序,出于惯例,请看:
效果演示:
不得不吐槽以下优酷,上传视频竟然审核不通过,哎,心累,后续在补上,想看的移步百度云:
链接:https://pan.baidu.com/s/1ETJafEV7vNYSf0-qLStRjw
提取码:9737
其实不管是qq,还是其他,你要你能看见的在win下即是窗口,这个程序的完善之一就是可以检测是否存在我们所需要调整的窗口,当然,后续还有很多要完善的,比如多线程应用控制多个窗口,还有就是循环遍历打开的进程,开机自启,隐藏控制台等等(以后补上)
彩蛋的代码已经看完了,下面可以看看思路了:
1、HWND hwnd;
hwnd = FindWindow("TXGuiFoundation", "QQ");//寻找窗口
看一下定义:HWND句柄,上回书说到这可以获取我们所需要的内存资源,因此,我们可以通过内部API操纵此标识符对应的内存(也就是窗口),
详解:如何获取里面的参数,这里有个小工具(spy++)
2、MoveWindow(hwnd, rand() % cx, rand() % cy, rand() % cx, rand() % cy, true);//改变内存资源,第一个参数就是我们找到的内存资源,其余的都很简单,宽高位置,
3、就可以看到我们的效果了,对了,百度云的效果演示的录屏工具也可以自己写哦~~
就这几步,是不是很简单,好了,了解了这种思想,我们可以开发软件了(后续)。
当然,这只是个很简单很不完善的程序,有兴趣的可以对其进行优化。
所谓程序,只是处理我们的数据,并返回所需要的数据;所谓软件,就是实现我们对数据操作的界面。
---雷·冰