版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、尊敬的各位評(píng)委,各位老師: 你們好,我叫,來自140406班的LZ組合。我們組的題目是連連看輔助工具。 在作品演講之前,請(qǐng)?jiān)试S我代表我們小組感謝黑馬IT學(xué)院和計(jì)算機(jī)學(xué)院能夠提供給我這樣一個(gè)展示自我的平臺(tái),謝謝(行禮) 下面,開始我們組的品演示,首先,打開我們的連連看輔助工具,因?yàn)樵谥谱髦?,我們小組考慮到不同系統(tǒng)的用戶需求,所以制作了三個(gè)版本的“連連看輔助工具”,并分別對(duì)應(yīng)W7 32位操作系統(tǒng),W7 64位操作系統(tǒng)和W8 64位操作系統(tǒng),由于我的電腦是W8 64位操作系統(tǒng),所以就只演示W(wǎng)8 64位版本的。 接下來,讓我們進(jìn)入游戲,考慮到時(shí)間問題,所以只用練習(xí)模式來演示,首先嘗試“單消”功能,所
2、謂單消,顧名思義,便是只消除一對(duì)棋子的意思,它是本游戲的基礎(chǔ),接下來的一些中重要的功能都是圍繞著它展開;然后,讓我們嘗試一下“秒殺”功能,“秒殺”就是全屏清除,我們可以多嘗試幾個(gè)圖(演示); 接下來,讓我們嘗試一下“自動(dòng)掛機(jī)”功能,勾選“自動(dòng)掛機(jī)”我們會(huì)發(fā)現(xiàn)游戲開始自動(dòng)以一個(gè)一個(gè)的消除,同時(shí)我們也可以通過移動(dòng)下面的滑塊來調(diào)節(jié)自動(dòng)掛機(jī)的速度,這就是我們的“掛機(jī)速度調(diào)節(jié)”功能(演示); 至于“去游戲倒計(jì)時(shí)”功能,是取消游戲倒計(jì)時(shí),讓游戲無比流暢;而“無限道具”功能,則是讓游戲的道具增加,下面我給大家試一下(演示) 接下來“自動(dòng)開局”功能為了讓游戲自動(dòng)開始;“窗口置頂”功能是將游戲頁面放在桌面最上方
3、,便于對(duì)游戲的操作,并使游戲輔助工具更加穩(wěn)定再加上先前“去游戲倒計(jì)時(shí)”功能都是為了給游戲的自動(dòng)掛機(jī)做鋪墊,讓掛機(jī)變得流暢,下面讓我們來試一下這兩個(gè)功能(演示) 講解完了本工具的大體功能,讓我們來和別人正式的玩一局。 (游戲時(shí)間 需自由發(fā)揮 帶上所有的功能 并突出功能特色) 這真是完美的一次勝利,那它到底是怎樣實(shí)現(xiàn)的哪?下面開始進(jìn)行PPT的講解。 這個(gè)輔助工具是由我們計(jì)算機(jī)科學(xué)與工程學(xué)院 140406班的LZ組合制作,我們的口號(hào)是“理智成就自我”(全組齊聲), “LZ”是“理智”的縮寫,所以我們會(huì)用我們的理性和智慧去處理每一件事,這雖然是我們小組第一次參加比賽,但我相信這絕不會(huì)是最后一次。 OK
4、,下面讓我們進(jìn)入正題。 我們的連連看輔助工具共有8項(xiàng)功能,包括:單消、秒殺、無限道具、自動(dòng)開局、自動(dòng)掛機(jī)、掛機(jī)速度調(diào)節(jié)、去游戲倒計(jì)時(shí)、游戲窗口置頂(翻頁)下面開始“單消”功能的詳細(xì)介紹首先讓我們看看程序的流程圖首先,我們讀取棋盤的內(nèi)存數(shù)據(jù)然后判斷是否有相同的棋子接下來模擬鼠標(biāo)點(diǎn)擊判斷棋子的數(shù)量是否減少如果減少了就更新棋盤數(shù)據(jù)最后結(jié)束單消現(xiàn)在讓我們來看看具體的代碼這是一段用來打開進(jìn)程讀取進(jìn)程并將棋盤的內(nèi)存數(shù)據(jù)存放到數(shù)組中的程序首先,我們定義一個(gè)字節(jié)型的數(shù)組因?yàn)槠灞P是11行19列,所以定義為chessdata【11】*【19】然后定義一個(gè)hWnd gameh 用來表示窗口句柄FindWindow,
5、是用來尋找窗口ID的函數(shù)/FindWindow,LPCTSTR lpClassName, / pointer to class nameLPCTSTR lpWindowName / pointer to window name);這個(gè)函數(shù)擁有兩個(gè)參數(shù)其中l(wèi)pClassName參數(shù)指向類名,lpWindowName指向窗口名在本程序中不需要指向類名的參數(shù),所以第一個(gè)參數(shù)為空,而第二個(gè)參數(shù)指向窗口名,也就是之前定義過的gameCaption然后下一步我們需要定義一個(gè)Double Word類型的變量 processid 由于每個(gè)word為2個(gè)字節(jié)的長度,所以processid雙字節(jié)為4個(gè)字節(jié)接下來我
6、們要使用GetWindowThreadProcessId這個(gè)函數(shù)來找到窗口的進(jìn)程,這個(gè)函數(shù)同樣擁有兩個(gè)參數(shù)DWORD GetWindowThreadProcessId(HWND hWnd,LPDWORD lpdwProcessId);其中第一個(gè)參數(shù)指向被查找的句柄 也就是Findwindow的返回值gameh第二個(gè)參數(shù)是進(jìn)程號(hào)的存放地址,我們可以指向剛剛定義的processid hWndin (向函數(shù)提供的)被查找窗口的句柄.lpdwProcessIdout 進(jìn)程號(hào)的存放地址(變量地址)接下來我們需要用OpenProcess這個(gè)函數(shù)獲取進(jìn)程的句柄并且將句柄保存在processH中OpenPro
7、cess 函數(shù)用來打開一個(gè)已存在的進(jìn)程對(duì)象,并返回進(jìn)程的句柄。HANDLE OpenProcess(DWORD dwDesiredAccess, /渴望得到的訪問權(quán)限(標(biāo)志)BOOL bInheritHandle, / 是否繼承句柄DWORD dwProcessId/ 進(jìn)程標(biāo)示符這個(gè)函數(shù)擁有三個(gè)參數(shù),第一個(gè)參數(shù)是訪問權(quán)限,我們定義為 PROCESS_ALL_ACCESS也就是對(duì)進(jìn)程內(nèi)存的全部操作權(quán)限 第二個(gè)是是否繼承句柄,我們選擇否,也就是false 第三個(gè)進(jìn)程標(biāo)示符,也就是進(jìn)程號(hào),我們已經(jīng)通過GetWindowThreadProcessId得到了,也就是processid因此我們得到了進(jìn)程的
8、句柄processH然后我們需要定義一個(gè)同樣是Double Word類型的變量 byread, 再定義一個(gè)沒有類型的指針LPCVOID pbase(基礎(chǔ)) 這個(gè)指針存放的是棋盤數(shù)據(jù)的首地址 其中這個(gè)C代表不能修改變量的意思這個(gè)首地址是通過CE(CheatEngine61_cn)這個(gè)工具找到的 這個(gè)基址是一個(gè)十六進(jìn)制數(shù)字0x00189F74然后再次定義一個(gè)沒有類型的指針LPVOID nbuffer(緩沖)用來存放棋盤的數(shù)據(jù)最后我們使用ReadProcessMemory這個(gè)函數(shù),這個(gè)函數(shù)擁有5個(gè)參數(shù),第一個(gè)是參數(shù)是進(jìn)程的句柄,也就是processH;第二個(gè)參數(shù)是要讀取內(nèi)存的首地址,也就是我們之前定
9、義的pbase;第三個(gè)參數(shù)是我們存入內(nèi)存數(shù)據(jù)的地址,我們將其存在nuffer中;第四個(gè)參數(shù)是要傳送的字節(jié)數(shù),因?yàn)槠灞P是11*19,所以我們就傳送11*19個(gè)數(shù)據(jù);第五個(gè)參數(shù)是實(shí)際傳送的字節(jié)數(shù). 函數(shù)返回時(shí)報(bào)告實(shí)際寫入多少,我們將其存在byread之中BOOL ReadProcessMemory(HANDLE hProcess,PVOID pvAddressRemote,PVOIDpvBufferLocal,DWORD dwSize,PDWORDpdwNumBytesRead);實(shí)際應(yīng)用hProcess in遠(yuǎn)程進(jìn)程句柄。 被讀取者pvAddressRemote in遠(yuǎn)程進(jìn)程中內(nèi)存地址。 從具體
10、何處讀取pvBufferLocal out本地進(jìn)程中內(nèi)存地址. 函數(shù)將讀取的內(nèi)容寫入此處dwSize in要傳送的字節(jié)數(shù)。要寫入多少pdwNumBytesRead out實(shí)際傳送的字節(jié)數(shù). 函數(shù)返回時(shí)報(bào)告實(shí)際寫入多少這樣我們就完成讀取棋盤數(shù)據(jù)的功能了然后我們開始尋找棋盤中相同的棋子,通過查找內(nèi)存中相同的數(shù)據(jù)我們找出相同的棋子程序中的for循環(huán)是用來不斷改變棋子的位子,其中x1,y1是棋子1的位子,x2,y2是棋子二的位子x1=1,y1=1代表第一行第一列的棋子,x1=2,y1=2代表第二行,第二列的棋子,以此類推如果棋子1與棋子2的內(nèi)存數(shù)據(jù)相等,那么我們就模擬鼠標(biāo)點(diǎn)擊,然后通過鼠標(biāo)的模擬點(diǎn)擊和
11、棋子數(shù)量是否減少來決定單消的程序是否結(jié)束。下面我們開始介紹模擬鼠標(biāo)點(diǎn)擊的程序,首先我們通過之前的ReadProcessMemory函數(shù),將棋盤中剩余棋子的數(shù)量保存在chessnum中然后將它的值賦給l,通過Findwindow獲得窗口句柄,并且將其保存在hwnd中然后定義一個(gè)整型變量lparam根據(jù)棋子1與棋子2的位子來給lparam賦值,因?yàn)榈谝恍械谝涣械氖髽?biāo)坐標(biāo)為(192.21)相鄰棋子之間的間隔為35并且由于我們要用到的是32位的鼠標(biāo)地址,我們我們將x左移16位,所以給lparam賦值為lparam=(p1.y*35+192)<<16)+(p1.x*31+21);接下來我們開
12、始使用這個(gè)SendMassage函數(shù),該函數(shù)將指定的消息發(fā)送到一個(gè)或多個(gè)窗口。此函數(shù)為指定的窗口調(diào)用窗口程序,直到窗口程序處理完消息再返回而我們就需要這個(gè)函數(shù)發(fā)送一個(gè)鼠標(biāo)消息,這個(gè)函數(shù)擁有四個(gè)參數(shù),第一個(gè)是我們通過Findwindow找到的窗口的句柄hwnd;第二個(gè)是消息的標(biāo)識(shí)(志)符,我們模擬的是鼠標(biāo)點(diǎn)擊所以就是WM_LBUTTONDOWN和WM_LBUTTONUP,對(duì)應(yīng)的是鼠標(biāo)的按下和抬起;第三個(gè)和第四個(gè)參數(shù)都是32位的特定附加信息,我們使用第四個(gè),也就是將第三個(gè)參數(shù)設(shè)為零,第四個(gè)參數(shù)設(shè)為鼠標(biāo)地址也就是我們之前定義的lparamsendmessagehWnd 是接收消息的窗口的句柄Msg
13、是消息標(biāo)識(shí)符wParam 是32位的特定附加信息。lParam 是32位特定附加信息這樣我們就可以模擬點(diǎn)擊棋子1了,然后我們?cè)俅伟凑丈厦娴姆椒c(diǎn)擊棋子二,通過下面if語句,判斷如果棋子減少了,就返回大于一的數(shù);終止循環(huán)。如果棋子不變,就返回0,讓上面的循環(huán)繼續(xù),知道棋子數(shù)發(fā)生變化為止這樣,我們的單消功能就完成了下面我們開始講解秒殺的程序先看看流程圖,首先我們需要執(zhí)行單消這個(gè)程序,然后我們需要判斷棋子數(shù)是否為零,如果為零就退出循環(huán)結(jié)束程序,如果不為零,就繼續(xù)執(zhí)行單消程序下面開始講解代碼的實(shí)現(xiàn)我們先將單消的函數(shù)進(jìn)行封裝,定義成clearpair()函數(shù)然后我們經(jīng)行while循環(huán),直到棋子數(shù)為零,才
14、終止循環(huán);此時(shí),我們也就完成了秒殺功能下面我們開始介紹無限道具的程序?qū)τ跓o限道具,我們只需要找到游戲道具的內(nèi)存地址,并且將其改寫就OK了下面開始講解程序程序前面我們已經(jīng)講解過,定義窗口名,獲取窗口句柄,獲取進(jìn)程句柄,唯一不同的是我們要用到writeprocessmemory函數(shù)來寫入進(jìn)程WriteProcessMemory此函數(shù)能寫入某一進(jìn)程的內(nèi)存區(qū)域(直接寫入會(huì)出Access Violation錯(cuò)誤,故需此函數(shù))。VC+聲明BOOL WriteProcessMemory(HANDLE hProcess,LPVOID lpBaseAddress,LPVOID lpBuffer,DWORD nS
15、ize,LPDWORD lpNumberOfBytesWritten);參數(shù):hProcess由OpenProcess返回的進(jìn)程句柄。如參數(shù)傳數(shù)據(jù)為 INVALID_HANDLE_VALUE 【即-1】目標(biāo)進(jìn)程為自身進(jìn)程lpBaseAddress要寫的內(nèi)存首地址再寫入之前,此函數(shù)將先檢查目標(biāo)地址是否可用,并能容納待寫入的數(shù)據(jù)。lpBuffer指向要寫的數(shù)據(jù)的指針。nSize要寫入的字節(jié)數(shù)。返回值非零值代表成功。該函數(shù)一共擁有5個(gè)參數(shù),第一個(gè)參數(shù)是由openprocess返回的進(jìn)程句柄;第二個(gè)是要寫入的首地址,也就是我們游戲道具的首地址;要寫入數(shù)據(jù)的指針,也就是我在上面定義的數(shù)組a,b,c,d,
16、e,;第四個(gè)是要寫入的字節(jié)數(shù),我們都定義為1個(gè)字節(jié);第五個(gè)是返回值,我們把上面定義的bywritesize放到這里,存儲(chǔ)返回值;由于道具是有兩個(gè)內(nèi)存地址控制,一個(gè)地址控制道具種類,一個(gè)地址控制道具數(shù)量,例如第一個(gè)函數(shù)控制的是道具的數(shù)量,第二個(gè)控制的就是“重列”這個(gè)道具是否出現(xiàn)這樣我們就完成游戲道具內(nèi)存的寫入了下面開始講解自動(dòng)掛機(jī)的功能這個(gè)功能很簡單,只需要在單消的基礎(chǔ)上加入一個(gè)定時(shí)器函數(shù)就行了,流程圖也很簡單,就是更新數(shù)據(jù),然后定時(shí)器函數(shù)重復(fù)單消,然后再次更新數(shù)據(jù)下面開始講解代碼的實(shí)現(xiàn),首先我們先定義兩個(gè)常量,一個(gè)變量,然后更新棋盤數(shù)據(jù),通過if語句來判斷此項(xiàng)功能是否被勾選,如果被勾選,就再次
17、更新棋盤數(shù)據(jù),然后使用settimer這個(gè)定時(shí)器函數(shù)UINT_PTR SetTimer(HWND hWnd, / 窗口句柄UINT_PTR nIDEvent, / 定時(shí)器ID,多個(gè)定時(shí)器時(shí),可以通過該ID判斷是哪個(gè)定時(shí)器UINT nElapse, / 時(shí)間間隔,單位為毫秒TIMERPROC lpTimerFunc / 回調(diào)函數(shù));在MFC程序中SetTimer被封裝在CWnd類中,調(diào)用就不用指定窗口句柄了,所以這個(gè)函數(shù)就只有三個(gè)參數(shù),第一個(gè)參數(shù)是定時(shí)器的ID,我們把它指向之前定義的playID;第二個(gè)是時(shí)間間隔q的值為1000,所以時(shí)間間隔為1s;第三個(gè)參數(shù)是回調(diào)函數(shù),我們這回調(diào)函數(shù)中放入單消
18、的函數(shù),在下面這個(gè)程序里面了;這樣就是每間隔1s就執(zhí)行一次單消函數(shù),所以就實(shí)現(xiàn)了自動(dòng)掛機(jī)的功能下面開始介紹自動(dòng)開局功能首先,讓我們看看流程圖,我們需要先更新數(shù)據(jù),然后判斷棋子的數(shù)量,如果棋子數(shù)量為零,那么我們就模擬鼠標(biāo)點(diǎn)擊“開始游戲”,如果不為零的話就重新更新棋盤數(shù)據(jù),直到它為0為止下面讓我們看看程序的實(shí)現(xiàn)首先通過IF語句來判斷棋子數(shù)是否為零,如果為0就延時(shí)1s,并獲取窗口的句柄,并且模擬鼠標(biāo)的點(diǎn)擊“開始游戲”這樣就完成自動(dòng)開局的功能下面開始介紹掛機(jī)速度調(diào)節(jié)功能讓我們看看流程圖首先,我們需要?jiǎng)?chuàng)建一個(gè)滑塊然后定義一個(gè)變量并且將變量傳給 自動(dòng)掛機(jī)里的時(shí)間標(biāo)識(shí),然后更新數(shù)據(jù)下面讓我們看看那代碼的實(shí)現(xiàn)
19、首先,我們需要更新一下數(shù)據(jù),然后將滑塊的值賦給m_num,其中this是關(guān)鍵字,屬于實(shí)體(entity),是一個(gè)指針右值,而后面的m_ctl_slider.GetPos();是滑塊當(dāng)前的位子的值至于這個(gè)*pResult = 0;是為了防止對(duì)未知的位子進(jìn)行操作,增加程序的穩(wěn)定性然后我們將滑塊的值傳遞給Q,通過滑塊改變Q的值,就能改變下面自動(dòng)掛機(jī)函數(shù)的時(shí)間間隔,進(jìn)而改變自動(dòng)掛機(jī)的速度下面是去游戲倒計(jì)時(shí)功能這個(gè)功能和無限道具功能的代碼類似,都是讀取進(jìn)程,然后寫入進(jìn)程就行了這里就不過多的解釋了下面是游戲窗口置頂功能首先,我們要更新一下游戲數(shù)據(jù)然后獲取游戲窗口名,最后使用一下窗口置頂函數(shù)讓我們看看代碼的
20、實(shí)現(xiàn)用FINDWINDOW找到窗口的句柄然后使用SetWindowPos函數(shù),這個(gè)函數(shù)一共有7個(gè)參數(shù),第一個(gè)參數(shù)是窗口的句柄,也就是我們之前定義的gameh;第二個(gè)參數(shù)是我們要把這個(gè)窗口放到哪,我們選擇 HWND_NOTOPMOST:將窗口置于所有非頂層窗口之上;第三個(gè)參數(shù)到第六個(gè)參數(shù)設(shè)定窗口的位子和大小,我們將其都設(shè)為0;第七個(gè)窗口是窗口尺寸和定位的標(biāo)志,我們使用這三個(gè)參數(shù),組合成一個(gè)參數(shù),分別是SWP_NOMOVE:維持當(dāng)前位置(忽略X和Y參數(shù))。SWP_NOSIZE:維持當(dāng)前尺寸(忽略cx和Cy參數(shù))SWP_SHOWWINDOW:顯示窗口。BOOL SetWindowPos(HWND h
21、Wnd, const CWnd* pWndInsertAfter, int x, int y,int cx, int cy, UINT nFlags);這樣我們就完成了窗口置頂?shù)脑O(shè)置HWND_NOTOPMOST:將窗口置于所有非頂層窗口之上(即在所有頂層窗口之后)。如果窗口已經(jīng)是非頂層窗口則該標(biāo)志不起作用。x以客戶坐標(biāo)指定窗口新位置的左邊界。Y以客戶坐標(biāo)指定窗口新位置的頂邊界。cx以像素指定窗口的新的寬度。cy以像素指定窗口的新的高度。SWP_NOMOVE:維持當(dāng)前位置(忽略X和Y參數(shù))。SWP_NOSIZE:維持當(dāng)前尺寸(忽略cx和Cy參數(shù))SWP_SHOWWINDOW:顯示窗口。下面開始對(duì)我們作品的優(yōu)點(diǎn)進(jìn)行總結(jié)首先我們對(duì)大量的函數(shù)進(jìn)行了封裝,例如單消函數(shù),模擬鼠標(biāo)點(diǎn)擊函數(shù)等等,盡量簡潔了函數(shù)其次,我們添加了自動(dòng)使用重列的函數(shù),因?yàn)槲覀冊(cè)谟螒虻臅r(shí)候,很可能會(huì)遇到這種情況(提示請(qǐng)使用重列道具),此時(shí),我們不得不手動(dòng)的去使用重列道具因此我們?cè)趩蜗瘮?shù)中添加了自動(dòng)使用重列,這樣就能在無解的情況下自動(dòng)使用重列下面讓我們來看看自動(dòng)使用重列的代碼,使用自動(dòng)重列的條件是棋子的數(shù)量在經(jīng)過一次完整的單消循環(huán)后還沒有變化,此時(shí)就會(huì)模擬鼠標(biāo)點(diǎn)擊重列道具但是經(jīng)過我們幾百次的實(shí)驗(yàn),發(fā)現(xiàn)有的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度貨運(yùn)司機(jī)勞務(wù)派遣合同3篇
- 2025年度大豆綠色種植推廣合作合同范本3篇
- 2025年度綠色有機(jī)西瓜產(chǎn)地直銷合作合同范本3篇
- 2025年度不銹鋼板材國際貿(mào)易結(jié)算及風(fēng)險(xiǎn)管理合同3篇
- 2024行政合同爭議調(diào)解程序:如何有效運(yùn)用行政優(yōu)先權(quán)3篇
- 2025年度WPS合同管理平臺(tái)定制開發(fā)與實(shí)施合同3篇
- 二零二五年甘肅離崗創(chuàng)業(yè)人員社保接續(xù)與待遇保障合同3篇
- 2025年物流配送與快遞快遞行業(yè)風(fēng)險(xiǎn)管理合同范本3篇
- 2025年度大件貨物運(yùn)輸合同模板(含緊急救援預(yù)案)3篇
- 二零二四年企業(yè)環(huán)保培訓(xùn)服務(wù)標(biāo)準(zhǔn)合同3篇
- 神經(jīng)內(nèi)科國家臨床重點(diǎn)??平ㄔO(shè)項(xiàng)目評(píng)分標(biāo)準(zhǔn)(試行)
- 業(yè)主委員會(huì)成員推薦表
- 城市設(shè)計(jì)與城市更新培訓(xùn)
- 2023年貴州省銅仁市中考數(shù)學(xué)真題試題含解析
- 世界衛(wèi)生組織生存質(zhì)量測(cè)量表(WHOQOL-BREF)
- 《葉圣陶先生二三事》第1第2課時(shí)示范公開課教學(xué)PPT課件【統(tǒng)編人教版七年級(jí)語文下冊(cè)】
- 某送電線路安全健康環(huán)境與文明施工監(jiān)理細(xì)則
- GB/T 28885-2012燃?xì)夥?wù)導(dǎo)則
- PEP-3心理教育量表-評(píng)估報(bào)告
- 控制性詳細(xì)規(guī)劃編制項(xiàng)目競爭性磋商招標(biāo)文件評(píng)標(biāo)辦法、采購需求和技術(shù)參數(shù)
- 《增值稅及附加稅費(fèi)申報(bào)表(小規(guī)模納稅人適用)》 及其附列資料-江蘇稅務(wù)
評(píng)論
0/150
提交評(píng)論