導航:首頁 > 計算方法 > 電腦屏幕取詞方法

電腦屏幕取詞方法

發布時間:2022-05-20 13:08:40

1. 金山詞霸不能對PDF文件內容屏幕取詞,但是可以對周圍按鈕之類的取詞,

出現此問題的原因為:相關功能未打開。

解決的方法和詳細的操作步驟如下:

1、第一步,打開金山詞霸,見下圖,轉到下面的步驟。

2. 電腦版有道詞典如何取詞有道詞典取詞常見問題分析

第一頁:電腦版有道詞典如何取詞?有道詞典取詞常見問題分析
第二頁:電腦版有道詞典如何取詞?有道詞典取詞常見問題分析2
第三頁:電腦版有道詞典如何取詞?有道詞典取詞常見問題分析3有道詞典是一款很小很強大的翻譯軟體,它除了具備中英、英中、英英翻譯功能外,創新的「網路釋義」功能將各類新興詞彙和英文縮寫收錄其中,並且擁有專業權威的大詞典。在生活中它是貼心實用的詞典,能強力智能取詞,幫助用戶進行翻譯。目前已經有超過8000萬用戶使用,所以小編就來與用戶們分享一下有道詞典怎麼屏幕取詞、有道詞典怎麼圖片取詞,還有一點可能用戶不太清楚,有道詞典也可以在谷歌瀏覽器(Chrome)中取詞,今天小編就一一的介紹一下,希望能幫助到大家。
有道詞典如何屏幕取詞?
1、打開「有道詞典」,如圖1所示:
(圖1)
2、點擊有道詞典面板的「左下角」,如圖2所示:
(圖2)
3、先點擊「設置」,接著點擊「軟體設置」按鈕,如圖3所示:
(圖3)
4、在「軟體設置」的對話框中,選擇「取詞劃詞」按鈕,如圖4所示:
(圖4)
5、勾選「啟用屏幕取詞」對話框,在下面選擇你要的取詞方式,一般選擇滑鼠取詞(也可以選擇其它取詞,但每個人的習慣不一樣,因人而異),如圖5所示:
(圖5)
6、最後保存設置,返回界面,用滑鼠選擇你要翻譯的文字,如圖6所示:(小編在這里以網路的新聞兩個字為例子)
(圖6)
7、選擇之後,滑鼠在選擇的內容上停留一下,就會彈出翻譯,如圖7所示:
(圖7)
更多有道詞典教程,盡在詞典軟體
http://www.gezila.com/special/cdcd

3. 屏幕取詞

「滑鼠屏幕取詞」技術是在電子字典中得到廣泛地應用的,如四通利方和金山詞霸等軟體,這個技術看似簡單,其實在WINDOWS系統中實現卻是非常復雜的,總的來說有兩種實現方式:

第一種:採用截獲對部分GDI的API調用來實現,如TextOut,TextOutA等。

第二種:對每個設備上下文(DC)做一分Copy,並跟蹤所有修改上下文(DC)的操作。

第二種方法更強大,但兼容性不好,而第一種方法使用的截獲WindowsAPI的調用,這項技術的強大可能遠遠超出了您的想像,毫不誇張的說,利用WindowsAPI攔截技術,你可以改造整個操作系統,事實上很多外掛式Windows中文平台就是這么實現的!而這項技術也正是這篇文章的主題。

截WindowsAPI的調用,具體的說來也可以分為兩種方法:

第一種方法通過直接改寫WinAPI 在內存中的映像,嵌入匯編代碼,使之被調用時跳轉到指定的地址運行來截獲;第二種方法則改寫IAT(Import Address Table 輸入地址表),重定向WinAPI函數的調用來實現對WinAPI的截獲。

第一種方法的實現較為繁瑣,而且在Win95、98下面更有難度,這是因為雖然微軟說WIN16的API只是為了兼容性才保留下來,程序員應該盡可能地調用32位的API,實際上根本就不是這樣!WIN 9X內部的大部分32位API經過變換調用了同名的16位API,也就是說我們需要在攔截的函數中嵌入16位匯編代碼!

