{"id":126,"date":"2008-10-28T21:14:00","date_gmt":"2008-10-28T01:14:00","guid":{"rendered":""},"modified":"2013-11-19T21:55:46","modified_gmt":"2013-11-19T13:55:46","slug":"delphi%e7%ac%94%e8%ae%b0%e5%9b%9b","status":"publish","type":"post","link":"https:\/\/kyle.ai\/blog\/126.html","title":{"rendered":"Delphi\u7b14\u8bb0[\u56db]"},"content":{"rendered":"<p>GetWindowText(Edit1.handle,Name,L) \u83b7\u53d6Edit1\u5185\u7684\u5b57\u7b26\u5230Name\u4e2d\uff0cName\u957f\u5ea6\u6700\u5927\u4e3aL<br \/>\nGetWindowTextLength(Edit1.handle) \u8fd4\u56deEdit1\u4e2d\u7684\u5b57\u7b26\u957f\u5ea6<\/p>\n<p>hWnd := FindWindow( \u2018IEFrame\u2019, nil );\u8fd4\u56de\u6d4f\u89c8\u5668\u7684\u53e5\u67c4<br \/>\nGetWindowText( hWnd, s, 128 );\u5c06\u6d4f\u89c8\u5668\u4e2d\u7684\u6807\u9898\u8003\u5230S\u4e2d\u53bb<\/p>\n<p>MessageBeep(0);\u53d1\u51fa\u58f0\u97f3\uff0c\u9009\u9879\u6709\uff1a<br \/>\n0 \u53ee\u7684\u4e00\u58f0<br \/>\nMB_ICONASTERISK SystemAsterisk \/\/\u8f83\u597d\u542c<br \/>\nMB_ICONEXCLAMATION SystemExclamation<br \/>\nMB_ICONHAND SystemHand<br \/>\nMB_ICONQUESTION SystemQuestion<br \/>\nMB_OK SystemDefault<\/p>\n<p>ShowCursor(False) \u9690\u85cf\u9f20\u6807 ShowCursor(True) \u663e\u793a\u9f20\u6807<br \/>\nFindWindow(\u2018Progman\u2019, nil); \u8fd4\u56de\u684c\u9762\u56fe\u6807\u7684\u53e5\u67c4<\/p>\n<pre class=\"brush: delphi; title: ; notranslate\" title=\"\">\r\nprocedure TForm1.Button5Click(Sender: TObject); \/\/\u6700\u5c0f\u5316\u5168\u90e8\u7a97\u4f53\r\nvar\r\nh:HWnd;\r\nbegin\r\nh:=handle;\r\nwhile h &gt; 0 do   \/\/\u5f53\u7a0b\u5e8f\u5728\u8fd0\u884c\r\nbegin\r\nif isWindowVisible(h) then \/\/\u5982\u679c\u7a97\u4f53\u53ef\u89c1\uff08\u5373\u6ca1\u6709\u6700\u5c0f\u5316\uff09\r\nPostMessage(h,WM_SYSCOMMAND,SC_MINIMIZE,0);\r\nh:=GetNextWindow(h,GW_HWNDNEXT);\r\nend;\r\nend;\r\n<\/pre>\n<p>WM_SYSCOMMAND\u6d88\u606f\uff1a<br \/>\nSC_CLOSE SC_HOTKEY SC_HSCROLL SC_KEYMENU SC_MAXIMIZE SC_MINIMIZE SC_MOUSEMENU SC_MOVE SC_NEXTWINDOW SC_PREVWINDOW SC_RESTORE<br \/>\nSC_SCREENSAVE SC_SIZE SC_TASKLIST SC_VSCROLL SC_MONITORPOWER \u663e\u793a\u5668<\/p>\n<p>PostMessage\u53ea\u8d1f\u8d23\u5c06\u6d88\u606f\u653e\u5230\u6d88\u606f\u961f\u5217\u4e2d\uff0c\u4e0d\u786e\u5b9a\u4f55\u65f6\u53ca\u662f\u5426\u5904\u7406<br \/>\nSendMessage\u8981\u7b49\u5230\u53d7\u5230\u6d88\u606f\u5904\u7406\u7684\u8fd4\u56de\u7801\uff08DWord\u7c7b\u578b\uff09\u540e\u624d\u7ee7\u7eed<br \/>\nPostMessage\u6267\u884c\u540e\u9a6c\u4e0a\u8fd4\u56de<br \/>\nSendMessage\u5fc5\u987b\u7b49\u5230\u6d88\u606f\u88ab\u5904\u7406\u540e\u624d\u4f1a\u8fd4\u56de<\/p>\n<p>\u6a21\u62df\u6309\u952e\uff1a<br \/>\nPostMessage(Form1.Handle, WM_KEYDOWN, VK_TAB, 0);\u6a21\u62df\u5728\u7a97\u4f53\u4e2d\u6309\u4e0bTab\u952e<br \/>\nPostMessage(Edit1.Handle, WM_KEYDOWN, 65, 0);\u6a21\u62df\u5728Edit\u63a7\u4ef6\u4e2d\u6309\u4e0ba\u952e\uff0c\u5176\u4e2d65\u4e5f\u53ef\u4ee5\u6362\u6210VK_A\uff0c\u8868\u793aA\u952e<\/p>\n<p>WM_NCHITTEST<br \/>\n\u79fb\u52a8\u9f20\u6807\uff0c\u6309\u4f4f\u6216\u91ca\u653e\u9f20\u6807\u65f6\u53d1\u751f<\/p>\n<pre class=\"brush: delphi; title: ; notranslate\" title=\"\">\r\nprocedure WMNCHitTest(var Msg: TMessage); message WM_NCHITTEST;\r\nbegin\r\ninherited; \/\/ \u8fd9\u6837,\u79fb\u52a8\u5c31\u4e0d\u53ef\u80fd\u4e86\u2026\r\nMsg.Result := HTCLIENT;\r\nend;\r\n<\/pre>\n<p>GetCursorPos(P);<br \/>\nHd := WindowFromPoint(P); \/\/\u83b7\u53d6\u5f53\u524d\u9f20\u6807\u6240\u5728\u7684\u53e5\u67c4<\/p>\n<p>KeyPreview := true; \/\/\u53ef\u4ee5\u63a5\u6536\u952e\u76d8\u64cd\u4f5c\uff0c\u5728FormCreate\u4e2d\u5199\u5165<\/p>\n<p>GetCursorPos(P);<br \/>\nHd := WindowFromPoint(P); \/\/\u83b7\u5f97\u53e5\u67c4<br \/>\nSendMessage(Hd, WM_GETTEXT, 1024, Integer(@Buf));<br \/>\nedit1.Text := Buf;<br \/>\nif string(buf)=\u2019\u5f00\u59cb\u2019 then<br \/>\nSetWindowText(Hd,\u2019\u9648\u660e\u2019); \u4fee\u6539\u5f00\u59cb\u83dc\u5355\u4e2d\u7684\u6587\u5b57<br \/>\n\u6216 if SetWindowText(Hd,PChar(Edit1.Text)) &lt;&gt; false then \u6210\u529f<\/p>\n<p>if Shift &gt;= [ssShift] \u5982\u679c\u6309\u4e0b\u4e86Shift\u952e\uff0c\u6309\u952e\u4e8b\u4ef6\u7684Shift\u662f\u4e00\u4e2a\u96c6\u5408<\/p>\n<p>ExitWindowsEx(EWX_POWEROFF,0); \/\/\u5173\u95ed\u7cfb\u7edf\u5e76\u5173\u95ed\u7535\u6e90<br \/>\nEWX_LOGOFF\u4ee5\u5176\u4ed6\u7528\u6237\u8eab\u4efd\u767b\u5f55<br \/>\nEWX_REBOOT\u91cd\u65b0\u542f\u52a8\u8ba1\u7b97\u673a<br \/>\nEWX_SHUTDOWN\u5b89\u5168\u5173\u673a<br \/>\nEWX_FORCE\u5f3a\u884c\u5173\u673a<\/p>\n<p>str2:=StringReplace ( str1, \u2018 \u2018, \u201d, [rfReplaceAll] ); \u5c06str1\u4e2d\u7684\u7a7a\u683c\u6362\u6210\u65e0\uff0c\u4e5f\u5c31\u662f\u53bb\u6389\u7a7a\u683c\u3002<br \/>\nfunction StringReplace(const S, OldPattern, NewPattern: string; Flags: TReplaceFlags): string;<br \/>\ntype TReplaceFlags = set of (rfReplaceAll, rfIgnoreCase);<br \/>\nrfReplaceAll \u66ff\u6362\u6240\u6709 rfIgnoreCase \u5ffd\u7565\u5927\u5c0f\u5199<\/p>\n<p>function ChangeFileExt(const FileName, Extension: string): string;<br \/>\n\u5c06FileName\u6587\u4ef6\u7684\u540e\u7f00\u6539\u6210Extension\uff0c\u5982Extension\u4e3a\u7a7a\u5219\u4e3a\u53bb\u6389\u540e\u7f00\u3002\u5e76\u6ca1\u6709\u771f\u6b63\u7684\u66f4\u6539\u6587\u4ef6\u7684\u6587\u4ef6\u540d\uff0c\u53ea\u662f\u8fd4\u56de\u4e00\u4e2a\u65b0\u7684\u5b57\u7b26\u4e32<\/p>\n<p>function ReadString(const Section, Ident, Default: String): String;<br \/>\nSection\u4e3a\u8be5ini\u6587\u4ef6\u7684\u8282\u540d\uff0cIdent\u4e3a\u952e\u503c\uff0c\u8fd4\u56de\u8be5\u952e\u503c\u5bf9\u5e94\u7684\u76f8\u7b49\u7684\u503c\uff0c\u51fa\u73b0\u9519\u8bef\u5219\u8fd4\u56de\u9ed8\u8ba4\u7684\u53c2\u6570Default: String<\/p>\n<pre class=\"brush: delphi; title: ; notranslate\" title=\"\">\r\nprocedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;\r\nShift: TShiftState; X, Y: Integer);\r\nbegin\r\nReleaseCapture;\r\nPerform(WM_SYSCOMMAND, $F012, 0);\r\nend;                        \/\/\u5236\u4f5c\u4efb\u610f\u62d6\u52a8\u7a97\u4f53\u8fd0\u884c\u754c\u9762\r\n<\/pre>\n<p>\u6d45\u8c08Object Pascal\u7684\u6307\u9488:http:\/\/www.mybr.org\/thread-10284-1-4.html<\/p>\n<pre class=\"brush: delphi; title: ; notranslate\" title=\"\">\r\nGetWindowsDirectory(\r\nLPTSTR lpBuffer, \/\/ address of buffer for Windows directory\r\nUINT uSize        \/\/ size of directory buffer\r\n);      \u83b7\u53d6\u7cfb\u7edf\u76ee\u5f55(C:\\WINDOWS\\System32)\u5230lpBuffer\u4e2d\uff0c\u5176\u4e2duSize\u4e3alpBuffer\u7684\u5927\u5c0f\r\nGetMem(MySysPath,255);                    GetMem \u5efa\u7acb\u4e00\u6307\u5b9a\u5927\u5c0f\u7684\u52a8\u6001\u53d8\u91cf\uff0c\u5e76\u5c06\u6307\u9488\u6307\u5411\u8be5\u5904\r\nGetSystemDirectory(MySysPath,255);\r\nShowMessage(\u2018\u7cfb\u7edf\u76ee\u5f55\u662f\uff1a\u2019+mysyspath);\r\n<\/pre>\n<p>MD5\u52a0\u5bc6\uff1a<br \/>\n\u5728USES\u4e2d\u52a0\u5165 IdHashMessageDigest,IdHash \u8fd9\u4e24\u4e2a\u5355\u5143<\/p>\n<pre class=\"brush: delphi; title: ; notranslate\" title=\"\">\r\nfunction GetMD5Hash(Str:String):String;\r\nvar\r\n   md5 : TIdHashMessageDigest5;\r\n   longWordRec : T4x4LongWordRecord;\r\nbegin\r\n   md5 := TIdHashMessageDigest5.Create;\r\n   longWordRec:=md5.HashValue(Trim(Str)); \/\/\u52a0\u5bc6 {}\r\n   Result:= md5.AsHex(longWordRec);\r\n   md5.Free;\r\nend;\r\n<\/pre>\n<p>\u8c03\u7528\u65b9\u6cd5 GetMD5Hash(\u2019123456\u2032) \u76f4\u63a5\u8fd4\u56de123456\u7684MD5\u503c<\/p>\n<p>PostMessage(Button1.Handle,WM_LBUTTONDOWN,0,0);<br \/>\nPostMessage(Button1.Handle,WM_LBUTTONUP,0,0);\u6709\u4e86BUTTONDOWN\u5fc5\u987b\u4e5f\u8981\u6709BUTTONUP\u5426\u5219\u9f20\u6807\u4f1a\u4e00\u76f4\u5904\u4e8e\u6309\u4e0b\u72b6\u6001,\u8fd9\u4e24\u53e5\u8bdd\u7b49\u6548\u4e8e\uff1aButton1.Click;<\/p>\n<p>IntToHex(int Value, int Digits)<br \/>\n\u529f\u80fd: \u628a\u4e00\u4e2a\u6574\u578b\u6570\u5b57\u8f6c\u6362\u621016\u8fdb\u5236\u5f62\u5f0f\u7684\u5b57\u7b26\u4e32. Value\u662f\u88ab\u8f6c\u6362\u7684\u6574\u6570, Digits\u662f\u630716\u8fdb\u5236\u5b57\u7b26\u4e32\u7684\u4f4d\u6570.\u7b2c\u4e00\u4e2a\u662f\u8981\u8f6c\u6362\u7684\u5341\u8fdb\u5236\u6570\uff0c\u7b2c\u4e8c\u4e2a\u662f\u8fd4\u56de\u5341\u516d\u8fdb\u5236\u6570\u7684\u6700\u5c0f\u957f\u5ea6<\/p>\n<p>procedure HasFormat(Format: Word): Boolean;\u67e5\u770b\u526a\u5207\u677f\u91cc\u9762\u662f\u5426\u542b\u6709Format\u7c7b\u7684\u6570\u636e<br \/>\nFormat\u6709\u5982\u4e0b\u9009\u9879\uff1a<br \/>\nCF_TEXT Text with a CR-LF combination at the end of each line.<br \/>\nCF_BITMAP A Windows bitmap graphic.<br \/>\nCF_METAFILEPICT A Windows metafile graphic.<br \/>\nCF_PICTURE An object of type TPicture.<br \/>\nCF_COMPONENT Any persistent object.<\/p>\n<pre class=\"brush: delphi; title: ; notranslate\" title=\"\">\r\nif Clipboard.HasFormat(CF_TEXT) then   \/\/\u5982\u679c\u526a\u5207\u677f\u91cc\u9762\u7684\u5185\u5bb9\u662f\u6587\u672c\u683c\u5f0f\r\nbegin\r\n    Memo1.Text := Clipboard.AsText;\r\nend;\r\n<\/pre>\n<p>\u5728uses\u6dfb\u52a0IdHashMessageDigest<\/p>\n<pre class=\"brush: delphi; title: ; notranslate\" title=\"\">\r\nprocedure TForm1.Button1Click(Sender: TObject);\r\nvar\r\n    mymd5:TIdHashMessageDigest5;\r\nbegin\r\n    mymd5:=TIdHashMessageDigest5.Create;\r\n    ShowMessage(mymd5.AsHex(mymd5.HashValue(\u2018admin\u2019)));     \/\/\u8ba1\u7b97\u5b57\u7b26\u4e32admin\u7684MD5\r\n    ShowMessage(Copy(mymd5.AsHex(mymd5.HashValue(\u2018admin\u2019)),9,16));     \/\/\u83b7\u53d616\u4f4d\u5b57\u7b26\u4e32MD5\r\n    ShowMessage(mymd5.AsHex(mymd5.HashValue(TFileStream.Create(\u2018e:\\VRMPVOL_CNsp2.iso\u2019,fmOpenRead))));       \/\/\u8ba1\u7b97\u6587\u4ef6MD5\r\n     mymd5.Free;\r\nend;\r\n<\/pre>\n<p>SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, 2);\/\/\u5173\u95ed\u663e\u793a\u5668<br \/>\nSendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, -1);\u6253\u5f00\u663e\u793a\u5668<\/p>\n<p>function SelectDirectory(const Caption: string; const Root: WideString; out Directory: string): Boolean;<br \/>\nCaption:\u6807\u9898 const Root:\u4ece\u54ea\u4e2a\u6839\u76ee\u5f55\u5f00\u59cb\u53ef\u4ee5\u4e3a\u7a7a out Directory:\u5c06\u76ee\u5f55\u8fd4\u56de\u5230\u8fd9\u4e2a\u53c2\u6570\u4e0a\uff0c\u5982\uff1aSelectDirectory(\u2018\u8bf7\u9009\u62e9\u8def\u5f84:\u2019,\u201d,Paths_);<\/p>\n<p>\u63a7\u4ef6\u7684Hint\u5c5e\u6027\u4e3a\u5f53\u8fd0\u884c\u65f6\u7528\u6237\u6307\u9488\u6307\u5230\u8fd9\u4e2a\u63a7\u4ef6\u4e0a\u65f6\u7684\u63d0\u793a\u6587\u5b57<\/p>\n<pre class=\"brush: delphi; title: ; notranslate\" title=\"\">\r\nBOOL ClipCursor(\r\nCONST RECT *lpRect   \/\/ pointer to structure with rectangle\r\n);\u8be5\u51fd\u6570\u628a\u5149\u6807\u9650\u5236\u5728\u5c4f\u5e55\u4e0a\u7684\u4e00\u4e2a\u77e9\u5f62\u533a\u57df\u5185\uff0c\u4f8b\uff1a\r\nvar rect:TRect;\r\nbegin\r\nrect.Left:=100;\r\nrect.Top:=100;\r\nrect.Bottom:=200;\r\nrect.Right:=200;\r\nClipCursor(@rect);\r\nend;\r\n<\/pre>\n<p>\u83b7\u5f97\u952e\u503c\u7684\u65b9\u6cd5\uff1a<br \/>\n\u5728keydown\u4e8b\u4ef6\u91cc\u9762\uff0cShowmessage(IntToStr(Key));<\/p>\n<p>\u542f\u52a8\u8bb0\u4e8b\u672c\u5e76\u52a0\u8f7d\u4e00\u4e2a\u7eaf\u6587\u672c\u6587\u4ef6:<br \/>\nShellExecute(handle,\u2019open\u2019,pchar(\u2018notepad\u2019),pchar(\u2018d:\\123.txt\u2019),0,SW_SHOW);<br \/>\n\u4e5f\u53ef\u4ee5\u4e3anotepad.exe<br \/>\n\u6253\u5370\u4e00\u4e2a\u6587\u4ef6:<br \/>\nShellExecute(Handle, \u2018print\u2019, PChar(\u2018c:\\readme.txt\u2019),nil, nil, SW_SHOW);<br \/>\n\u7528Windows Explorer\u6253\u5f00\u4e00\u4e2a\u6587\u4ef6\u5939:<br \/>\nShellExecute(Handle, \u2018explore\u2019, PChar(\u2018c:\\windows)\u2019,nil, nil, SW_SHOW);<br \/>\n\u8fd0\u884c\u4e00\u4e2aDOS\u547d\u4ee4\u5e76\u7acb\u5373\u8fd4\u56de:<br \/>\nShellExecute(Handle, \u2018open\u2019, PChar(\u2018command.com\u2019),PChar(\u2018\/c copy file1.txt file2.txt\u2019), nil, SW_SHOW);<\/p>\n<pre class=\"brush: delphi; title: ; notranslate\" title=\"\">\r\nif fileExists(\u2018C:\\WINDOWS\\explorer.exe\u2019) then\r\nbegin\r\nshowmessage(\u2018\u6587\u4ef6\u5b58\u5728!\u2019);\r\nend;\r\n\/\/\u518d\u6765\u4e00\u4e2a,\u5982\u679c\u6587\u4ef6\u4e0d\u5b58\u5728\u5c31\u521b\u5efa ^_^\r\nif fileExists(\u2018nsgtao.dat\u2019) then\r\nbegin\r\nFileCreate(\u2018nsgtao.dat\u2019); \/\/\u6b64\u8bed\u53e5\u521b\u5efa\u4e00\u4e2a\u6587\u4ef6\r\nend;\r\n\/\/\u8fd9\u4e2a\u4f8b\u5b50\u5f88\u597d,\u80fd\u7528\u5728\u5f88\u591a\u5730\u65b9\r\n\u76ee\u5f55\u64cd\u4f5c\r\nif not DirectoryExists(\u2018nsgtao\u2019) then\r\nbegin\r\nif not CreateDir(\u2018nsgtao\u2019) then\r\nbegin\r\nShowMessage(\u2018\u521b\u5efa\u76ee\u5f55\u4e0d\u6210\u529f!\u2019);\r\nend;\r\nend;\r\n<\/pre>\n<p>S\u626b\u63cf\u5668\uff1a<br \/>\ns1:\u8d77\u59cbIP s2:\u7aef\u53e3 s3:\u7ed3\u675fIP s4:\u7ebf\u7a0b<\/p>\n<pre class=\"brush: delphi; title: ; notranslate\" title=\"\">\r\ns5:=\u2019cmd.exe \/k s.exe\u2019+#32+\u2019tcp\u2019+#32+s1+#32+s3+#32+s2+#32+s4+#32+\u2019\/save\u2019\r\nwinexec(pchar(s5),sw_show);\r\nShellExecute(handle,\u2019open\u2019,pchar(\u2018cmd\u2019),pchar(\u2018\\c \u2018+s5),nil,SW_SHOW);\r\n<\/pre>\n<p>\u4ee5\u4e0a\u4e24\u53e5\u4ee3\u7801\u90fd\u53ef\u4ee5\u8fbe\u5230\u6548\u679c\uff0c\u7528\u7b2c\u4e8c\u53e5\u8f83\u597d\uff0ccmd.exe\u4e5f\u53ef\u4ee5\u4e3acmd\u4f46\u662f\u6709\u53ef\u80fd\u4e3acmd.bat\u6240\u6709\u5199cmd.exe\u8f83\u597d<\/p>\n<p>\u6700\u7b80\u5355\u7684\u81ea\u6211\u5220\u9664:<\/p>\n<pre class=\"brush: delphi; title: ; notranslate\" title=\"\">\r\nbegin\r\nWinExec(Pchar(\u2018cmd \/c erase \/F \u2018 + GetCommandLine),0);\r\nExitProcess(0);\r\nend;\r\n<\/pre>\n<pre class=\"brush: delphi; title: ; notranslate\" title=\"\">\r\nBOOL EnumChildWindows(\r\nHWND hWndParent,         \/\/ handle to parent window \/\/ \u7236\u7a97\u53e3\u53e5\u67c4\r\nWNDENUMPROC lpEnumFunc, \/\/ callback function \/\/ \u56de\u8c03\u51fd\u6570\u7684\u5730\u5740\r\nLPARAM lParam            \/\/ application-defined value \/\/ \u4f60\u81ea\u5df2\u5b9a\u4e49\u7684\u53c2\u6570\r\n);\u53ef\u4ee5\u679a\u4e3e\u4e00\u4e2a\u7236\u7a97\u53e3\u7684\u6240\u6709\u5b50\u7a97\u53e3\uff0c\u7b2c\u4e09\u4e2a\u53c2\u6570\u662f\u7528\u6237\u81ea\u5df1\u5b9a\u4e49\u7684\uff0c\u7528\u6765\u4f20\u9012\u7ed9\u56de\u8c03\u51fd\u6570\r\n\r\nint GetClassName(\r\nHWND hWnd,           \/\/ handle of window\r\nLPTSTR lpClassName, \/\/ address of buffer for class name\r\nint nMaxCount        \/\/ size of buffer, in characters\r\n);\u8be5\u51fd\u6570\u83b7\u5f97\u6307\u5b9a\u7a97\u53e3\u6240\u5c5e\u7684\u7c7b\u7684\u7c7b\u540d\u3002\r\n<\/pre>\n<p>\u4f7f\u7a97\u4f53\u5168\u5c4f\u663e\u793a\u7684\u4ee3\u7801\uff1a<\/p>\n<pre class=\"brush: delphi; title: ; notranslate\" title=\"\">\r\nprocedure TForm1.Button1Click(Sender: TObject);\r\nbegin\r\n\/\/\u8986\u76d6\u4efb\u52a1\u680f\r\nSelf.BorderStyle := bsNone;\r\nSelf.Left := 0;\r\nSelf.Top := 0;\r\nSelf.Width := Screen.Width;\r\nSelf.Height := Screen.Height;\r\nend;\r\nprocedure TForm1.Button2Click(Sender: TObject);\r\nbegin\r\n\/\/\u4fdd\u7559\u4efb\u52a1\u680f\r\nSelf.BorderStyle := bsNone;\r\nSelf.Left := Screen.WorkAreaLeft;\r\nSelf.Top := screen.WorkAreaTop;\r\nSelf.Width := Screen.WorkAreaWidth;\r\nSelf.Height := Screen.WorkAreaHeight;\r\nend;\r\n<\/pre>\n<p>\u63d0\u53d6\u6587\u4ef6\u56fe\u6807\uff1a<\/p>\n<pre class=\"brush: delphi; title: ; notranslate\" title=\"\">\r\nvar\r\nIcon:TIcon;\r\nIconIndex: Word;\r\nbegin\r\nICON:=TICON.Create;      \/\/\u521b\u5efa\u4e00\u4e2aTICON\r\nIconIndex:= 0;\r\nIcon.Handle:=ExtractAssociatedIcon(Application.Handle, PChar(FileName),\r\n\r\nIconIndex);\r\n\/\/Icon.SaveToFile(\u2018temp1.ico\u2019);\r\nImageIcon.Picture.Icon:= Icon;\/\/ImageIcon\u4e3a\u4e00\u4e2aImage\u63a7\u4ef6\r\nICON.Free;\r\nend;\r\n<\/pre>\n<p>ObjectBinaryToText(Input:TStream,Output:TStream);<br \/>\n\u5c06\u6d41\u5bf9\u8c61Input\u4e2d\u7684\u4e8c\u8fdb\u5236\u6570\u636e\u8f6c\u6362\u6210\u5b57\u7b26\u683c\u5f0f\uff0c\u5b58\u653e\u5728\u6d41\u5bf9\u8c61Output\u4e2d<\/p>\n<p>HotKeySpy\u7ec4\u4ef6\u7528\u6cd5\uff1a<br \/>\n\u6dfb\u52a0HotKeys,\u53cc\u51fb\u7ec4\u4ef6\u6dfb\u52a0\u4ee3\u7801<\/p>\n<pre class=\"brush: delphi; title: ; notranslate\" title=\"\">\r\nprocedure TForm1.HotKeySpy1HotKeys(Sender: TObject; HotKeyIndex: Word);\r\nbegin\r\n     if HotKeyIndex=1 then\r\n     showmessage(\u2019123\u2032);\r\nend;\r\n<\/pre>\n<p>\u5176\u4e2dHotKeyIndex\u4e3a\u76f8\u5e94\u7684HotKeys\u7684Index\u503c,<\/p>\n<p>MSNPopUp\u7ec4\u4ef6\u7684\u7528\u6cd5,\u529f\u80fd\u662f\u5728\u53f3\u4e0b\u89d2\u50cfMSN\u4e00\u50cf\u5f39\u51fa\u4e00\u4e2a\u5bf9\u8bdd\u6846<\/p>\n<pre class=\"brush: delphi; title: ; notranslate\" title=\"\">\r\nprocedure TForm1.Button1Click(Sender: TObject);\r\nbegin\r\n     MSNPopUp1.Options:= MSNPopUp1.Options-&#x5B;msnAutoOpenURL]; \/\/\u4e0d\u81ea\u52a8\u6253\u5f00\u7f51\u9875\r\n     MSNPopUp1.Title := \u2018\u5ba1\u6838\u63d0\u9192\u2019;\r\n     MSNPopUp1.Text := \u2018dfsdfsdfsfsdfsf\u2019;\r\n     MSNPopUp1.ShowPopUp;\r\nend;\r\n\/\/\u70b9\u51fbMSNPopUp\u91cc\u9762\u7684URL\u65f6\u7684\u4e8b\u4ef6\u5904\u7406\u4ee3\u7801\r\nprocedure TForm1.MSNPopUp1URLClick(Sender: TObject; URL: String);\r\nbegin\r\nform2.Show;\r\nend;\r\n<\/pre>\n<p>MSNPopUp\u7ec4\u4ef6\u7684\u5c5e\u6027\uff1a<br \/>\nOpinions\u91cc\u9762\uff0cmsnAutoOpenURL\u5982\u679c\u6709\u8fd9\u4e2a\u9009\u9879\uff0c\u5219\u5f53\u70b9Text\u65f6\u4f1a\u81ea\u52a8\u6253\u5f00URL\u5c5e\u6027\u91cc\u9762\u7684\u90a3\u4e2a\u7f51\u7ad9Font\u4e3aText\u7684\u5b57\u4f53<br \/>\nTitleFont\u5f53\u7136\u662f\u6807\u9898\u5b57\u4f53\u4e86<br \/>\nHoverFont\u4e3a\u5f53\u9f20\u6807\u6307\u5230Text\u4e0a\u65f6Text\u7684\u5b57\u4f53<\/p>\n<p>Application.HintColor := TColor($FFD7C1); \/\/\u80cc\u666f\u989c\u8272<\/p>\n<p>\u63a7\u4ef6\u7684Hint\u8bbe\u7f6e\uff1a<\/p>\n<pre class=\"brush: delphi; title: ; notranslate\" title=\"\">\r\n                Button1.ShowHint:=true; \/\/\u8bbe\u7f6e\u4e3a\u663e\u793aHint\r\n                Application.HintColor:=clRed; \/\/\u7a97\u4f53\u7684\u80cc\u666f(Hint)\u989c\u8272\r\n                Button1.Hint:=\u2019\u6587\u5b57\u2019; \/\/\u8bbe\u7f6e\u8981\u663e\u793a\u7684\u5185\u5bb9\r\n<\/pre>\n<pre class=\"brush: delphi; title: ; notranslate\" title=\"\">\r\nBOOL CopyFile(\r\nLPCTSTR lpExistingFileName,\r\n                          \/\/ pointer to name of an existing file\r\nLPCTSTR lpNewFileName, \/\/ pointer to filename to copy to\r\nBOOL bFailIfExists      \/\/ flag for operation if file exists\r\n); \u5c06lpExistingFileName\u62f7\u8d1d\u6210lpNewFileName\uff0c\u5982\u679cbFailIfExists\u4e3a\u771f\uff0c\u5219\u5982\u679c\u5b58\u5728\u76ee\u5f55\u6587\u4ef6lpNewFileName\u5219\u5220\u6389\u91cd\u65b0\u5199\uff0c\u5982\u679c\u4e3a\u5047\uff0c\u5219\u4e0d\u91cd\u5199\r\n<\/pre>\n<pre class=\"brush: delphi; title: ; notranslate\" title=\"\">\r\nGetDriveType(\r\nLPCTSTR lpRootPathName   \/\/ pointer to root path\r\n);lpRootPathName \u786c\u76d8\u540d\uff0c\u5982C:\\\u7b49\uff0c\u8fd4\u56de\u4e3a\u786c\u76d8\u7684\u7c7b\u578b\uff0c\u7c7b\u578b\u6709\uff1a\r\nDRIVE_UNKNOWN                 The drive type cannot be determined.\r\nDRIVE_NO_ROOT_DIR             The root directory does not exist.\r\nDRIVE_REMOVABLE               The disk can be removed from the drive.\r\nDRIVE_FIXED                   The disk cannot be removed from the drive.\r\nDRIVE_REMOTE                  The drive is a remote (network) drive.\r\nDRIVE_CDROM                   The drive is a CD-ROM drive.\r\nDRIVE_RAMDISK                 The drive is a RAM disk.\r\n<\/pre>\n<p>FindFirst\u548cFindNext\u4e24\u4e2a\u642d\u914d\u7684\u51fd\u6570\uff0c\u5982\u679c\u6267\u884c\u6210\u529f\u5219\u8fd4\u56de\u4e3a0<\/p>\n","protected":false},"excerpt":{"rendered":"<p>GetWindowText(Edit1.handle,Name,L) \u83b7\u53d6Edit1\u5185\u7684\u5b57\u7b26\u5230Name\u4e2d\uff0cNa [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10],"tags":[],"class_list":["post-126","post","type-post","status-publish","format-standard","hentry","category-my_notes"],"_links":{"self":[{"href":"https:\/\/kyle.ai\/blog\/wp-json\/wp\/v2\/posts\/126","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kyle.ai\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kyle.ai\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kyle.ai\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/kyle.ai\/blog\/wp-json\/wp\/v2\/comments?post=126"}],"version-history":[{"count":1,"href":"https:\/\/kyle.ai\/blog\/wp-json\/wp\/v2\/posts\/126\/revisions"}],"predecessor-version":[{"id":4856,"href":"https:\/\/kyle.ai\/blog\/wp-json\/wp\/v2\/posts\/126\/revisions\/4856"}],"wp:attachment":[{"href":"https:\/\/kyle.ai\/blog\/wp-json\/wp\/v2\/media?parent=126"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kyle.ai\/blog\/wp-json\/wp\/v2\/categories?post=126"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kyle.ai\/blog\/wp-json\/wp\/v2\/tags?post=126"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}