DLL命令表
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
|
.版本 2 .DLL命令 GetPrivateProfileInt, 整數(shù)型, , "GetPrivateProfileIntA" .參數(shù) lpAppName, 文本型 .參數(shù) lpKeyName, 文本型 .參數(shù) nDefault, 整數(shù)型 .參數(shù) lpFileName, 文本型 .DLL命令 GetPrivateProfileString, 整數(shù)型, , "GetPrivateProfileStringA" .參數(shù) lpAppName, 文本型 .參數(shù) lpKeyName, 文本型 .參數(shù) lpDefault, 文本型 .參數(shù) lpReturnedString, 文本型, 傳址 .參數(shù) nSize, 整數(shù)型 .參數(shù) lpFileName, 文本型 .DLL命令 TerminateThread, 整數(shù)型, , "TerminateThread" .參數(shù) hThread, 整數(shù)型 .參數(shù) dwExitCode, 整數(shù)型 .DLL命令 CloseHandle, 整數(shù)型, , "CloseHandle" .參數(shù) Object, 整數(shù)型 .DLL命令 PostMessage, 整數(shù)型, , "PostMessageA" .參數(shù) hWnd, 整數(shù)型 .參數(shù) Msg, 整數(shù)型 .參數(shù) wParam, 整數(shù)型 .參數(shù) lParam, 整數(shù)型 .DLL命令 RegisterHotKey, 整數(shù)型, , "RegisterHotKey" .參數(shù) hWnd, 整數(shù)型 .參數(shù) id, 整數(shù)型 .參數(shù) fsModifiers, 整數(shù)型 .參數(shù) vk, 整數(shù)型 .DLL命令 CreateThread, 整數(shù)型, , "CreateThread" .參數(shù) SecurityAttributes, 整數(shù)型 .參數(shù) StackSize, 整數(shù)型 .參數(shù) StartFunction, 整數(shù)型 .參數(shù) ThreadParameter, 整數(shù)型 .參數(shù) CreationFlags, 整數(shù)型 .參數(shù) ThreadId, 整數(shù)型, 傳址 .DLL命令 WideCharToMultiByte1, 整數(shù)型, "kernel32.dll", "WideCharToMultiByte" .參數(shù) CodePage, 整數(shù)型, , CodePage .參數(shù) dwFlags, 整數(shù)型, , dwFlags .參數(shù) lpWideCharStr, 字節(jié)集, , lpWideCharStr .參數(shù) cchWideChar, 整數(shù)型, , cchWideChar .參數(shù) lpMultiByteStr, 整數(shù)型, , lpMultiByteStr .參數(shù) cchMultiByte, 整數(shù)型, , cchMultiByte .參數(shù) lpDefaultChar, 整數(shù)型, , lpDefaultChar .參數(shù) lpUsedDefaultChar, 邏輯型, , lpUsedDefaultChar .DLL命令 WideCharToMultiByte, , "kernel32.dll", "WideCharToMultiByte" .參數(shù) CodePage, 整數(shù)型, , CodePage .參數(shù) dwFlags, 整數(shù)型, , dwFlags .參數(shù) lpWideCharStr, 字節(jié)集, , lpWideCharStr .參數(shù) cchWideChar, 整數(shù)型, , cchWideChar .參數(shù) lpMultiByteStr, 字節(jié)集, , lpMultiByteStr .參數(shù) cchMultiByte, 整數(shù)型, , cchMultiByte .參數(shù) lpDefaultChar, 整數(shù)型, , lpDefaultChar .參數(shù) lpUsedDefaultChar, 邏輯型, , lpUsedDefaultChar .DLL命令 CreateFile, 整數(shù)型, , "CreateFileA" .參數(shù) lpFileName, 文本型 .參數(shù) dwDesiredAccess, 整數(shù)型 .參數(shù) dwShareMode, 整數(shù)型 .參數(shù) lpSecurityAttributes, 整數(shù)型 .參數(shù) dwCreationDisposition, 整數(shù)型 .參數(shù) dwFlagsAndAttributes, 整數(shù)型 .參數(shù) hTemplateFile, 整數(shù)型 .DLL命令 ReadDirectoryChangesW, 邏輯型, , "ReadDirectoryChangesW" .參數(shù) hDirectory, 整數(shù)型 .參數(shù) lpbuff, _FILE_NOTIFY_INFORMATION, 傳址 .參數(shù) nBufferLength, 整數(shù)型 .參數(shù) bWatchSubtree, 邏輯型 .參數(shù) dwNotifyFilter, 整數(shù)型 .參數(shù) lpBytesReturned, 整數(shù)型, 傳址 .參數(shù) lpOverlapped, OVERLAPPED, 傳址 .參數(shù) lpCompletionRoutine, 整數(shù)型 .DLL命令 WritePrivateProfileString, 整數(shù)型, , "WritePrivateProfileStringA" .參數(shù) lpAppName, 文本型 .參數(shù) lpKeyName, 文本型 .參數(shù) lpString, 文本型 .參數(shù) lpFileName, 文本型 |
自定義數(shù)據(jù)類型表
1
2
3
4
5
6
7
8
9
10
11
12
|
.版本 2 .數(shù)據(jù)類型 OVERLAPPED .成員 ternal, 整數(shù)型 .成員 ternalHigh, 整數(shù)型 .成員 低32位, 整數(shù)型 .成員 高32位, 整數(shù)型 .成員 事件句柄, 整數(shù)型 .數(shù)據(jù)類型 _FILE_NOTIFY_INFORMATION .成員 NextEntryOffset, 整數(shù)型 .成員 Action, 整數(shù)型 .成員 FileNameLength, 整數(shù)型 .成員 FileName, 字節(jié)型, , "1024" |
常量數(shù)據(jù)表
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
.版本 2 .常量 WM_SYSCOMMAND, "274" .常量 SC_MINIMIZE, "61472" .常量 MOD_ALT, "1" .常量 GENERIC_READ, "-2147483648" .常量 GENERIC_WRITE, "1073741824" .常量 FILE_SHARE_READ, "1" .常量 FILE_SHARE_WRITE, "2" .常量 FILE_SHARE_DELETE, "4" .常量 FILE_FLAG_BACKUP_SEMANTICS, "33554432" .常量 OPEN_EXISTING, "3" .常量 FILE_NOTIFY_CHANGE_FILE_NAME, "1" .常量 FILE_NOTIFY_CHANGE_DIR_NAME, "2" .常量 FILE_NOTIFY_CHANGE_ATTRIBUTES, "4" .常量 FILE_NOTIFY_CHANGE_SIZE, "8" .常量 FILE_NOTIFY_CHANGE_LAST_WRITE, "16" .常量 FILE_NOTIFY_CHANGE_LAST_ACCESS, "32" .常量 FILE_NOTIFY_CHANGE_CREATION, "64" .常量 FILE_NOTIFY_CHANGE_SECURITY, "256" .常量 FILE_ACTION_ADDED, "1" .常量 FILE_ACTION_REMOVED, "2" .常量 FILE_ACTION_RENAMED_NEW_NAME, "5" .常量 FILE_ACTION_RENAMED_OLD_NAME, "4" .常量 FILE_ACTION_MODIFIED, "3" |
監(jiān)視目錄與文件的代碼
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
|
.版本 2 .支持庫 iext .支持庫 shell .程序集 窗口程序集1 .程序集變量 m_bAddNew0, 整數(shù)型 .程序集變量 m_bDel0, 整數(shù)型 .程序集變量 m_bRename, 整數(shù)型 .程序集變量 m_bModify0, 整數(shù)型 .程序集變量 m_bOther0, 整數(shù)型 .程序集變量 m_strWatchedDir, 文本型 .程序集變量 m_hThread, 整數(shù)型 .程序集變量 hDir, 整數(shù)型 .程序集變量 m_bAlwaysOnTop, 整數(shù)型 .程序集變量 m_bAutoRun, 整數(shù)型 .程序集變量 m_bMinimized, 整數(shù)型 .程序集變量 m_bAutoStart, 整數(shù)型 .程序集變量 m_i, 整數(shù)型 .程序集變量 m_OVERLAPPED, OVERLAPPED .子程序 __啟動窗口_創(chuàng)建完畢 m_bAlwaysOnTop = GetPrivateProfileInt (“Settings”, “AlwaysOnTop”, 0, “.\\Settings.ini”) m_bAutoRun = GetPrivateProfileInt (“Settings”, “AutoRun”, 0, “.\\Settings.ini”) m_bMinimized = GetPrivateProfileInt (“Settings”, “Minimized”, 0, “.\\Settings.ini”) m_bAutoStart = GetPrivateProfileInt (“Settings”, “AutoStart”, 0, “.\\Settings.ini”) m_bAddNew0 = GetPrivateProfileInt (“Selections”, “m_bAddNew”, 0, “.\\Settings.ini”) m_bDel0 = GetPrivateProfileInt (“Selections”, “m_bDel”, 0, “.\\Settings.ini”) m_bRename = GetPrivateProfileInt (“Selections”, “m_bRename”, 0, “.\\Settings.ini”) m_bModify0 = GetPrivateProfileInt (“Selections”, “m_bModify”, 0, “.\\Settings.ini”) m_bOther0 = GetPrivateProfileInt (“Selections”, “m_bOther”, 0, “.\\Settings.ini”) m_strWatchedDir = 取空白文本 (260) GetPrivateProfileString (“Settings”, “監(jiān)視目錄”, “”, m_strWatchedDir, 260, “.\\Settings.ini”) m_hThread = 0 hDir = -1 .如果真 (m_bAlwaysOnTop = 1) OnBtnAlwaysOnTop () .如果真結(jié)束 .如果真 (m_bMinimized = 1) PostMessage (取窗口句柄 (), #WM_SYSCOMMAND, #SC_MINIMIZE, 0) .如果真結(jié)束 .如果真 (m_bAutoStart = 1) OnStart () .如果真結(jié)束 RegisterHotKey (取窗口句柄 (), 199, #MOD_ALT, #Z鍵) IDC_STATE.標(biāo)題 = “你選擇的監(jiān)視目錄為:” + m_strWatchedDir .子程序 __啟動窗口_將被銷毀 .如果真 (m_hThread ≠ 0) TerminateThread (m_hThread, 0) m_hThread = 0 .如果真結(jié)束 .如果真 (hDir ≠ -1) CloseHandle (hDir) hDir = -1 .如果真結(jié)束 .子程序 ThreadProc, 整數(shù)型 .參數(shù) lparam, 整數(shù)型 .局部變量 pNotify, _FILE_NOTIFY_INFORMATION .局部變量 dwBytesReturned, 整數(shù)型 .局部變量 str1, 文本型 .局部變量 temp, 字節(jié)集 hDir = CreateFile (m_strWatchedDir, 位或 (#GENERIC_READ, #GENERIC_WRITE), 位或 (#FILE_SHARE_READ, #FILE_SHARE_WRITE, #FILE_SHARE_DELETE), 0, #OPEN_EXISTING, #FILE_FLAG_BACKUP_SEMANTICS, 0) .如果真 (hDir = -1) 返回 (0) .如果真結(jié)束 .判斷循環(huán)首 (真) .如果 (ReadDirectoryChangesW (hDir, pNotify, 1024, 真, 位或 (#FILE_NOTIFY_CHANGE_FILE_NAME, #FILE_NOTIFY_CHANGE_DIR_NAME, #FILE_NOTIFY_CHANGE_ATTRIBUTES, #FILE_NOTIFY_CHANGE_SIZE, #FILE_NOTIFY_CHANGE_LAST_WRITE, #FILE_NOTIFY_CHANGE_LAST_ACCESS, #FILE_NOTIFY_CHANGE_CREATION, #FILE_NOTIFY_CHANGE_SECURITY), dwBytesReturned, m_OVERLAPPED, 0)) .如果 (pNotify.NextEntryOffset ≠ 0) temp = 字節(jié)數(shù)組轉(zhuǎn)字節(jié)集 (pNotify.FileName) .否則 temp = 字節(jié)數(shù)組轉(zhuǎn)字節(jié)集 (pNotify.FileName) .如果結(jié)束 str1 = Unicode轉(zhuǎn)Ansi (取字節(jié)集左邊 (temp, pNotify.FileNameLength)) m_list.插入表項(xiàng) (-1, 到文本 (取小時(shí) (取現(xiàn)行時(shí)間 ())) + “:” + 到文本 (取分鐘 (取現(xiàn)行時(shí)間 ())) + “:” + 到文本 (取秒 (取現(xiàn)行時(shí)間 ())), , , , ) m_list.置標(biāo)題 (m_list.取表項(xiàng)數(shù) () - 1, 2, m_strWatchedDir + str1) .判斷開始 (pNotify.Action = #FILE_ACTION_ADDED) ' 添加了新文件 m_list.置標(biāo)題 (m_list.取表項(xiàng)數(shù) () - 1, 1, “添加了文件”) .判斷 (pNotify.Action = #FILE_ACTION_REMOVED) ' 刪除了文件 m_list.置標(biāo)題 (m_list.取表項(xiàng)數(shù) () - 1, 1, “刪除了文件”) .判斷 (pNotify.Action = #FILE_ACTION_RENAMED_NEW_NAME) ' 重命名了文件 m_list.置標(biāo)題 (m_list.取表項(xiàng)數(shù) () - 1, 1, “重命名了文件”) .判斷 (pNotify.Action = #FILE_ACTION_RENAMED_OLD_NAME) ' 重命名了文件 m_list.置標(biāo)題 (m_list.取表項(xiàng)數(shù) () - 1, 1, “重命名了文件”) .判斷 (pNotify.Action = #FILE_ACTION_MODIFIED) ' 修改了文件 m_list.置標(biāo)題 (m_list.取表項(xiàng)數(shù) () - 1, 1, “修改了文件”) .默認(rèn) m_list.置標(biāo)題 (m_list.取表項(xiàng)數(shù) () - 1, 1, “未知變化”) ' 未知變化 .判斷結(jié)束 .否則 跳出循環(huán) () .如果結(jié)束 .判斷循環(huán)尾 () 返回 (0) .子程序 Unicode轉(zhuǎn)Ansi, 文本型 .參數(shù) 參數(shù)_數(shù)據(jù), 字節(jié)集 .局部變量 局部_計(jì)數(shù), 整數(shù)型 .局部變量 局部_結(jié)果數(shù)據(jù), 字節(jié)集 .局部變量 局部_結(jié)果文本, 文本型 局部_計(jì)數(shù) = 取字節(jié)集長度 (參數(shù)_數(shù)據(jù)) ÷ 2 ' 字符數(shù)目兩個 局部_計(jì)數(shù) = WideCharToMultiByte1 (936, 512, 參數(shù)_數(shù)據(jù), 局部_計(jì)數(shù), 0, 0, 0, 假) ' 取轉(zhuǎn)換后的數(shù)目 局部_結(jié)果數(shù)據(jù) = 取空白字節(jié)集 (局部_計(jì)數(shù)) WideCharToMultiByte (936, 512, 參數(shù)_數(shù)據(jù), -1, 局部_結(jié)果數(shù)據(jù), 局部_計(jì)數(shù), 0, 假) 局部_結(jié)果文本 = 取字節(jié)集數(shù)據(jù) (局部_結(jié)果數(shù)據(jù), #文本型, ) 返回 (局部_結(jié)果文本) .子程序 字節(jié)數(shù)組轉(zhuǎn)字節(jié)集, 字節(jié)集 .參數(shù) 字節(jié)數(shù)組, 字節(jié)型, 數(shù)組 .局部變量 字節(jié)集, 字節(jié)集 .局部變量 N, 整數(shù)型 .計(jì)次循環(huán)首 (取數(shù)組成員數(shù) (字節(jié)數(shù)組), N) 字節(jié)集 = 字節(jié)集 + 到字節(jié)集 (字節(jié)數(shù)組 [N]) .計(jì)次循環(huán)尾 () 返回 (字節(jié)集) .子程序 OnBtnAlwaysOnTop .子程序 OnStart StartWatch (m_strWatchedDir) IDC_STOP.禁止 = 假 IDC_START.禁止 = 真 IDC_SELECT_DIR.禁止 = 真 IDC_STATE.標(biāo)題 = “正在監(jiān)視````” + m_strWatchedDir .子程序 StartWatch, 邏輯型 .參數(shù) path, 文本型 .局部變量 ThreadId, 整數(shù)型 m_strWatchedDir = path m_hThread = CreateThread (0, 0, 到整數(shù) (&ThreadProc), 0, 0, ThreadId) .如果 (m_hThread = 0) 返回 (假) .否則 返回 (真) .如果結(jié)束 .子程序 _IDC_STOP_被單擊 .如果真 (m_hThread ≠ 0) TerminateThread (m_hThread, 0) m_hThread = 0 .如果真結(jié)束 .如果真 (hDir ≠ -1) CloseHandle (hDir) hDir = -1 .如果真結(jié)束 IDC_STOP.禁止 = 真 IDC_START.禁止 = 假 IDC_SELECT_DIR.禁止 = 假 .子程序 _IDC_CLEAR_被單擊 m_list.全部刪除 () .子程序 _IDC_SELECT_DIR_被單擊 m_strWatchedDir = 瀏覽文件夾 (“”, 假) .如果真 (m_strWatchedDir = “”) m_strWatchedDir = “c:\” 返回 () .如果真結(jié)束 WritePrivateProfileString (“settings”, “監(jiān)視目錄”, m_strWatchedDir, “.\\Settings.ini”) IDC_STATE.標(biāo)題 = “你選擇了監(jiān)視:” + m_strWatchedDir .子程序 _IDC_START_被單擊 OnStart () .子程序 _IDC_ABOUT_被單擊 信息框 (“Hello World”, 0, ) |
運(yùn)行結(jié)果:
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對服務(wù)器之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接