我們將要介紹的是第二種攔截方法,這種方法在Win95、98和NT下面運行都比較穩定,兼容性較好。由於需要用到關於Windows虛擬內存的管理、打破進程邊界牆、向應用程序的進程空間中注入代碼、PE(Portable Executable)文件格式和IAT(輸入地址表)等較底層的知識,所以我們先對涉及到的這些知識大概地做一個介紹,最後會給出攔截部分的關鍵代碼。
先說Windows虛擬內存的管理。Windows9X給每一個進程分配了4GB的地址空間,對於NT來說,這個數字是2GB,系統保留了2GB到 4GB之間的地址空間禁止進程訪問,而在Win9X中,2GB到4GB這部分虛擬地址空間實際上是由所有的WIN32進程所共享的,這部分地址空間載入了共享Win32 DLL、內存映射文件和VXD、內存管理器和文件系統碼,Win9X中這部分對於每一個進程都是可見的,這也是Win9X操作系統不夠健壯的原因。

Win9X中為16位操作系統保留了0到4MB的地址空間,而在4MB到2GB之間也就是Win32進程私有的地址空間,由於 每個進程的地址空間都是相對獨立的,也就是說,如果程序想截獲其它進程中的API調用,就必須打破進程邊界牆,向其它的進程中注入截獲API調用的代碼,這項工作我們交給鉤子函數(SetWindowsHookEx)來完成,關於如何創建一個包含系統鉤子的動態鏈接庫,《電腦高手雜志》已經有過專題介紹了,這里就不贅述了。

所有系統鉤子的函數必須要在動態庫里,這樣的話,當進程隱式或顯式調用一個動態庫里的函數時,系統會把這個動態庫映射到這個進程的虛擬地址空間里,這使得DLL成為進程的一部分,以這個進程的身份執行,使用這個進程的堆棧,也就是說動態鏈接庫中的代碼被鉤子函數注入了其它GUI進程的地址空間(非GUI進程,鉤子函數就無能為力了),當包含鉤子的DLL注入其它進程後,就可以取得映射到這個進程虛擬內存里的各個模塊(EXE和DLL)的基地址,如:

HMODULE hmole=GetMoleHandle(「Mypro.exe」);

在MFC程序中,我們可以用AfxGetInstanceHandle()函數來得到模塊的基地址。EXE和DLL被映射到虛擬內存空間的什麼地方是由它們的基地址決定的。它們的基地址是在鏈接時由鏈接器決定的。當你新建一個Win32工程時,VC++鏈接器使用預設的基地址0x00400000。可以通過鏈接器的BASE選項改變模塊的基地址。EXE通常被映射到虛擬內存的0x00400000處,DLL也隨之有不同的基地址,通常被映射到不同進程的相同的虛擬地址空間處。

系統將EXE和DLL原封不動映射到虛擬內存空間中,它們在內存中的結構與磁碟上的靜態文件結構是一樣的。即PE (Portable Executable) 文件格式。我們得到了進程模塊的基地址以後,就可以根據PE文件的格式窮舉這個模塊的IMAGE_IMPORT_DESCRIPTOR數組,看看進程空間中是否引入了我們需要截獲的函數所在的動態鏈接庫,比如需要截獲「TextOutA」,就必須檢查「Gdi32.dll」是否被引入了。

說到這里,我們有必要介紹一下PE文件的格式,如右圖,這是PE文件格式的大致框圖,最前面是文件頭,我們不必理會,從PE File Optional Header後面開始,就是文件中各個段的說明,說明後面才是真正的段數據,而實際上我們關心的只有一個段,那就是「.idata」段,這個段中包含了所有的引入函數信息,還有IAT(Import Address Table)的RVA(Relative Virtual Address)地址。

說到這里,截獲WindowsAPI的整個原理就要真相大白了。實際上所有進程對給定的API函數的調用總是通過PE文件的一個地方來轉移的,這就是一個該模塊(可以是EXE或DLL)的「.idata」段中的IAT輸入地址表(Import Address Table)。在那裡有所有本模塊調用的其它DLL的函數名及地址。對其它DLL的函數調用實際上只是跳轉到輸入地址表,由輸入地址表再跳轉到DLL真正的函數入口。

