版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1.什么是按鍵精靈的插件按鍵精靈的插件是由按鍵精靈官方或用戶自己提供的一種功能擴展。由于按鍵精靈本身只提供腳本制作過程中最常用的功能,而不可能面面俱到。所以,如果您稍懂一點VisualC++編寫程序的知識,就可以通過自己寫按鍵精靈插件,實現(xiàn)比較特殊、高級的功能,如文件讀寫、注冊表訪問,等等。如果您愿意,還可以把自己寫的插件提交給我們,我們可以在按鍵精靈的最新版中捆綁您編寫的插件,和大家共同分享您的智慧!按鍵精靈的插件是通過動態(tài)鏈接庫(DLL)的形式提供的。這些動態(tài)鏈接庫必須滿足一定的規(guī)范,并且放在按鍵精靈所在路徑的plugin文件夾下。在按鍵精靈啟動的時候,會自動加載plugin文件夾下的每個插件。每個插件可以包含多個“命令”,每個命令則可以看作是一個獨立的函數(shù)或者子程序。比如我們提供的文件相關操作插件 File.dl1,就提供了ExistFile(判斷文件是否存在)、CopyFile(復制一個文件)、DeleteFile(刪除一個文件)等多個命令。目前按鍵精靈的插件只能使用VisualC++編寫。您不需要懂得很高深的VisualC++編程技巧,也不需要知道插件的技術細節(jié)。因為我們已經提供了一個“模板”插件,您只需要在這個模板上按照下文所述的步驟進行一點點修改,一個屬于您自己的插件就完成了。我們推薦您使用VisualC++6.0,也可以用VisualC++.NET。值得說明的是,由于技術原因,按鍵精靈的插件目前還不能用VisualBasic、Delphi.JBuilder等常見的開發(fā)工具編寫。但是有聰明的用戶使用VBScript腳本和ActiveXDLL的形式,同樣實現(xiàn)了按鍵精靈的功能擴展,典型的例子如Ringfo大蝦制作的QMBoost等等。嚴格說來,這種功能擴展不能稱為按鍵精靈的插件,但是我們同樣歡迎這種類型的功能擴展。2.如何制作一個插件準備動手為按鍵精靈寫一個插件其實非常簡單,只需要您有一點VisualC++編程的知識就夠了。如果您懂VisualC++編程,就請跟我一步一步的來完成一個簡單的插件。首先得計劃一下,我們的插件完成什么功能,再考慮一下這個插件都需要具有哪些命令。這里假設我們的插件是用于字符串操作的,名字就叫String.dll,這個插件目前暫時只有一個命令,名字叫StrLen,是用于得到字符串長度的。也就是說,用戶通過使用我們提供的StrLen命令,傳入一個字符串,我們給他返回這個字符串的長度。具體的說,用戶可能將來會在按鍵精靈中這樣調用我們的插件命令:DimlengthasintegerPluginlength=String.StrLen(“Hello,world”)如果您熟悉按鍵精靈,那么對第一句話不會陌生,它的意思是定義一個叫l(wèi)ength的整數(shù)變量。第二句的意思,我們來解析一下:Pluginlength=String.StrLen(“Hello,world”)表明這是一個插件命令返回值放入變量表明這是一個插件命令返回值放入變量length小結一下,我們的插件名字叫String.dll,里面提供一個命令,名叫StrLen,這個命令接受一個字符串作為參數(shù),返回一個整數(shù)值,含義是得到字符串的長度。OK,下面我們把按鍵精靈提供的插件模板(在XXX路徑下)復制一份,然后在它的基礎上進行修改。編寫插件的簡介、插件命令和插件命令的簡介按鍵精靈提供的插件模板是一個VisualC++project,我們用VisualC++6.0打開這個projecto這個project里面包含了好幾個文件,實際上我們只需要修改QMPlugin.cpp這一個文件,其他文件您都可以不用去管。用VisualC++打開QMPlugin.cpp文件,在文件開頭找到這樣一行:externchar*g_lpszPluginDescription="這是一個插件的模板”;這個字符串定義了插件的簡介,我們把它改成:externchar*g_lpszPluginDescription="這是我的字符串處理插件”;再找到QMPlugin.cpp文件最后,有類似于這樣的內容:QMPLUGIN_CMD_INFOg_CommandTable[]={"Test1”,”測試1”,Test1Handler,"Test2”,”測試2”,Test2Handler,};懂一點C語言的朋友應該知道這是一個結構數(shù)組,如果您不懂也沒有關系,請注意花括號中間的兩行,每一行代表了這個插件的一個命令。插件模板這里已經寫了兩個命令,其實僅僅是作為示范,沒有用處,您可以把這兩個命令都刪掉,然后用自己定義的命令代替?;ɡㄌ栔虚g的內容可以看作是一個表格,我們稱為“插件命令表”。每一行從左到右由三個部分組成,第一部分是這個插件命令的名稱,第二部分是這個插件命令的簡要解釋,第三部分我們暫時不管,后面再講。我們的字符串處理插件目前只有一個命令StrLen,所以把代碼改成:QMPLUGIN_CMD_INFOg_CommandTable[]={"StrLen”,”得到U字符串的長度”,Test1Handler,};第三部分我們還沒有講,所以暫時先填寫一個Test1Handler,一會再回頭改。最基本的插件命令處理函數(shù)當按鍵精靈用戶調用我們的StrLen命令的時候,我們需要寫一段代碼來處理這個命令,并且給按鍵精靈返回字符串的長度。具體的說,對于每個命令,我們都需要寫一個對應的C語言函數(shù)來處理用戶對這個命令的調用。不管這個命令有幾個參數(shù),返回值是什么類型,我們的C語言函數(shù)總是這個樣子:intXXXX(char*lpszParamList,char*lpszRetVal)上面的XXXX是這個函數(shù)的名字,隨便起什么名字都可以,只要別重名就好。注意,除了函數(shù)的名字可以改,其他的地方最好都不要改。比如我們的StrLen命令,假如它對應的函數(shù)叫MyStrLenHandler,那么請在QMPlugin.cpp中增加這樣一個函數(shù):intMyStrLenHandler(char*lpszParamList,char*lpszRetVal){return0;}我們來看這個函數(shù),它有兩個參數(shù)lpszParamList和lpszRetVal,返回值是整數(shù)。lpszParamList中存放了按鍵精靈傳過來的字符串(比如前面例子中的“hello,world”這個字符串就會保存在這里),而返回值就是我們要告訴按鍵精靈的,這個字符串的長度。lpszRetVal暫時還用不上,先不要動它。了解C語言的朋友都知道在C語言中要得到一個字符串的長度是很容易的,如下:intMyStrLenHandler(char*lpszParamList,char*lpszRetVal){returnstrlen(lpszParamList);}插件處理函數(shù)就寫完了,很簡單吧?現(xiàn)在,我們還需要在StrLen這個插件命令和MyStrLenHandler這個命令處理函數(shù)之間建立起關聯(lián)關系。上一節(jié)中提到,我們是這樣在插件命令表中定義StrLen命令的:"StrLen”,”得到U字符串的長度”,Test1Handler,前兩部分分別代表插件命令的名稱和插件命令的簡要解釋,第三部分,就是這個插件命令的處理函數(shù)。也就是說,我們需要改成:"StrLen","得到U字符串的長度”,MyStrLenHandler,現(xiàn)在,StrLen命令就和MyStrLenHandler函數(shù)關聯(lián)起來了。到此為止,我們已經編寫了一個最簡單的插件。不妨用VisualC++編譯這個project,把生成的DLL文件改名為String.dll,然后放在按鍵精靈的plugin目錄下。啟動按鍵精靈,運行這樣一個簡單的按鍵精靈腳本:DimlengthasintegerPluginlength=String.StrLen(“Hello,world”)VBSCallMessageBox(CStr(length))這個腳本會彈出一個對話框,對話框里面的數(shù)字就是“Hello,world”這個字符串的長度。返回值為字符串的插件命令下面我們?yōu)镾tring這個插件再增加一個命令,名字叫StrRev,這個命令接受一個字符串作為參數(shù),返回值是把參數(shù)中字符串的內容倒置,比如把”hello”變成”olleh”。和StrLen不同的是,它的返回值不是整數(shù),而是一個字符串。不管怎么樣,我們都需要為這個命令建立一個處理函數(shù),假如這個處理函數(shù)名字叫MyStrRevHandler,這個函數(shù)的原型必須是:intMyStrRevHandler(char*lpszParamList,char*lpszRetVal)可是,我們希望在這個函數(shù)里面返回一個字符串,應該如何處理呢?按鍵精靈規(guī)定:如果lpszRetVal的內容被命令處理函數(shù)修改過,則忽略命令處理函數(shù)返回的整數(shù)值,認為這個命令處理函數(shù)返回的是lpszRetVal這個字符串。也就是說,如果我們把按鍵精靈傳來的字符串倒置后,只要復制到lpszRetVal指向的字符串中,導致lpszRetVal發(fā)生了修改,則這個命令的返回值就被認為是lpszRetVal。那么,我們的MyStrRevHandler處理函數(shù)應該這樣編寫:intMyStrRevHandler(char*lpszParamList,char*lpszRetVal){strcpy(lpszRetVal,_strrev(lpszParamList));return0;}我們首先調用C語言標準庫函數(shù)_strrev把字符串lpszParamList(也就是按鍵精靈傳來的字符串)倒置,然后調用C語言標準庫函數(shù)strcpy把倒置后的結果復制到lpszRetVal中。最后,StrRev這個命令同樣需要記錄在插件命令表中,現(xiàn)在我們的插件命令表變成:QMPLUGIN_CMD_INFOg_CommandTable[]={"StrLen”,”得到U字符串的長度”,MyStrLenHandler,"StrRev”,”倒置一個字符串”,MyStrRevHandler,};編譯一下,現(xiàn)在我們的String插件就包含兩條命令了!包含不止一個參數(shù)的插件命令下面我們?yōu)镾tring這個插件再增加一個命令,名字叫StrCmp,這個命令接受兩個字符串,并比較這兩個字符串的內容,如果相同就返回0,否則返回非0。我們給這個命令的處理函數(shù)起名為MyStrCmpHandler。同樣的,它的原型必須是:intMyStrCmpHandler(char*lpszParamList,char*lpszRetVal)不同的是,往常我們的命令只有一個參數(shù),而這里有兩個參數(shù)。按鍵精靈會把兩個參數(shù)都放在lpszParamList,中間用逗號分隔。所以,我們必須把這兩個參數(shù)從lpszParamList拆分出來。怎么拆分?我不反對您自己寫代碼,但是插件模板中已經為您提供了一個函數(shù),名叫ParseParam。這個函數(shù)的參數(shù)是多個字符串,其中第一個是輸入,后面的都是輸出。它的作用是把第一個參數(shù)代表的字符串以逗號為界,拆成多個字符串,然
后分別存放在第二個,第三個參數(shù)中。舉例來說,對于插件命令StrCmp,我們應該這樣寫處理函數(shù):intMyStrCmpHandler(char*lpszParamList,char*lpszRetVal){charlpszString1[1024],lpszString2[1024];ParseParam(lpszParamList,lpszString1,lpszString2);returnstrcmp(lpszString1,lpszString2);}在上面的命令處理函數(shù)中,由于StrCmp命令需要返回一個整數(shù),所以lpszRetVal我們就不要動了。我們自己定義了兩個字符串變量(字符數(shù)組)lpszString1和lpszString2,兩個字符串的最大長度都是1024(估計應該是夠了吧,如果您還覺得不夠,再增加一些也沒有問題)。接下來調用ParseParam函數(shù),把lpszParamList拆成兩個參數(shù),分別存放在lpszString1和lpszString2中。然后再調用C語言標準庫函數(shù)strcmp比較這兩個字符串。如果您有興趣,可以在插件模板的源代碼中看看ParseParam是如何實現(xiàn)的。事實上,ParseParam的實現(xiàn)非常簡單,以至于安全性和可靠性都不好。比如前面的例子中,如果lpszString1里面要存放的字符串長度超過了1024,就會出大麻煩。熟悉C語言的朋友肯定會批評我們的寫法,不過在多數(shù)情況下它還是很好用的。和前面一樣,StrCmp這個命令也需要在插件命令表里面登記,這里我們就不多說了。數(shù)字簽名一般來說,您編寫的插件只要編譯成一個DLL文件,并且放在按鍵精靈所在路徑的plugin文件夾下,就可以馬上使用了。但是這樣的插件在按鍵精靈中會彈出一個警告,如下圖所示:這個插件沒有教字簽名沒有數(shù)字簽名的插件未經按鍵精靈官方認證可能包含不安全的代碼,詰您謹埴便用如果您要對自己的插件加入數(shù)字簽名,話查詢我們的網(wǎng)站因為您的插件是用VisualC++編寫的,VisualC++的強大功能使得您的插件完全可以包含任何您可以想象的內容。當然也不排除有個別心術不正的人利用這個功能,把病毒、木馬等有害程序打包到插件中,然后交給別人使用。如果您編寫的插件只是給自己用,那么完全可以不必理會上面的警告,它不會影響到插件的任何功能。如果您想把編寫的插件給別人共享,那么最好的辦法是把您的插件交給我們進行認證,我們會幫您加入數(shù)字簽名,還會幫您把插件放在按鍵精靈網(wǎng)站、論壇上,甚至是捆綁到按鍵精靈中進行推廣和交流。了解更多?目前為止,我們已經學習了按鍵精靈插件的編寫方法,確實不難吧?如果您希望熟悉鞏
固一下上面的內容,我們?yōu)槟峁┝税存I精靈5.90版本以上自帶的File.dll插件的全部源代碼。下載回來研究一下吧,如果有不理解的地方,歡迎您給我們發(fā)郵件垂詢。3?如何使用一個插件基本操作您可能暫時不會用VisualC++,或者不想自己編寫插件。但您只需要會用按鍵精靈寫腳本,就可以享受別人的插件帶來的強大功能。目前按鍵精靈已經在軟件安裝包中捆綁了三個官方開發(fā)的插件:File.dll用于一些文件相關的操作,Window.dll用于一些窗口相關的操作,還有GetSysInfo.dll用于獲取一些常用的系統(tǒng)信息。我們還會陸續(xù)增加其他功能的插件,也會對目前的插件進行功能擴充。下面我們以File.dll為例,講述如何使用這個插件。打開按鍵精靈(版本為5.90以上),新建一個腳本,在腳本編輯器的左邊展開“插件命令”的面板(如果上述內容你不能理解,那么你需要先學習一下按鍵精靈的基本用法,真的很簡單!)。在“選擇插件”的下拉框中找到'File:文件操作的插件”這一項并選中,然后展開“選擇插件命令”的下拉框。即可看到如下圖所示的界面。[ 插件命令 存~]第一步.選擇插件Fi恥:文件操作的插件第二步.選擇插件命令ExistFile:判斷文件或文件夾是▼插入f簸窿曲;蛔文豚文連夾蜀AVSelectDirectory:^出選擇目錄SelectFQe:峰茁選擇文件對話耳CopyFile:復制一個文件要復制MoveFile:^動一個文件凄移動DeleteFile:fJ除一個文件耍刪ReadINI:讀一個INI文件〔小節(jié)名WriteiNi:寫一個nrdtf?!残」?jié)£OpeiJile:打開一個文件反件路E檔下面的下拉框中的內容就是File.dll插件提供的全部插件命令,每個命令都可以完成一個和文件操作相關的功能。比如CopyFile命令可以復制一個文件,DeleteFile命令可以刪除一個文件等。使用有返回值的插件命令我們來試著使用一個命令,以SelectFile為例。請在“選擇插件命令”下面的下拉框中選中SelectFile,您也許會發(fā)現(xiàn)下拉框太窄了導致里面的文字顯示不全。沒關系,把鼠標在下拉框停留一下,就會彈出完整的提示,如下所示:
前面的英文部分是這個命令的名稱,后面是它的中文簡介。我們從這個簡介中可以看出:1、如果要使用這個命令,您不需要寫任何調用參數(shù);2、您需要定義一個變量來接收返回值(類似于高級語言的函數(shù)返回值的概念)。那么我們首先定義一個變量(其實VBScript中不定義變量也可以的,但是定義變量是一個良好的習慣),假如變量名為filepath。把這個變量名填寫在下面“返回值”后面的輸入框中,然后點擊“插入”按鈕,一條命令就插入到按鍵精靈的腳本中了。如圖所示:笛普通|bi源文件lDimfilepath調用插件命令filepath=File.SelectFile()運行這個腳本,會彈出選擇文件的對話框,當選擇完畢后,被選中的文件全路徑會保存在變量filepath中。使用有參數(shù)的插件命令下面我們再試試另外一個插件命令,如CopyFile。同樣,先在“選擇插件命令”下面的下拉框中選中“CopyFile”,鼠標在下拉框停留一下,查看詳細的中文說明。從說明中可以看出,這個命令沒有返回值,但是有兩個調用參數(shù),分別是要復制的文件和要復制的目標文件。我們在“調用參數(shù)”后面的編輯框里分別輸入這兩個參數(shù),參數(shù)之間用逗號分隔,比如輸入"c:\1.txt”,"c:\2.txt”。注意字符串常量應該用引號括起來。然后點擊“插
入”按鈕。在運行這個腳本前,先在C盤根目錄下建立一個文件,名叫1.txt,內容隨意。然后運行腳本,可以看到生成了一個一模一樣的2.txt。在腳本源文件中寫插件命令第普通如果您了解按鍵精靈,一定知道按鍵精靈還提供了腳本源文件直接編輯的功能。我們看看調用CopyFile命令時的腳本源文件,如圖:第普通Bl源文件磴是按曜精靈壘成的腳本海支件厚在理解各條命令的基礎上,您可以修改這個文件的內容材每修改的姑果將合在普通視圖上有所反映PluginFile.CopyFile(T1.txt>r2.最前面藍色的Plugin關鍵字表示這一行是一個插件命令調用。后面的File表示調用的是File.dll插件,F(xiàn)ile后面用圓點隔開的是插件命令的名稱,以及調用參數(shù)。如果您熟悉了這種寫法,其實直接寫腳本源文件速度更順手一些,當然使用的效果是一樣的。下面我們來用腳本源文件編輯方式,寫一個稍微復雜一點的調用插件的腳本。您可以把下面的內容全部粘貼在您的腳本編輯器中。DimfilehandlePluginfilehandle=File.OpenFile("c:\1.txt")PluginFile.WriteLine(filehandle,”您好,我是按鍵精靈”)PluginFile.WriteLine(filehandle,”愿我能成為您工作和娛樂中的好助手”)PluginFile.CloseFile(filehandle)運行這個腳本,再看看C盤的根目錄下是不是有一個叫1.txt的文件。這個腳本使用了打開文件,往文件里面寫一行內容、關閉文件等三個插件命令,這三個插件命令組合起來完成了寫文件的功能。在按鍵小精靈中使用插件按鍵小精靈是由按鍵精靈生成的一個獨立的程序。普通的按鍵小精靈是不包含任何插件的(連按鍵精靈官方提供的插件也不包含),如果要在按鍵小精靈中使用插件,您可以使用“附件”功能先把插件打包到您的腳本中。打開按鍵精靈的腳本編輯器,在右上方區(qū)域里面找到“附件”按鈕并點擊,出現(xiàn)如圖所示的對話框:點擊“添加”按鈕,把您需要用的插件都放在腳本附件里,或者直接把插件的DLL文件拖到這個對話框里,然后選擇“保存”。在腳本的第一行,寫一句這樣的語句:PutAttachment.\plugin這句話的意思是把當前腳本中的附件都展開到按鍵小精靈所在路徑的plugin文件夾下。接下來,您就可以像按鍵精靈一樣使用插件命令了。4.按鍵精靈官方插件詳解GetSysinfo.dll插件命令名:GetOSType作用:獲取當前操作系統(tǒng)類型參數(shù):無返回值:整數(shù)型。Win98系統(tǒng)返回為0;WinNT/2000/XP返回為1命令:GetColorDep作用:獲取當前屏幕色深度(顏色質量)參數(shù):無返回值:整數(shù)型。返回當前屏幕的色深度(顏色質量),一般為4,8,16,24或32。命令:GetTime作用:得到系統(tǒng)啟動到目前的時間參數(shù):無返回值:整數(shù)型。以毫秒表示的系統(tǒng)啟動到目前的時間。說明:一般用兩次調用GetTime命令的結果相減,可以得到兩次調用的時間差。命令:GetDateTime作用:得到當前系統(tǒng)日期和時間參數(shù):無返回值:字符串型。返回當前系統(tǒng)日期和時間,如“2006-05-2015:27:31”命令:GetHDDSerialNumber作用:得到硬盤第一個分區(qū)的序列號參數(shù):無返回值:整數(shù)型。返回硬盤第一個分區(qū)的序列號。Window.dll插件命令名:MousePoint作用:得到當前鼠標指向的窗口參數(shù):無返回值:整數(shù)型。當前鼠標指向的窗口的窗口句柄命令名:Foreground作用:得到目前位于前臺的窗口參數(shù):無返回值:整數(shù)型。當前位于前臺的窗口的窗口句柄命令名:Find作用:根據(jù)一個窗口類名或一個窗口標題名,找到一個匹配的窗口參數(shù):Q窗口類名,字符串型Q窗口標題名,字符串型返回值:整數(shù)型。第一個匹配的窗口的窗口句柄說明:窗口類名和窗口標題名中可以有一個是空字符串(不能兩個同時為空字符串)命令名:FindEx作用:指定父窗口或者兄弟窗口,根據(jù)一個窗口類名或一個窗口標題名,找到匹配的窗口參數(shù):Q父窗口的句柄,整數(shù)型。為0表示不限制父窗口Q兄弟窗口的句柄,整數(shù)型。為0表示不限制兄弟窗口 Q窗口類名,字符串型 Q窗口標題名,字符串型返回值:整數(shù)型。第一個匹配的窗口的窗口句柄命令名:IsWindow作用:判斷指定窗口是否存在參數(shù):整數(shù)型。指定的窗口句柄返回值:整數(shù)型。返回值為0表示該窗口不存在,為1表示該窗口存在。命令名:GetText作用:得到指定窗口的標題參數(shù):整數(shù)型。指定的窗口句柄返回值:字符串型。返回指定窗口的標題。命令名:GetClass作用:得到指定窗口的窗口類名稱參數(shù):整數(shù)型。指定的窗口句柄返回值:字符串型。返回指定窗口的窗口類名。命令名:GetExePath作用:得到指定窗口所屬的程序路徑參數(shù):整數(shù)型。指定的窗口句柄返回值:字符串型。返回指定窗口所屬的程序的全路徑。命令名:GetClientRect作用:得到指定窗口的邊框大小參數(shù):整數(shù)型。指定的窗口句柄返回值:字符串型。返回指定窗口的窗口邊框大小,格式類似于X1ly1lx2ly2。其中x1、y1、x2、y2分別為窗口左上點和右下點的坐標。命令名:Active作用:激活指定的窗口參數(shù):整數(shù)型。指定的窗口句柄返回值:無命令名:Max作用:最大化指定的窗口參數(shù):整數(shù)型。指定的窗口句柄返回值:無命令名:Min作用:最小化指定的窗口參數(shù):整數(shù)型。指定的窗口句柄返回值:無命令名:Restore作用:恢復指定的窗口的原始大小參數(shù):整數(shù)型。指定的窗口句柄返回值:無命令名:Move作用:移動指定的窗口,使左上角移到指定的坐標參數(shù):Q指定窗口的句柄,整數(shù)型。QQ分別為指定的x和y坐標,整數(shù)型返回值:無命令名:Close作用:關閉指定的窗口參數(shù):整數(shù)型。指定的窗口句柄返回值:無File.dll插件命令名:ExistFile作用:判斷文件或文件夾是否存在參數(shù):字符串型。要判斷的文件或者文件夾的全路徑返回值:整數(shù)型。返回值為0表示文件或文件夾不存在;返回值為1表示存在該文件,返回值為2表示存在該文件夾命令名:SelectDirector
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年標準駕校訓練場地租賃協(xié)議模板版B版
- 2024年版權轉讓合同:文學作品專用
- 2024-2030年中國客戶關系系統(tǒng)行業(yè)發(fā)展趨勢及投資創(chuàng)新模式分析報告
- 2024-2030年中國四柱液壓舉升機資金申請報告
- 2024年版本:大數(shù)據(jù)分析與咨詢服務合同
- 2024年物業(yè)租賃管理委托協(xié)議書
- 2024年標準無保險勞務派遣協(xié)議模板一
- 2024年全新移交合同協(xié)議書下載官方版3篇
- 2025年四川貨運從業(yè)資格證繼續(xù)再教育考試答案
- 2025標準商超供貨合同
- GB/T 12628-2008硬磁盤驅動器通用規(guī)范
- 初級電焊工培訓課件
- 廣州旅游介紹英文版課件
- 井下修井作業(yè)技術課件
- 早期復極綜合征的再認識課件
- 李商隱詩歌《錦瑟》課件
- 世界文化遺產-樂山大佛課件
- 2022小學一年級數(shù)學活用從不同角度解決問題測試卷(一)含答案
- 博爾赫斯簡介課件
- 2021年山東交投礦業(yè)有限公司招聘筆試試題及答案解析
- 施工單位資料檢查內容
評論
0/150
提交評論