傳智播客C基礎(chǔ):Day3

傳智播客C/C++:尹成C基礎(chǔ)


Day3

1.控制鼠標(biāo)鍵盤

//注意關(guān)閉360安全衛(wèi)士植阴,否則會攔截

#include <stdio.h>
#include <stdlib.h>
#inlcude <windows.h>//調(diào)用系統(tǒng)函數(shù)庫
/*控制鍵盤實現(xiàn)輸入組合鍵*/
/*WIN+R*/
keybd_event(VK_RWIN,0,0,0);//win鍵按下
keybd_event('R',0,0,0);//R鍵按下
Sleep(20);//模擬鍵盤延遲
keybd_event('R',0,KEYEVENTF_KEYUP,0);//R鍵抬起
keybd_event(VK_RWIN,0,2,0);//win鍵抬起

1.1Keyevent()函數(shù)實現(xiàn)控制鍵盤

 VOID keybd_event(
    BYTE bVk, // virtual-key code
  BYTE bScan, // hardware scan code
  DWORD dwFlags, // flags specifying various function options
  DWORD dwExtraInfo // additional data associated with keystroke
  );
 //鍵值表:https://msdn.microsoft.com/en-us/library/dd375731(v=vs.85).aspx

1.1.1模擬WIN+R并打開NOTEPAD

int main()
{
    //模擬WIN+R 并且打開notepad
    keybd_event(VK_RWIN, 0, 0, 0);
    keybd_event('R', 0, 0, 0);
    Sleep(200);
    keybd_event('R', 0, KEYEVENTF_KEYUP, 0);
    keybd_event(VK_RWIN, 0, KEYEVENTF_KEYUP, 0);
    //輸入notepad
    Sleep(500);
    keybd_event('N', 0, 0, 0);//鍵盤輸入访敌,哪有大小寫字母的區(qū)別
    Sleep(20);
    keybd_event('N', 0, KEYEVENTF_KEYUP, 0);
    keybd_event('O', 0, 0, 0);//鍵盤輸入法瑟,哪有大小寫字母的區(qū)別
    Sleep(20);
    keybd_event('O', 0, KEYEVENTF_KEYUP, 0);
    keybd_event('T', 0, 0, 0);//鍵盤輸入,哪有大小寫字母的區(qū)別
    Sleep(20);
    keybd_event('T', 0, KEYEVENTF_KEYUP, 0);
    keybd_event('E', 0, 0, 0);//鍵盤輸入责循,哪有大小寫字母的區(qū)別
    Sleep(20);
    keybd_event('E', 0, KEYEVENTF_KEYUP, 0);
    keybd_event('P', 0, 0, 0);//鍵盤輸入,哪有大小寫字母的區(qū)別
    Sleep(20);
    keybd_event('P', 0, KEYEVENTF_KEYUP, 0);
    keybd_event('A', 0, 0, 0);//鍵盤輸入寂玲,哪有大小寫字母的區(qū)別
    Sleep(20);
    keybd_event('A', 0, KEYEVENTF_KEYUP, 0);
    keybd_event('D', 0, 0, 0);//鍵盤輸入殷绍,哪有大小寫字母的區(qū)別
    Sleep(20);
    keybd_event('D', 0, KEYEVENTF_KEYUP, 0);

    keybd_event(VK_RETURN, 0, 0, 0);
    Sleep(200);
    keybd_event(VK_RETURN, 0, KEYEVENTF_KEYUP, 0);

}

1.2Mouseevent()函數(shù)實現(xiàn)控制鼠標(biāo)

void main3()
{
    //鼠標(biāo)模擬
    //WIN+D回到桌面
    Sleep(200);
    keybd_event(0x5b, 0, 0, 0);
    keybd_event('D', 0, 0, 0);
    Sleep(200);
    keybd_event('D', 0, 2, 0);
    keybd_event(0x5b, 0, 2, 0);
    Sleep(200);
    SetCursorPos(40, 40);//設(shè)置焦點
    //實現(xiàn)雙擊
    mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
    mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
    mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
    mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
    system("pause");

}