具體來說,我們將通過IMAGE_IMPORT_DESCRIPTOR數組來訪問「.idata」段中引入的DLL的信息,然後通過IMAGE_THUNK_DATA數組來針對一個被引入的DLL訪問該DLL中被引入的每個函數的信息,找到我們需要截獲的函數的跳轉地址,然後改成我們自己的函數的地址……具體的做法在後面的關鍵代碼中會有詳細的講解。
講了這么多原理,現在讓我們回到「滑鼠屏幕取詞」的專題上來。除了API函數的截獲,要實現「滑鼠屏幕取詞」,還需要做一些其它的工作,簡單的說來,可以把一個完整的取詞過程歸納成以下幾個步驟:

1. 安裝滑鼠鉤子,通過鉤子函數獲得滑鼠消息。

使用到的API函數:SetWindowsHookEx

2. 得到滑鼠的當前位置,向滑鼠下的窗口發重畫消息,讓它調用系統函數重畫窗口。

使用到的API函數:WindowFromPoint,ScreenToClient,InvalidateRect

3. 截獲對系統函數的調用,取得參數,也就是我們要取的詞。

對於大多數的Windows應用程序來說,如果要取詞,我們需要截獲的是「Gdi32.dll」中的「TextOutA」函數。

我們先仿照TextOutA函數寫一個自己的MyTextOutA函數,如:

BOOL WINAPI MyTextOutA(HDC hdc, int nXStart, int nYStart, LPCSTR lpszString,int cbString)
{
// 這里進行輸出lpszString的處理
// 然後調用正版的TextOutA函數
}

把這個函數放在安裝了鉤子的動態連接庫中,然後調用我們最後給出的HookImportFunction函數來截獲進程對TextOutA函數的調用,跳轉到我們的MyTextOutA函數,完成對輸出字元串的捕捉。

HookImportFunction的用法:

HOOKFUNCDESC hd;
PROC pOrigFuns;
hd.szFunc="TextOutA";
hd.pProc=(PROC)MyTextOutA;
HookImportFunction (AfxGetInstanceHandle(),"gdi32.dll",&hd,pOrigFuns);

下面給出了HookImportFunction的源代碼,相信詳盡的注釋一定不會讓您覺得理解截獲到底是怎麼實現的很難,Ok,Let』s Go:

///////////////////////////////////////////// Begin ///////////////////////////////////////////////////////////////
#include <crtdbg.h>

// 這里定義了一個產生指針的宏
#define MakePtr(cast, ptr, AddValue) (cast)((DWORD)(ptr)+(DWORD)(AddValue))

// 定義了HOOKFUNCDESC結構,我們用這個結構作為參數傳給HookImportFunction函數
typedef struct tag_HOOKFUNCDESC
{
LPCSTR szFunc; // The name of the function to hook.
PROC pProc; // The procere to blast in.
} HOOKFUNCDESC , * LPHOOKFUNCDESC;

// 這個函數監測當前系統是否是WindowNT
BOOL IsNT();

// 這個函數得到hMole -- 即我們需要截獲的函數所在的DLL模塊的引入描述符(import descriptor)
PIMAGE_IMPORT_DESCRIPTOR GetNamedImportDescriptor(HMODULE hMole, LPCSTR szImportMole);

