【C/C++学院】(2)函数/Lua/数组/恶搞程序(修改桌面背景,播放音乐)
1.函数
主要是为了代码重用。
函数就是对某一特定功能的抽象。
模拟键盘输入:keybd_event();不断花费广告人在百度中的广告费。
#include <stdio.h>
#include <stdlib.h>
#include <Windows.h>
void OpenBaidu()
{
ShellExecuteA(0, "open", "https://www.baidu.com", 0, 0, 3);
}
void CloseBaidu()
{
system("taskkill /f /im 360se.exe");
}
void Input()//模拟键盘输入xianhua
{
keybd_event('X', 0, 0, 0);//按下
keybd_event('X', 0, 2, 0);//抬起
Sleep(300);
keybd_event('I', 0, 0, 0);
keybd_event('I', 0, 2, 0);
Sleep(300);
keybd_event('A', 0, 0, 0);//按下
keybd_event('A', 0, 2, 0);//抬起
Sleep(300);
keybd_event('N', 0, 0, 0);//按下
keybd_event('N', 0, 2, 0);//抬起
Sleep(300);
keybd_event('H', 0, 0, 0);//按下
keybd_event('H', 0, 2, 0);//抬起
Sleep(300);
keybd_event('U', 0, 0, 0);//按下
keybd_event('U', 0, 2, 0);//抬起
Sleep(300);
keybd_event('A', 0, 0, 0);//按下
keybd_event('A', 0, 2, 0);//抬起
Sleep(300);
keybd_event(0x0D, 0, 0, 0);//按下回车
keybd_event(0x0D, 0, 2, 0);//抬起
}
void Click()//鼠标单击
{
//移动到屏幕位置
//mouse_event(MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_MOVE, 200 * 65535 / 1440, 400 * 65535 / 900, 0, 0);
SetCursorPos(200, 400);
Sleep(2000);
mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
}
void main()
{
for (;;)
{
OpenBaidu();
Sleep(5000);
Input();
Sleep(3000);
Click();
Sleep(5000);
CloseBaidu();
}
}
参数传递是单向传递;

副本机制;
函数声明可以有多个, 但是函数实体只能有一个。
函数名的本质是内存地址。
接口:高内聚,低耦合
360杀毒软件的架构例子:
服务器端更新脚本,客户端软件更加脚本进行相应的杀毒处理。

2.Lua 是一个小巧的脚本语言
其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。Lua由标准C编写而成,几乎在所有操作系统和平台上都可以编译,运行。Lua并没有提供强大的库,这是由它的定位决定的。所以Lua不适合作为开发独立应用程序的语言。
Lua脚本可以很容易的被C/C++ 代码调用,也可以反过来调用C/C++的函数Lua由标准C编写而成,代码简洁优美,几乎在所有操作系统和平台上都可以编译,运行。一个完整的Lua解释器不过200k,在目前所有脚本引擎中,Lua的速度是最快的。这一切都决定了Lua是作为嵌入式脚本的最佳选择。
3.数组
数组访问的两种形式;
num[i] <--> *(num+i);
&num[i] <-->num+i;
#include <stdio.h>
#include <stdlib.h>
void main()
{
int a[10] = { 0 };
time_t ts;
srand((unsigned int )time(&ts));
for (int i = 0; i < 10; i++)
{
a[i] = rand()%100;
printf("%d, ", a[i]);
}
printf("\n");
for (int i = 0; i < 10; i++)
{
printf("%d, %d ,%x, %x\n",a[i],*(a+i), &a[i], (a+i));
}
system("pause");
}

选择法排序;
#include <stdio.h>
#include <stdlib.h>
void SelectSort(int a[], int n)
{
int i, j, min, temp;
for (i = 0; i < n; i++)
{
min = i;//min为最小值的数组下标
for (j = i + 1; j < n; j++)
{
if (a[j] < a[min])
{
min = j;
}
}
if (min != i)
{
temp = a[min];
a[min] = a[i];
a[i] = temp;
}
}
}
void main()
{
int a[10] = { 0 };
time_t ts;
srand((unsigned int )time(&ts));
for (int i = 0; i < 10; i++)
{
a[i] = rand()%100;
printf("%d, ", a[i]);
}
printf("\n");
SelectSort(a, 10);
for (int i = 0; i < 10; i++)
{
printf("%d, ", a[i]);
}
system("pause");
}
冒泡法排序;
#include <stdio.h>
#include <stdlib.h>
void BubbleSort(int a[], int n)
{
int i, j, temp;
for (int i = 0; i < n - 1; i++)
{
for (int j = 0; j < n - 1 - i; j++)
{
if (a[j]>a[j + 1])
{
temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
}
void main()
{
int a[10] = { 0 };
time_t ts;
srand((unsigned int )time(&ts));
for (int i = 0; i < 10; i++)
{
a[i] = rand()%100;
printf("%d, ", a[i]);
}
printf("\n");
BubbleSort(a, 10);
for (int i = 0; i < 10; i++)
{
printf("%d, ", a[i]);
}
system("pause");
}
4.恶搞程序(修改桌面背景,播放音乐)
#include <Windows.h>
void main()
{
char buf[100] = { 0 };
int i = 3;
sprintf(buf, "E:\\bj\\%d.jpg", i);
SystemParametersInfoA(20, 0, buf, 3);//20--桌面背景, 3--立即执行
//SystemParametersInfoA(20, 0, "E:\\bj\\0.jpg", 3);//20--桌面背景, 3--立即执行
ShellExecuteA(0, "open", "E:\\bj\\0.mp3", 0, 0, SW_NORMAL);//播放音乐
}
最后更新:2017-04-03 12:56:21