2.OllyDby窗口工具

利用這個插件,可以獲得活動窗口的句柄桐经,但是這個插件我沒找到毁兆。原本以為是獲取了窗口的句柄之后,可以利用程序模擬鼠標(biāo)鍵盤對其操作阴挣,但是老師并沒有講气堕。

3.常量與變量

3.1定義常量的兩種方式

#define name "yincheng"
#define age 10
const char str[30] = "yincheng";
const int age = 30;

3.2不用新的變量實現(xiàn)x,y值的互換(節(jié)約內(nèi)存)

int x = 15;
int y = 20;
x = x+y;
y = x-y;
x = x-y;

3.3變量的數(shù)據(jù)類型

3.3.1進(jìn)制轉(zhuǎn)換

二進(jìn)制轉(zhuǎn)換成八進(jìn)制:

001 101 010 100 110 010
  1   5   2   4   6   2

二進(jìn)制轉(zhuǎn)換成十六進(jìn)制:

0001  1010 0010 1101
   1     A    2    D

二進(jìn)制與十進(jìn)制小數(shù)互轉(zhuǎn):
(0.1)2=2^-1=0.5
(0.5)10=2 * 0.5=1->0.1
十進(jìn)制轉(zhuǎn)換成二進(jìn)制:乘2取整
0.752=1.5->1;
0.5
2=1->1;
(0.75)10=>(0.11)2

3.3.2數(shù)據(jù)類型的作用

sizeof不是函數(shù)而是運算符,所以不需要調(diào)用任何頭文件畔咧。

3.3.3符號的意義

#include <stdio.h>
#include <limits.h> 

void main()
{
    signed int num = INT_MAX;//limits.h里定義了原型
    unsigned int unum = UINT_MAX;

    printf("%d,%d", sizeof(signed int), sizeof(unsigned int));
    printf("\n%ld,%ud\n", num, unum); //注意這里ud是無符號整數(shù)
    system("pause");
}

3.3.4寫DLL模塊茎芭,用DllInject注入進(jìn)程

/*打開百度,自動搜索JAVA點廣告*/
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <shellapi.h>


void openbaidu()
{
    ShellExecuteA(NULL, "open", "http://www.baidu.com", NULL,NULL,SW_NORMAL);
    //system("調(diào)用IE"),但是這樣是同步打開誓沸,必須關(guān)閉之后才執(zhí)行后面的
}

void search_java()
{
    keybd_event('J', 0, 0, 0);
    keybd_event('J', 0, KEYEVENTF_KEYUP, 0);
    keybd_event('A', 0, 0, 0);
    keybd_event('A', 0, KEYEVENTF_KEYUP, 0);
    keybd_event('V', 0, 0, 0);
    keybd_event('V', 0, KEYEVENTF_KEYUP, 0);
    keybd_event('A', 0, 0, 0);
    keybd_event('A', 0, KEYEVENTF_KEYUP, 0);
    keybd_event(VK_RETURN, 0, 0, 0);
    keybd_event(VK_RETURN, 0, KEYEVENTF_KEYUP, 0);

}

void click_AD()
{
    Sleep(200);
    SetCursorPos(421, 230);
    Sleep(200);
    mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
    mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
    Sleep(300);//注意這里的等待時間
    mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
    mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
}

_declspec(dllexport) void run()
{
    
    openbaidu();
    Sleep(3000);
    search_java();
    click_AD();
    //system("pause");
}

3.3.5MssageBoxA()函數(shù)

#include<stdio.h>
#include<windows.h>
void main()
{
    MessageBoxA(0, "第一個C窗體程序", "消息", 3);
    //參數(shù)1:系統(tǒng)彈出
    //  參數(shù)2:消息內(nèi)容
    //  參數(shù)3:標(biāo)題
    //  參數(shù)4:對話框的類型
        //  0  只有 確定 按鈕梅桩;
        //  1  確定 取消 按鈕;
        //  2  終止 重試 忽略 按鈕
        //  3  是 否 取消 按鈕
    getchar();
}