// 我們的主函數
BOOL HookImportFunction(HMODULE hMole, LPCSTR szImportMole,
LPHOOKFUNCDESC paHookFunc, PROC* paOrigFuncs)
{
/////////////////////// 下面的代碼檢測參數的有效性 ////////////////////////////
_ASSERT(szImportMole);
_ASSERT(!IsBadReadPtr(paHookFunc, sizeof(HOOKFUNCDESC)));
#ifdef _DEBUG
if (paOrigFuncs) _ASSERT(!IsBadWritePtr(paOrigFuncs, sizeof(PROC)));
_ASSERT(paHookFunc.szFunc);
_ASSERT(*paHookFunc.szFunc != '\0');
_ASSERT(!IsBadCodePtr(paHookFunc.pProc));
#endif
if ((szImportMole == NULL) || (IsBadReadPtr(paHookFunc, sizeof(HOOKFUNCDESC))))
{
_ASSERT(FALSE);
SetLastErrorEx(ERROR_INVALID_PARAMETER, SLE_ERROR);
return FALSE;
}
//////////////////////////////////////////////////////////////////////////////

// 監測當前模塊是否是在2GB虛擬內存空間之上
// 這部分的地址內存是屬於Win32進程共享的
if (!IsNT() && ((DWORD)hMole >= 0x80000000))
{
_ASSERT(FALSE);
SetLastErrorEx(ERROR_INVALID_HANDLE, SLE_ERROR);
return FALSE;
}
// 清零
if (paOrigFuncs) memset(paOrigFuncs, NULL, sizeof(PROC));

// 調用GetNamedImportDescriptor()函數,來得到hMole -- 即我們需要
// 截獲的函數所在的DLL模塊的引入描述符(import descriptor)
PIMAGE_IMPORT_DESCRIPTOR pImportDesc = GetNamedImportDescriptor(hMole, szImportMole);
if (pImportDesc == NULL)
return FALSE; // 若為空,則模塊未被當前進程所引入

// 從DLL模塊中得到原始的THUNK信息,因為pImportDesc->FirstThunk數組中的原始信息已經
// 在應用程序引入該DLL時覆蓋上了所有的引入信息,所以我們需要通過取得pImportDesc->OriginalFirstThunk
// 指針來訪問引入函數名等信息
PIMAGE_THUNK_DATA pOrigThunk = MakePtr(PIMAGE_THUNK_DATA, hMole,
pImportDesc->OriginalFirstThunk);

// 從pImportDesc->FirstThunk得到IMAGE_THUNK_DATA數組的指針,由於這里在DLL被引入時已經填充了
// 所有的引入信息,所以真正的截獲實際上正是在這里進行的
PIMAGE_THUNK_DATA pRealThunk = MakePtr(PIMAGE_THUNK_DATA, hMole, pImportDesc->FirstThunk);

// 窮舉IMAGE_THUNK_DATA數組,尋找我們需要截獲的函數,這是最關鍵的部分!
while (pOrigThunk->u1.Function)
{
// 只尋找那些按函數名而不是序號引入的函數
if (IMAGE_ORDINAL_FLAG != (pOrigThunk->u1.Ordinal & IMAGE_ORDINAL_FLAG))
{
// 得到引入函數的函數名
PIMAGE_IMPORT_BY_NAME pByName = MakePtr(PIMAGE_IMPORT_BY_NAME, hMole,
pOrigThunk->u1.AddressOfData);

// 如果函數名以NULL開始,跳過,繼續下一個函數
if ('\0' == pByName->Name[0])
continue;

// bDoHook用來檢查是否截獲成功
BOOL bDoHook = FALSE;

// 檢查是否當前函數是我們需要截獲的函數
if ((paHookFunc.szFunc[0] == pByName->Name[0]) &&
(strcmpi(paHookFunc.szFunc, (char*)pByName->Name) == 0))
{
// 找到了!
if (paHookFunc.pProc)
bDoHook = TRUE;
}
if (bDoHook)
{
// 我們已經找到了所要截獲的函數,那麼就開始動手吧
// 首先要做的是改變這一塊虛擬內存的內存保護狀態,讓我們可以自由存取
MEMORY_BASIC_INFORMATION mbi_thunk;
VirtualQuery(pRealThunk, &mbi_thunk, sizeof(MEMORY_BASIC_INFORMATION));
_ASSERT(VirtualProtect(mbi_thunk.BaseAddress, mbi_thunk.RegionSize,
PAGE_READWRITE, &mbi_thunk.Protect));

// 保存我們所要截獲的函數的正確跳轉地址
if (paOrigFuncs)
paOrigFuncs = (PROC)pRealThunk->u1.Function;

// 將IMAGE_THUNK_DATA數組中的函數跳轉地址改寫為我們自己的函數地址!
// 以後所有進程對這個系統函數的所有調用都將成為對我們自己編寫的函數的調用
pRealThunk->u1.Function = (PDWORD)paHookFunc.pProc;

// 操作完畢!將這一塊虛擬內存改回原來的保護狀態
DWORD dwOldProtect;
_ASSERT(VirtualProtect(mbi_thunk.BaseAddress, mbi_thunk.RegionSize,
mbi_thunk.Protect, &dwOldProtect));
SetLastError(ERROR_SUCCESS);
return TRUE;
}
}
// 訪問IMAGE_THUNK_DATA數組中的下一個元素
pOrigThunk++;
pRealThunk++;
}
return TRUE;
}

