Friendly and easy to learn Visual Basic to a visual development environment known as the first choice for people to learn computer programming language. Currently, about 300 million people worldwide use the Visual Basic language. If you want to excel in this vast beings, then you had to learn the API (Application Program lnterface, the Windows application programming interface) programming. Do not know API, it can not become master.
Section I: API base
In the final analysis is a series of low-level API function, the system provides to users for access to the operating system core, high-level programming approach. Through the statement of Visual Basic applications can access the external process of Windows API (and other external DLLs). In a statement after the procedure, call its methods and the process of calling the same Visual Basic itself. To declare a DLL procedure, required in the code window of the "Statement" section to add a Declare statement, if the procedure returns a value, it should be declared as a Function. For example:
Declare Function publicname Lib "libname" [Alias "alias"] [([[ByVal] variable [As type] [, [ByVal] variable [As type ]]...])] As Type
If there is no return value, it can be declared as a Sub.
By default, the standard DLL module declaration process, the application can call it from anywhere. In other types of modules defined in private DLL process module to be added to the front in their Private keyword to show distinction. Drew particular attention, in 32-bit Visual Basic in the process name is case sensitive. In the previous 16-bit versions are not case sensitive, it is easy for beginners to go wrong.
Declare statement in Visual Basic Lib clause is used to tell how to find the dll file that contains the process. If the reference process is Windows core library (User32, Kernel32 or GDI32), you can not include file extension. For example:
Declare Function GetTickCount Lib "kernel32" Alias "GetTickCount" () As Long. For the other DLL, Lib clause to specify the file path and extension.
If the process of Windows API calls to use the string, then the statement must be increased in a statement Alias clause to specify the correct character set.鍖呭惈瀛楃涓茬殑Windows API鍑芥暟瀹?闄呮湁涓ょ鏍兼ANSI鏍煎紡Unicode鏍煎紡銆傚洜姝わ紝鍦?Windows澶存枃浠朵腑锛屾瘡涓寘鍚瓧绗︿覆鐨勫嚱鏁伴兘鍚屾椂鏈?ANSI鐗堟湰鍜孶nicode鐗堟湰銆?br />渚嬪锛屼笅闈㈡槸SetWindowText鍑芥暟鐨勪袱绉岰璇█鎻?杩般?鍙互鐪嬪埌锛岀涓?釜鎻忚堪灏嗗嚱鏁板畾涔変负SetWindowTextA, 灏鹃儴鐨?amp;quot;A"琛ㄦ槑瀹冩槸涓?釜ANSI鍑芥暟锛?br />SetWindowTextA(HWND hWnd,LPCSTR lpString);
绗簩涓弿杩板皢瀹冨畾涔変负SetWindowTextW锛屽熬閮ㄧ殑 "w"琛ㄦ槑瀹冩槸涓?釜Unicode鍑芥暟锛?br />SetWindowTextW(HWND Hwnd,LPCWSTR lpString);
鍥犱负涓や釜鍑芥暟瀹為檯鐨勫悕绉伴兘涓嶆槸"SetWindow Text"锛岃寮曠敤姝g‘鐨勫嚱鏁板氨蹇呴』澧炲姞涓?釜Alias瀛愬彞锛?br />Private Declare Function SetwindowText Lib "user32" Alias "SetWindowTextA"(ByVal hwnd As Longg锛孊yVal lpString As String) As Long
璇锋敞鎰忥紝 Alias瀛愬彞鍚庨潰鐨勫瓧绗︿覆蹇呴』鏄繃绋嬬殑 鐪熸鍚嶇О锛屽繀椤绘槸鍖哄垎澶у皬鍐欑殑銆備簨瀹炰笂锛屾偍鍙渶瑕?璁颁綇锛屽彧鏈塛indows NT鎵嶆敮鎸乁nicode鏍煎紡锛岃? Windows 95鍙敮鎸丄NSI鏍煎紡灏辫浜嗐?鑷充簬涓よ?鐨勫尯 鍒紝浣滀竴鑸殑搴旂敤绋嬪簭寮?彂鏄笉闇?浜嗚В鐨勩?
VB5涓撲笟鐗堝湪VB鐩綍鐨刉inapi瀛愮洰褰曚笅锛岀敤鍑?涓枃浠舵彁渚涗簡鍏充簬API鐨勪俊鎭? Win32api.txt鏂囦欢涓?鍖呭惈浜?2浣峎indows API鍑芥暟涓敤鍒扮殑鍑芥暟鍜岀被鍨嬬殑 缁撴瀯澹版槑浠ュ強鍏ㄥ眬甯搁噺鐨勫?銆傜敤鎴峰彲浠ョ敤VB鏈韩甯︾殑澶?鎺ョ▼搴?amp;quot;API娴忚鍣?amp;quot;鏉ユ柟渚垮湴浣跨敤Win32api锛嶵xt锛屽涓?鎵?ず锛?br />鐐瑰嚮鑿滃崟鏂囦欢椤圭殑"鍔犺浇鏂囨湰鏂囦欢鈥?amp;quot;浠嶸B鐩?褰曚笅鐨刉INAPI鐩綍涓?鎷?amp;quot;WIN32API.TXT"锛屽氨鍙互 鏌ョ湅WINDOWS 95绯荤粺鐨凙PI鍑芥暟鐨勫0鏄庛?甯告暟瀹氫箟鍜?鏁版嵁绫诲瀷浜嗐?渚嬪锛屾垜浠墦绠楁煡鐪嬪嚱鏁癐nverRect() 鐨勫0鏄庛?棣栧厛锛岀偣鍑?amp;quot;鎼滅储"鎸夐挳锛岃緭鍏ュ瓧绗︿覆 "InverRect"銆傚湪"鍙?椤?amp;quot;鏍忎腑锛屽叞鑹茬殑浜害鏉″皢绉?鍔ㄥ埌"InverRect"椤逛笂銆傚啀鐐规寜"娣诲姞"鎸夐挳锛屽湪"閫?瀹氶」"涓氨鍑虹幇"InverRect"鍦╒isual Basic涓殑 澹版槑浜嗐?鎺ヤ笅鏉ヨ嚜鐒舵槸鐐规寜"澶嶅埗"鎸夐挳锛岀劧鍚庡皢绐?鍙e垏鎹㈠埌Visual Basic寮?彂鐜涓紝鍦ㄩ渶瑕佸0鏄嶢PI 鍑芥暟鐨勫湴鏂笴trl锛媀锛堢矘璐达級鍗冲彲銆?br />涓婇潰鎵?鐨勫0鏄庢柟娉曡櫧鐒剁畝鍗曪紝浣嗗彧鏈変娇鐢╓IN DOWS鏈韩鐨凙PI鍑芥暟鎵嶈兘杩欐牱銆傚浜庣涓夋柟鎻愪緵鐨勫姩 鎬侀摼鎺ュ簱锛圖LL锛夋偍鍙湁鐢ㄩ敭鐩樿?鑰佸疄瀹炲湴鏁蹭簡銆?br />绗簩鑺傦細鐗涘垁灏忚瘯
鐜板湪璇昏?涓?畾寰堟兂鑷繁浜茶嚜璇曚竴涓嬶紝涓嬮潰涓句袱涓?瀹為檯搴旂敤鐨勪緥瀛愯澶у浣撲細涓?笅API鐨勫鐢ㄥ惂锛?br />1.浣夸竴涓獥浣撳缁堜繚鎸佸湪灞忓箷鐨勬渶涓婇潰
鎴戜滑鐭ラ亾VB鏈韩鑷甫鐨勫嚱鏁版槸闅句互瀹屾垚姝ゅ姛鑳?鐨勶紝鎴戜滑鍙互閫氳繃璋冪敤Windows鐨凙PI鍑芥暟锛?SetWindowPos杈惧埌鎴戜滑鐨勮姹傘? Follow these steps:
锛?锛夊惎鍔╒B5寤虹珛涓?釜鏂板伐绋嬶紝鍦ㄨ宸ョ▼涓坊鍔犱竴 涓ā鍧楋紙Moudel锛夛紝鍦ㄨ妯″潡涓敤涓婅堪鐨?amp;quot;API渚嬭鍣?amp;quot; 娣诲姞濡備笅鐨勮API鍑芥暟鐨勫嚱鏁板0鏄庡拰甯搁噺澹版槑閮ㄥ垎锛?br />''API function declaration
Declare Function SetWindowPos Lib "user32" Alias "SetWindowPos" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
''甯搁噺澹版槑
Global Const SWP_HIDEWINDOW = &H80
Global Const SWP_NOACTIVATE = &H10
Global Const SWP_NOCOPYBITS = &H100
Global Const SWP_NOMOVE = &H2
Global Const SWP_NOOWNERZORDER = &H200
Global Const SWP_NOREDRAW = &H8
Global Const SWP_NOREPOSITION = SWP_NOOWNERZORDER
Global Const SWP_NOSIZE = &H1
Global Const SWP_NOZORDER = &H4
Global Const SWP_SHOWWINDOW = &H40
Global Const HWND_BOTTOM = 1
Global Const HWND_BROADCAST = &HFFFF&
Global Const HWND_DESKTOP = 0
Global Const HWND_NOTOPMOST = -2
Global Const HWND_TOPMOST = -1
Global Const HWND_TOP = 0
Global Const Flags=SWP_NOMOVE Or SWP_NOSIZE
杩欓噷浠?amp;quot;SWP_"寮?ご鐨勫父閲忔槸琛ㄧず绐椾綋鎵?叿鏈夌殑 椋庢牸锛岃繖浜涘父閲忓彲浠ラ?杩嘨B涓殑"OR"鎿嶄綔绗︾粍鍚堝湪 涓?捣銆傝?浠?amp;quot;HWND_"寮?ご鐨勫父閲忚〃绀虹獥浣撳湪妗岄潰涓婄殑 浣嶇疆銆備粠杩欎簺甯搁噺鐨勮嫳鏂囧崟璇嶇殑鎰忎箟涓婅鑰呭簲璇ュ緢瀹?鏄撶悊瑙d粬浠墍鍏锋湁鐨勯鏍间簡銆傛墍浠ョ瑪鑰呭氨涓嶄竴涓?幓璇?鏄庝簡銆傝嚦浜庝负浠?箞瑕佹坊鍔犺繖浜涘父閲忚?涓嶆槸鍒殑杩欏氨瑕?鎮ㄥ幓鏌ョ湅Windows SDK鍏充簬璇ュ嚱鏁扮殑甯姪鏂囨。浜嗐?褰?鐒惰繖瀵逛簬鍒濆鑰呮潵璇存湁涓?畾鐨勯毦搴︼紝浣嗕笉瑕佺晱鎯э紝鍙?瑕佹偍浠旂粏鐪嬪府鍔╁氨浼氭參鎱㈡悶鎳傜殑銆傚洜涓鸿繖浜汚PI鍑芥暟 鏄负C鍜孋锛嬶紜鐨勭紪绋嬩汉鍛樼紪鍐欑殑锛屾墍浠ュ鏋滄偍鎳備竴鐐?C++鐨勮瘽浼氬緢瀹规槗鐞嗚В鐨勩?
锛?锛夌幇鍦ㄥ彧瑕佸湪鎮ㄦ兂瑕佹鍔熻兘鐨勫湴鏂硅皟鐢ㄨ鍑芥暟 灏卞彲浠ヤ簡锛岃皟鐢ㄧ殑鏂规硶濡傦細
Dim Success as Long
SuccesS锛漇etwindowPos(me.HWnd. HWND_TOPMOST,0,0,0,0,FLAGS)
鑻uccess杩斿洖鐨勫?涓嶇瓑浜庨浂鍒欒〃绀鸿皟鐢ㄦ垚鍔熴?
姣斿鍦ㄦ煇涓獥浣撶殑Load浜嬩欢涓姞鍏ヤ笂杩扮殑涓よ浠?鐮侊紝灏卞彲浠ヨ揪鍒颁娇璇ョ獥浣撳缁堜綅浜庡睆骞曟渶涓婇潰鐨勭洰鐨勩?
缁嗗績鐨勮鑰呭彲鑳藉凡缁忓彂鐜颁笂闈㈢殑渚嬪瓙涓殑妯″潡澹?鏄庝腑澹版槑浜嗗ソ鍑犱釜甯搁噺锛屽彲涓轰粈涔堝彧鐢ㄥ埌涓変釜鍛紵鐜?鍦ㄦ偍鍙互璇曠潃鏀瑰彉涓?笅API鍑芥暟"SetWindowPos"涓?鐨勭浜屼釜鍙傛暟鎴栧父閲廎LAGS涓殑椤癸紝鐪嬬湅鎮ㄧ殑绐椾綋浼?鍑虹幇浠?箞鏍风殑鏁堟灉锛?br />2. VB5涓浣曞睆钄芥帀win95涓殑CTRL_ALT_DEL锛?CTRL_ESC, ALT_TAB涓夌粍鐑敭閫氳繃璋冪敤API鍑芥暟"SystemParametersInfo"鏉ュ疄 鐜般?
棣栧厛鍒涘缓涓?柊宸ョ▼锛涘湪姝ゅ伐绋嬩腑娣诲姞涓?釜绐椾綋鍜?涓?釜妯″潡锛涘湪绐椾綋涓婃嫋鏀句袱涓寜閽垎鍒懡鍚嶄负 "cmdDisable","cmdEnable"锛汣opy濡備笅浠g爜鍏ユā鍧椾腑锛?br />Public Declare Function SystemParametersInfo Lib "user32" Ahias "SystemParametersInfoA" (ByVal uAction As Long,ByVal uParam As Long, lpvParam As Any锛孊yVal fuWinIni As Long)AS Long
Public Const SPI_SCREENSAVERRUNNING=97
鍦ㄧ獥浣撶殑浠g爜缂栬緫鍖篊opy濡備笅浠g爜锛?br />''浣夸笁缁勭儹閿け鏁?br />Private Sub cmdDisable_click()
SystemParametersInfo
SPI_SCREENSAVERRUNNING,True,byVal 1&,0
End Sub
Private Sub Form_Unload (Cancel As Integer)
''绋嬪簭閫?嚭鍓嶆槸鐑敭鏈夋晥
CndEnable_Click
End Sub
鑻ュ皢姝ゅ姛鑳藉拰灞忓箷淇濇姢绋嬪簭缁撳悎鍒颁竴璧凤紝閭f偍鐨勫睆骞?淇濇姢绋嬪簭涓?畾澧炶壊璁稿銆?br />API鍑芥暟鐨勭畝鍗曡皟鐢ㄤ緥瀛愬氨鏄繖涔堝鏄擄紝鐩镐俊鐜板湪鎮?瀵笰PI鐨勮皟鐢ㄥ凡涓嶅啀鎰熷埌绁炵浜嗭紝鎺ヤ笅鏉ユ垜浠氨鐪嬬湅涓?釜 姣旇緝澶嶆潅鐨勫簲鐢ㄣ?
绗笁鑺傦細楂樻墜杩涢樁
涓婇潰鐨勫叧浜嶢PI鐨勮皟鐢ㄧ殑渚嬪瓙鍙槸涓轰簡甯︽偍鍘籛in dows API涓栫晫涓幓鎺㈢储涓?笅銆傜浉淇℃偍宸叉帰绱㈠埌浜嗕竴鐐圭湁 鐩苟鎯冲幓瀹炵幇涓?簺鏇?amp;quot;濂界帺"鐨勪笢瑗夸簡銆?Good!涓嬮潰灏卞悜鎮?浠嬬粛涓?釜寰?amp;quot;濂界帺"鍚屾椂鍙堜細浣挎偍鐨勭▼搴忕湅璧锋潵鏇翠笓涓氬寲 鐨勪竴涓狝PI璋冪敤銆?br />鐩镐俊鎮ㄧ殑鏈哄櫒涓婁竴瀹氳鏈?amp;quot;閲戝北璇嶉湼"锛岃瘯鐫?惎鍔ㄥ畠 鎮ㄥ彂鐜颁簡浠?箞锛熷惎鍔ㄧ敾闈㈣繃鍚庡畠"涓嶈浜?amp;quot;銆傛妸榧犳爣绉诲埌 妗岄潰鐨勫彸涓嬭锛屽師鏉ュ畠浠ュ浘鏍囩殑褰㈠紡"钘忓湪" Windows 鐨勬墭鐩樹腑銆傜敤榧犳爣鍙冲嚮瀹冭繕浼氬脊鍑轰竴涓彍鍗曞姛鑳介」渚涙偍 閫夋嫨銆傜幇鍦ㄦ偍涓?畾鎯虫妸鑷繁鐨勭▼搴忎篃鏀惧埌鎵樼洏锛岃繖鏍锋偍鐨?绋嬪簭澶氬叿鏈変笓涓氭按鍑嗭紒
涓嬮潰鏄鍔熻兘鐨勫疄鐜版楠わ細
1.杩欓噷鎴戜滑璋冪敤鐨凙PI鍑芥暟鏄細 "Shell_NotifyIcon"锛屽湪鎮ㄧ殑妯″潡涓坊鍔犲涓嬬殑鍑芥暟澹版槑 鍜屽父閲忓0鏄庯細
''浠ヤ笅甯搁噺鍛婅瘔绯荤粺鍦ㄦ墭鐩樹腑鎮ㄧ殑鍥炬爣涓婂彂鐢熶簡浠?箞 鎿嶄綔
''甯搁噺澹版槑
Public Const WM_MOUSEMOVE = &H200 ''鍦ㄥ浘鏍囦笂绉诲姩榧犳爣
Public Const WM_LBUTTONDOWN = &H201 ''榧犳爣宸﹂敭鎸変笅
Public Const WM_LBUTTONUP = &H202 ''榧犳爣宸﹂敭閲婃斁
Public Const WM_LBUTTONDBLCLK = &H203 ''鍙屽嚮榧犳爣宸﹂敭
Public Const WM_RBUTTONDOWN = &H204 ''榧犳爣鍙抽敭鎸変笅
Public Const WM_RBUTTONUP = &H205 ''榧犳爣鍙抽敭閲婃斁
Public Const WM_RBUTTONDBLCLK = &H206 ''鍙屽嚮榧犳爣鍙抽敭
Public Const WM_SETHOTKEY = &H32 ''鍝嶅簲鎮ㄥ畾涔夌殑鐑敭
''API function declaration
Public Declare Function Shell_NotifyIcon Lib "shell32.dll" Alias " Shell_NotifyIconA" (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) As Long
''鑷畾涔変竴涓皟鐢ˋPI Shell_NotifyIcon瑕佺敤鍒扮殑绫?鍨?amp;quot;NOTIFYICONDATA"
Public Type NOTIFYICONDATA
cdSize As Long ''NOTIFYICONDATA绫诲瀷鐨勫ぇ灏?br />hwnd As Long ''浣犵殑搴旂敤绋嬪簭绐椾綋鐨勫悕鏌?br />uId As Long ''搴旂敤绋嬪簭鍥炬爣璧勬簮鐨処D鍙?br />uFlags As Long ''浣块偅浜涘弬鏁版湁鏁堝畠鏄互涓嬫灇涓剧被鍨嬩腑鐨?br />''NIF_MESSAGE銆丯IF_ICON銆丯IF_TIP涓夌粍鐨勭粍鍚?br />uCallbackMessage As Long ''榧犳爣绉诲姩鏃舵妸姝ゆ秷鎭彂缁欒鍥炬爣鐨勭獥浣?br />hIcon As Long ''鍥炬爣鍚嶆焺
szTip As String*64 ''褰撻紶鏍囧湪鍥炬爣涓婃椂鏄剧ず鐨凾ip鏂囨湰
End Type
''杩欐槸涓?釜鏋氫妇绫诲瀷瀹冨憡璇堿PI Shell_NotifyIcon鍘诲仛浠?箞鎿嶄綔
Public Enum enm_NIM_Shell
NIM_ADD=&H40 ''鍦ㄢ?閲戠鈥濅腑鍔犱竴鍥炬爣
NIM_MODIFY=&H1 ''淇敼鈥滈噾纰熲?涓殑鍥炬爣
NIM_DELETE=&H2 ''鍒犻櫎鈥滈噾纰熲?涓殑鍥炬爣
NIF_MESSAGE=&H1 ''浣跨被鍨?amp;quot;NOTIFYICONDATA"涓殑uCallbackMessage鏈夋晥
NIF_ICON=&H2 ''浣跨被鍨?amp;quot;NOTIFYICONDATA"涓殑hIcon鏈夋晥
NIF_TIP=&H4 ''浣跨被鍨?amp;quot;NOTIFYICONDATA"涓殑szTip鏈夋晥
WM_MOUSEMOVE=&H200 ''浣块紶鏍囩Щ鍔ㄦ秷鎭湁鏁?br />End Enum
''瀹氫箟涓?釜"NOTIFYICONDATA"绫诲瀷鐨勫彉閲?br />Public nidProgramData As NOTIFYICONDATA
浠ヤ笂鏄嚱鏁板強甯搁噺澹版槑鍜岃嚜瀹氫箟鐨勪竴涓被鍨嬪彉閲忥紝涓?闈㈡槸姝PI鍑芥暟鐨勮皟鐢ㄦ柟娉曪細
2. 鍦ㄧ獥浣撲笂鐢ㄨ彍鍗曠紪杈戜竴涓叿鏈夊涓嬩俊鎭殑鑿滃崟椤癸細
涓昏彍鍗曪細鏃犳爣棰樸?鍚嶇О(mainMenu)
瀛愯彍鍗曪細鏍囬(API缂栫▼)銆佸悕绉?submnul);
鏍囬(閫?嚭)銆佸悕绉?submnu2).
杩欓噷鍙槸涓句釜渚嬪瓙锛屽叿浣撶殑鍔熻兘浣犲彲浠ユ牴鎹綘鐨勫叿浣撻渶瑕佹潵缂栬緫姝よ彍鍗曢」
3. 鍦ㄧ獥浣撶殑Load浜嬩欢涓坊鍔犲涓嬩唬鐮侊細
Private Sub Form_Load ()
''闅愯棌绐椾綋
With Me
.Top =-10000
.Left = -10000
.WindowState = vbMinimized
End With
''璁剧疆绫诲瀷NOTIFYICONDATA鎵?叿鏈夌殑鐗瑰緛
With nidprogramData
.cbSize = Len(nidProgramData)
.hwnd = Me.hwnd .uld = vbNull
.uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE
''瑙﹀彂榧犳爣绉诲姩娑堟伅
.uCallbackMessage = WM_MOUSEMOVE
.hIcon = Me.Icon ''鈥滄墭鐩樷?涓斁鍏ョ獥浣撳浘鏍囷紝浣犲彲浠ユ妸绐椾綋鐨勫浘鏍囨崲鎴愪綘鎵?枩娆㈢殑鍥炬爣
.szTip ="VB 鐨?Win32 API 缂栫▼" & vbNullChar
End With
''璋冪敤璇ュ嚱鏁?br />Shell_NotifyIcon NIM_ADD,nidprogramData
End Sub
''鏍规嵁涓嶅悓鐨勯紶鏍囨秷鎭仛涓嶅悓鐨勬搷浣?br />Private Sub Form_MouseMove(Button As inte ger, Shift As lnteger, x As Single, Y As Single)
On Error GoTo Form_MouseMove_err:
Dim Result As Long
Dim msg As Long
''X鐨勫?渚濊禆涓庢樉绀烘ā寮忕殑璁剧疆
If Me.ScaleMode = vbpixels Then
msg = x
Else
msg = x/Screen.TwipsPerPixe1X
End If
Select Case msg
Case WM_LBUTTONUP
''鍦ㄨ繖閲屽姞鍏ラ紶鏍囧乏閿噴鏀炬椂浣犳兂鍋氱殑鎿嶄綔
Case WM_LBUTTONDBLCLK
''鍦ㄨ繖閲屽姞鍏ュ弻鍑婚紶鏍囧乏閿椂浣犳兂鍋氱殑鎿嶄綔
Case WM_RBUTTONUP
''閫氬父杩欓噷寮瑰嚭浣犵殑鍔熻兘鑿滃崟
PopupMenu mainMenu
Case WM_MOUSEISMOVING
''鍦ㄨ繖閲屽姞鍏ラ紶鏍囨鍦ㄧЩ鍔ㄦ椂浣犳兂鍋氱殑鎿嶄綔
End Select
Exit Sub
Form_MouseMove_err:
''鍦ㄨ繖閲屽姞鍏ヤ綘鐨勫鐞嗗紓甯搁敊璇殑浠g爜
End Sub
4.Run浣犵殑绋嬪簭锛屾偍鏄笉鏄湅鍒颁簡璞♀?閲戝北璇嶉湼鈥濅竴鏍风殑鍔熻兘锛熺浉淇′綘姝ゆ椂鐨勬劅瑙変竴瀹氱壒鍒?鐖解?锛?br />API鐨勪笘鐣宩鏄赴瀵屽褰╃殑锛屽彧瑕佷綘鑲粏蹇冨湴鍘绘帰绱㈠畠浣犱竴瀹氫細鑾峰緱璁稿鎰忔兂涓嶅埌鐨勫ソ涓滆タ銆傛墍浠ョ瑪鑰呰寰楀畾鍊煎緱姣忎竴涓叿鏈夆?濂藉鈥濈簿绁炵殑浜哄幓鎺㈢储瀹冦?鍚庣画鐨勬湡鍒婄瑪鑰呬細鍚戣鑰呰缁嗕粙缁嶄竴浜涙洿濂芥洿鈥滅墰鈥濈殑API璋冪敤
相关链接:
Screen Savers Specialist
Fireworks Produced With Logo
Music TV infringement trial basis have a special levy to the views of the community
Free Mp4 To 3gp Converter
China Anti-Fraud Alliance In The Fight Should Not Be A Person
Mpg to wmv converter
Specialist Cursors And Fonts
Convert Mp3 To Aac
How to quickly assess the adoption of CMMI
for You Games Arcade
VBScript While ... Wend Statement
Tencent sued Staff: to protest the labor contract Tencent Overlord
U.S. Stocks Comment: Sun Continued Blood Loss
What Is Avchd
No comments:
Post a Comment