3.3.6ShellExcuteA()函數(shù)

#include<windows.h>
void main()
{
    //  _In_opt_ HWND hwnd, //系統(tǒng)啟動
    //_In_opt_ LPCSTR lpOperation,//open打開
    //_In_ LPCSTR lpFile,//指令
    //_In_opt_ LPCSTR lpParameters,//默認(rèn)0
    //_In_opt_ LPCSTR lpDirectory,//默認(rèn)0
    //_In_ INT nShowCmd//0隱藏 3最大化 6最小化 其余正常
    ShellExecuteA(0, "open", "notepad", 0, 0, 3);//最大化打開記事本  
    ShellExecuteA(0, "open", "tasklist", 0, 0, 1);//執(zhí)行tasklist命令  
    ShellExecuteA(0, "open", "www.baidu.com", 0, 0, 3);//打開百度網(wǎng)站
    ShellExecuteA(0, "open", "C:\\Users\\Administrator\\Desktop\\筆記2.txt", 0, 0, 3);//打開txt文件
    ShellExecuteA(0, "print", "C:\\Users\\Administrator\\Desktop\\翻譯.docx", 0, 0, 0);//調(diào)用打印機打印
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末拜隧,一起剝皮案震驚了整個濱河市宿百,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌洪添,老刑警劉巖垦页,帶你破解...
    沈念sama閱讀 206,602評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異干奢,居然都是意外死亡痊焊,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評論 2 382
  • 文/潘曉璐 我一進(jìn)店門忿峻,熙熙樓的掌柜王于貴愁眉苦臉地迎上來宋光,“玉大人,你說我怎么就攤上這事炭菌∽锛眩” “怎么了?”我有些...
    開封第一講書人閱讀 152,878評論 0 344
  • 文/不壞的土叔 我叫張陵黑低,是天一觀的道長赘艳。 經(jīng)常有香客問我酌毡,道長,這世上最難降的妖魔是什么蕾管? 我笑而不...
    開封第一講書人閱讀 55,306評論 1 279
  • 正文 為了忘掉前任枷踏,我火速辦了婚禮,結(jié)果婚禮上掰曾,老公的妹妹穿的比我還像新娘旭蠕。我一直安慰自己,他們只是感情好旷坦,可當(dāng)我...
    茶點故事閱讀 64,330評論 5 373
  • 文/花漫 我一把揭開白布掏熬。 她就那樣靜靜地躺著,像睡著了一般秒梅。 火紅的嫁衣襯著肌膚如雪旗芬。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,071評論 1 285
  • 那天捆蜀,我揣著相機與錄音疮丛,去河邊找鬼。 笑死辆它,一個胖子當(dāng)著我的面吹牛誊薄,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播锰茉,決...
    沈念sama閱讀 38,382評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼暇屋,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了洞辣?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,006評論 0 259
  • 序言:老撾萬榮一對情侶失蹤昙衅,失蹤者是張志新(化名)和其女友劉穎扬霜,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體而涉,經(jīng)...
    沈念sama閱讀 43,512評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡著瓶,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,965評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了啼县。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片材原。...
    茶點故事閱讀 38,094評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖季眷,靈堂內(nèi)的尸體忽然破棺而出余蟹,到底是詐尸還是另有隱情,我是刑警寧澤子刮,帶...
    沈念sama閱讀 33,732評論 4 323
  • 正文 年R本政府宣布威酒,位于F島的核電站窑睁,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏葵孤。R本人自食惡果不足惜担钮,卻給世界環(huán)境...
    茶點故事閱讀 39,283評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望尤仍。 院中可真熱鬧箫津,春花似錦、人聲如沸宰啦。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,286評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽绑莺。三九已至暖眼,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間纺裁,已是汗流浹背诫肠。 一陣腳步聲響...
    開封第一講書人閱讀 31,512評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留欺缘,地道東北人栋豫。 一個月前我還...
    沈念sama閱讀 45,536評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像谚殊,于是被迫代替她去往敵國和親丧鸯。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,828評論 2 345

推薦閱讀更多精彩內(nèi)容