// GetNamedImportDescriptor函數的實現
PIMAGE_IMPORT_DESCRIPTOR GetNamedImportDescriptor(HMODULE hMole, LPCSTR szImportMole)
{
// 檢測參數
_ASSERT(szImportMole);
_ASSERT(hMole);
if ((szImportMole == NULL) || (hMole == NULL))
{
_ASSERT(FALSE);
SetLastErrorEx(ERROR_INVALID_PARAMETER, SLE_ERROR);
return NULL;
}

// 得到Dos文件頭
PIMAGE_DOS_HEADER pDOSHeader = (PIMAGE_DOS_HEADER) hMole;

// 檢測是否MZ文件頭
if (IsBadReadPtr(pDOSHeader, sizeof(IMAGE_DOS_HEADER)) ||
(pDOSHeader->e_magic != IMAGE_DOS_SIGNATURE))
{
_ASSERT(FALSE);
SetLastErrorEx(ERROR_INVALID_PARAMETER, SLE_ERROR);
return NULL;
}

// 取得PE文件頭
PIMAGE_NT_HEADERS pNTHeader = MakePtr(PIMAGE_NT_HEADERS, pDOSHeader, pDOSHeader->e_lfanew);

// 檢測是否PE映像文件
if (IsBadReadPtr(pNTHeader, sizeof(IMAGE_NT_HEADERS)) ||
(pNTHeader->Signature != IMAGE_NT_SIGNATURE))
{
_ASSERT(FALSE);
SetLastErrorEx(ERROR_INVALID_PARAMETER, SLE_ERROR);
return NULL;
}

// 檢查PE文件的引入段(即 .idata section)
if (pNTHeader->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT].VirtualAddress == 0)
return NULL;

// 得到引入段(即 .idata section)的指針
PIMAGE_IMPORT_DESCRIPTOR pImportDesc = MakePtr(PIMAGE_IMPORT_DESCRIPTOR, pDOSHeader,
pNTHeader->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT].VirtualAddress);

// 窮舉PIMAGE_IMPORT_DESCRIPTOR數組尋找我們需要截獲的函數所在的模塊
while (pImportDesc->Name)
{
PSTR szCurrMod = MakePtr(PSTR, pDOSHeader, pImportDesc->Name);
if (stricmp(szCurrMod, szImportMole) == 0)
break; // 找到!中斷循環
// 下一個元素
pImportDesc++;
}

// 如果沒有找到,說明我們尋找的模塊沒有被當前的進程所引入!
if (pImportDesc->Name == NULL)
return NULL;

// 返回函數所找到的模塊描述符(import descriptor)
return pImportDesc;
}

// IsNT()函數的實現
BOOL IsNT()
{
OSVERSIONINFO stOSVI;
memset(&stOSVI, NULL, sizeof(OSVERSIONINFO));
stOSVI.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
BOOL bRet = GetVersionEx(&stOSVI);
_ASSERT(TRUE == bRet);
if (FALSE == bRet) return FALSE;
return (VER_PLATFORM_WIN32_NT == stOSVI.dwPlatformId);
}
/////////////////////////////////////////////// End //////////////////////////////////////////////////////////////////////

不知道在之前,有多少朋友嘗試過去實現「滑鼠屏幕取詞」這項充滿了挑戰的技術,也只有嘗試過的朋友才能體會到其間的不易,尤其在探索API函數的截獲時,手頭的幾篇資料沒有一篇是涉及到關鍵代碼的,重要的地方都是一筆代過,MSDN更是顯得蒼白而無力,也不知道除了IMAGE_IMPORT_DESCRIPTOR和IMAGE_THUNK_DATA,微軟還隱藏了多少秘密,好在硬著頭皮還是把它給攻克了,希望這篇文章對大家能有所幫助。

4. 如何設置用金山詞霸在word上屏幕取詞

步驟一:首先進入金山詞霸的首頁,在界面的右上方,點擊一下小三角。
步驟二:然後點擊設置,功能設置。
步驟三:在左邊的菜單欄里就可以看見取詞劃意啦,點擊它。
步驟四:這時就可以看到有取詞和劃意兩個設置,根據自己的需要,在取詞上,打上勾勾就可以,點擊應用,確定。

5. 有什麼軟體可以屏幕取詞翻譯。

有道翻譯可以實現屏幕取詞,操作如下。

1、打開電腦進入系統後,雙擊有道詞典的應用打開。

6. 電腦上安裝了有道詞典總是自動取詞的解決方法

方法:
1、原因分析,為什麼回事這樣呢?
為什麼安裝了有道詞典之後,電腦上會自動取詞呢?後來小編分析,原因肯定是以為暗轉了有道詞典,有道詞典相關的取詞設置打開了!!只要關閉相關設置就好了!!!那應該怎麼辦呢?請看2
2、應該怎麼辦呢?
打開有道詞典,在電腦桌面有下角,找到有道詞典縮略圖,點擊滑鼠右鍵,找到「
軟體設置」,並打開「軟體設置」,如圖
3、在「軟體設置」裡面找到「取詞劃詞」選項卡,如圖
4、將「取詞劃詞」選項卡裡面的「啟用屏幕取詞」前面的對號去掉,如圖
5、設置完成之後,點擊「確定」按鈕,保存設置,親測實用!!希望對有需要的小夥伴有所幫助!!!
以上就是專題欄小編帶來的有道詞典教程,更多教程請看「http://www.zhuantilan.com/zt/youcidian/」

7. 怎麼在電腦裡面查單詞啊

金山詞霸

金山快譯
詞霸有屏幕取詞,打開詞霸在右下角右擊選屏幕取詞,然後把滑鼠移到單詞外就可以了.還可以讀單詞.

8. 有道詞典怎麼設置滑鼠放到上面就翻譯 屏幕取詞設置方

1、打開有道詞典,在軟體窗口的右下角勾選「取詞」和「劃詞」。

2、這時候再去看文檔,只要把滑鼠指針移動到一個詞語上面,有道詞典就會自動翻譯該單詞。

3、如果覺得滑鼠移到不需要的單詞,無意翻譯。。。可以進行設置:按住Ctrl,再把指針移到某單詞上才翻譯。
點擊左下角的「菜單」,選擇「設置」,「軟體設置」。

4、在設置窗口中點擊「取詞劃詞」。在「啟用屏幕取詞」下面,選擇「Ctrl+滑鼠取詞」。再點保存設置。

5、如果發現不能對pdf等文檔取詞,點擊如圖所示的下載OCR取詞模塊,勾選「開啟OCR強力取詞。如圖,這樣就能對PDF取詞了。

9. 有道詞典怎麼關閉屏幕取詞 屏幕取詞關閉方法

屏幕取詞是有道詞典桌面版的一大特色,但是有時候又不想進行屏幕取詞。那麼,有道詞典怎麼關閉屏幕取詞呢?下面,小編就為大家帶來屏幕取詞關閉方法,一起來了解一下吧!

點擊查看==>有道詞典常見問題匯總

方法一、

1、打開有道詞典桌面端,點擊左下角的有道圖標;

2、在彈出的功能菜單中選擇「設置」,然後點擊「軟體設置」;

3、在出現的「軟體設置」界面中,選擇「內容設置」;

4、在「內容設置」界面中,將「啟動屏幕取詞」全面的勾去掉結果即可。

方法二、

1、滑鼠右擊電腦右下角消息通知欄中的「有道詞典」;

2、在彈出的功能列表中,如果「屏幕取詞」全面的圖標是灰色狀態,說明屏幕取詞功能是關閉的。

閱讀全文

與電腦屏幕取詞方法相關的資料

熱點內容
這段話指出了哪些觀察的方法 瀏覽:284
解決共享問題數據處理方法 瀏覽:803
手腳濕疹治療方法 瀏覽:452
h6自動大燈正確使用方法 瀏覽:680
那麼正確的走路方法是什麼呢 瀏覽:640
火柴如何二次自燃方法 瀏覽:804
高速轉動的齒輪連接選用方法 瀏覽:387
如何開始瑜伽練習的7個方法 瀏覽:68
房性早搏最佳食療方法 瀏覽:143
銀行鑒定假幣最簡單方法 瀏覽:157
青香桔的種植方法 瀏覽:626
如何用兩位數乘兩位數的簡便方法 瀏覽:452
口服精油的使用方法 瀏覽:998
什麼方法確認 瀏覽:961
mac的相機在哪裡設置方法 瀏覽:321
圓中的有關計算方法 瀏覽:436
邁騰空調使用方法 瀏覽:511
陳皮膏怎麼熬制方法 瀏覽:393
取名字最簡單的方法 瀏覽:599
小兒哮喘的中醫中葯治療方法 瀏覽:647