{"id":665,"date":"2009-10-06T12:19:00","date_gmt":"2009-10-06T04:19:00","guid":{"rendered":""},"modified":"2013-11-22T14:48:43","modified_gmt":"2013-11-22T06:48:43","slug":"inno-setup-%e5%b8%b8%e7%94%a8%e4%bf%ae%e6%94%b9%e6%8a%80%e5%b7%a7","status":"publish","type":"post","link":"https:\/\/kyle.ai\/blog\/665.html","title":{"rendered":"Inno setup \u5e38\u7528\u4fee\u6539\u6280\u5de7"},"content":{"rendered":"<p>1 \u3001\u5982\u4f55\u8ba9\u534f\u8bae\u8bb8\u53ef\u9875\u9762\u9ed8\u8ba4\u9009\u4e2d\u6211\u540c\u610f\u6309\u94ae<\/p>\n<pre class=\"brush: delphi; title: ; notranslate\" title=\"\">\r\nprocedure InitializeWizard();\r\nbegin\r\nWizardForm.LICENSEACCEPTEDRADIO.Checked := true;\r\nend;\r\n<\/pre>\n<p>2\u3001\u81ea\u5b9a\u4e49\u5b89\u88c5\u7a0b\u5e8f\u53f3\u4e0a\u89d2\u56fe\u7247\u5927\u5c0f<\/p>\n<pre class=\"brush: delphi; title: ; notranslate\" title=\"\">\r\nprocedure InitializeWizard();\r\nbegin\r\nWizardForm.WizardSmallBitmapImage.width:=150; \/\/\u8bbe\u7f6e\u9875\u7709\u56fe\u7247\u7684\u5927\u5c0f\r\nWizardForm.WizardSmallBitmapImage.left:=WizardForm.width-150; \/\/\u8bbe\u7f6e\u5de6\u8fb9\u9875\u7709\u7559\u51fa\u7684\u7a7a\u9699\r\nWizardForm.PAGENAMELABEL.width:=0; \/\/\u8bbe\u7f6e\u6807\u9898\u6587\u5b57\u663e\u793a\u7684\u5927\u5c0f\r\nWizardForm.PAGEDESCRIPTIONLABEL.width:=0; \/\/\u8bbe\u7f6e\u6807\u9898\u6587\u5b57\u663e\u793a\u7684\u5927\u5c0f\r\nend;\r\n<\/pre>\n<p>\u6216\u8005<\/p>\n<pre class=\"brush: delphi; title: ; notranslate\" title=\"\">\r\n\/\/\u81ea\u5b9a\u4e49\u5b89\u88c5\u5411\u5bfc\u5c0f\u56fe\u7247\r\nprocedure InitializeWizard();\r\nbegin\r\nWizardform.WizardSmallBitmapImage.left:= WizardForm.width-164; \/\/\u81ea\u5b9a\u4e49\u5b89\u88c5\u5411\u5bfc\u5c0f\u56fe\u7247\u663e\u793a\u4f4d\u7f6e\r\nWizardForm.WizardSmallBitmapImage.width:=164; \/\/\u81ea\u5b9a\u4e49\u5b89\u88c5\u5411\u5bfc\u5c0f\u56fe\u7247\u5bbd\u5ea6\r\nWizardform.PageNameLabel.width:= 495 - 164 -36; \/\/\u8fd9\u513f\u5fc5\u987b\u5b9a\u4e49,\u6570\u503c\u6839\u636e\u56fe\u7247\u5bbd\u5ea6\u66f4\u6539,\u663e\u793a\u8f6f\u4ef6\u540d\u79f0\u7684\u4f4d\u7f6e\r\nWizardform.PageDescriptionLabel.width:= 495 - 164 -42; \/\/\u663e\u793a\u9875\u9762\u4fe1\u606f\u7684\u4f4d\u7f6e\r\nend;\r\n<\/pre>\n<p>3\u3001\u81ea\u5b9aBeveledLabel\u663e\u793a\u4ee3\u7801<\/p>\n<pre class=\"brush: delphi; title: ; notranslate\" title=\"\">\r\nprocedure InitializeWizard();\r\nbegin\r\nWizardForm.BeveledLabel.Enabled:=true; \/\/\u5141\u8bb8\u663e\u793a\r\nWizardForm.BeveledLabel.Font.Color:=$00058451;; \/\/\u663e\u793a\u989c\u8272\r\nWizardForm.BeveledLabel.Font.Style := WizardForm.BeveledLabel.Font.Style + &#x5B;fsBold]; \/\/\u663e\u793a\u5b57\u4f53\r\nWizardForm.BeveledLabel.Left:=5; \/\/\u663e\u793a\u4f4d\u7f6e\r\nend;\r\n<\/pre>\n<p>4\u3001\u81ea\u5b9a\u4e49\u5b89\u88c5\u5411\u5bfc\u56fe\u7247<\/p>\n<pre class=\"brush: delphi; title: ; notranslate\" title=\"\">\r\nprocedure InitializeWizard();\r\nbegin\r\nWizardform.WELCOMELABEL1.left:= 18; \/\/\u81ea\u5b9a\u4e49\u6b22\u8fce\u9875\u9762\u6807\u98981\u663e\u793a\u4f4d\u7f6e\r\nWizardform.WELCOMELABEL2.left:= 18; \/\/\u81ea\u5b9a\u4e49\u6b22\u8fce\u9875\u9762\u6807\u98982\u663e\u793a\u4f4d\u7f6e\r\nWizardform.WizardBitmapImage.left:= WizardForm.width-164 \/\/\u81ea\u5b9a\u4e49\u5b89\u88c5\u5411\u5bfc\u56fe\u7247\u663e\u793a\u4f4d\u7f6e(\u663e\u793a\u5927\u5c0f,\u6b64\u5904\u4e3a\u5c45\u53f3\u663e\u793a)\r\nend;\r\n<\/pre>\n<p>5\u3001\u663e\u793a\u51fa\u7ec4\u4ef6\u9009\u62e9\u6846<\/p>\n<pre class=\"brush: delphi; title: ; notranslate\" title=\"\">\r\n&#x5B;Types]\r\nName: full; Description: \u63a8\u8350\r\nName: default; Description: \u5178\u578b\r\nName: custom; Description: \u81ea\u5b9a\u4e49; Flags: iscustom\r\n;\u544a\u8bc9\u5b89\u88c5\u7a0b\u5e8f\u8fd9\u4e2a\u7c7b\u578b\u662f\u81ea\u5b9a\u4e49\u7c7b\u578b\u3002\u5fc5\u987b\u5b9a\u4e49iscustom\u8fd9\u4e2a\u53c2\u6570\uff0c\u624d\u80fd\u663e\u793a\u51fa\u7ec4\u4ef6\u9009\u62e9\u6846\r\n<\/pre>\n<p>6\u3001\u5b9a\u4e49[Messages]\u7684\u989c\u8272<\/p>\n<pre class=\"brush: delphi; title: ; notranslate\" title=\"\">\r\nprocedure InitializeWizard();\r\nbegin\r\nWizardForm.BeveledLabel.Enabled:= True;\r\nWizardForm.BeveledLabel.Font.Color:= clblue;\r\nend;\r\n<\/pre>\n<p>7\u3001\u4e0d\u663e\u793a\u4e00\u4e9b\u7279\u5b9a\u7684\u5b89\u88c5\u754c\u9762<\/p>\n<pre class=\"brush: delphi; title: ; notranslate\" title=\"\">\r\nfunction ShouldSkipPage(PageID: Integer): Boolean;\r\nbegin\r\nif PageID=wpReady then\r\nresult := true;\r\nend;\r\n<\/pre>\n<p>wpReady \u662f\u51c6\u5907\u5b89\u88c5\u754c\u9762<br \/>\nPageID\u67e5\u8be2 INNO\u5e2e\u52a9\u4e2d\u7684 Pascal \u811a\u672c: \u4e8b\u4ef6\u51fd\u6570\u5e38\u91cf<br \/>\n\u9884\u5b9a\u4e49\u5411\u5bfc\u9875 CurPageID \u503c<br \/>\nwpWelcome, wpLicense, wpPassword, wpInfoBefore, wpUserInfo, wpSelectDir, wpSelectComponents, wpSelectProgramGroup, wpSelectTasks, wpReady, wpPreparing, wpInstalling, wpInfoAfter, wpFinished<\/p>\n<p>8\u3001\u6362\u884c\u7b26\u53f7<br \/>\n\u5728 [Messages]\u00a0\u00a0 \u6362\u884c\u7b26\u53f7\u4e3a%n<br \/>\n\u5728 MsgBox \u4e2d\u6362\u884c\u7b26\u53f7\u4e3a #13#10\u00a0\u00a0\u00a0 \/\/#13 \u4e3a\u56de\u8f66\u5b57\u7b26<\/p>\n<p>9\u3001\u989c\u8272\u4ee3\u7801<br \/>\n(1)\u4e00\u4e2a\u503c\u5f62\u5982 $bbggrr, \u8fd9\u91cc\u7684 rr, gg \u548c bb \u6307\u5b9a\u4e86\u4e24\u4f4d\u7684\u4eae\u5ea6\u503c\uff08\u4ee5\u5341\u516d\u8fdb\u5236\u8868\u793a\uff09\u5206\u522b\u4e3a\u7ea2\u8272\uff0c\u7eff\u8272\u548c\u84dd\u8272\u3002<br \/>\n(2)\u9884\u5b9a\u4e49\u7684\u989c\u8272\u540d\u79f0\uff1a<br \/>\nclBlack\uff08\u9ed1\u8272\uff09\uff0cclMaroon\uff08\u6697\u7ea2\uff09\uff0cclGreen\uff08\u7eff\u8272\uff09\uff0cclOlive\uff08\u6a44\u6984\u7eff\uff09\uff0c<br \/>\nclNavy\uff08\u6df1\u84dd\uff09\uff0cclPurple\uff08\u7d2b\u8272\uff09\uff0cclTeal\uff08\u6df1\u9752\uff09\uff0cclGray\uff08\u7070\u8272\uff09\uff0c<br \/>\nclSilver\uff08\u6d45\u7070\uff09\uff0cclRed\uff08\u7ea2\u8272\uff09\uff0cclLime\uff08\u6d45\u7eff\uff09\uff0cclYellow\uff08\u9ec4\u8272\uff09\uff0c<br \/>\nclBlue\uff08\u84dd\u8272\uff09\uff0cclFuchsia\uff08\u7d2b\u7ea2\uff09\uff0cclAqua\uff08\u9752\u7eff\uff09\uff0cclWhite\uff08\u767d\u8272\uff09\u3002<\/p>\n<p>10\u3001inno\u4ee3\u7801\u6ce8\u91ca\u7b26\u53f7<br \/>\n;\u00a0\u00a0\u00a0\u00a0\u00a0 \u5b9e\u4f8b \u2014\u2014\u00a0\u00a0 ; \u5206\u53f7<br \/>\n\/\/\u00a0\u00a0\u00a0\u00a0 \u5b9e\u4f8b \u2014\u2014 \/\/ \u53cc\u659c\u6760 \u591a\u7528\u5728code\u6bb5<br \/>\n{ }\u00a0\u00a0\u00a0 \u5b9e\u4f8b \u2014\u2014 {\u5927\u62ec\u53f7\u00a0\u00a0\u00a0 \u591a\u7528\u5728code\u6bb5}<br \/>\n\u6ce8\u91ca\u7b26\u53f7\u5747\u5728\u82f1\u6587\u8f93\u5165\u6cd5\u72b6\u6001\u4e0b\u8f93\u5165<\/p>\n<p>11\u3001\u5728\u8fd0\u884c\u5378\u8f7d\u7a0b\u5e8f\u524d\u663e\u793a\u5f39\u51fa\u5f0f\u6d88\u606f<\/p>\n<pre class=\"brush: delphi; title: ; notranslate\" title=\"\">\r\nfunction InitializeUninstall(): Boolean;\r\nbegin\r\nif MsgBox('', mbConfirmation, MB_YESNO) = IDYES then\r\nresult:=true\r\nelse\r\nresult:=false;\r\nend;\r\n<\/pre>\n<p>12\u3001\u5b89\u88c5\u3001\u5378\u8f7d\u65f6\u5224\u65ad\u662f\u5426\u7a0b\u5e8f\u6b63\u5728\u8fd0\u884c,\u5378\u8f7d\u5b8c\u6210\u65f6\u81ea\u52a8\u6253\u5f00\u7f51\u9875<\/p>\n<pre class=\"brush: delphi; title: ; notranslate\" title=\"\">\r\nvar\r\nErrorCode: Integer;\r\nIsRunning: Integer;\r\n\/\/ \u5b89\u88c5\u65f6\u5224\u65ad\u5ba2\u6237\u7aef\u662f\u5426\u6b63\u5728\u8fd0\u884c\r\nfunction InitializeSetup(): Boolean;\r\nbegin\r\nResult :=true; \/\/\u5b89\u88c5\u7a0b\u5e8f\u7ee7\u7eed\r\nIsRunning:=FindWindowByWindowName('\u4e1c\u65b9\u5bbd\u9891\u7f51\u7edc\u7535\u89c6');\r\nwhile IsRunning&amp;lt;&amp;gt;0 do\r\nbegin\r\nif Msgbox('\u5b89\u88c5\u7a0b\u5e8f\u68c0\u6d4b\u5230\u5ba2\u6237\u7aef\u6b63\u5728\u8fd0\u884c\u3002' #13#13 '\u60a8\u5fc5\u987b\u5148\u5173\u95ed\u5b83\u7136\u540e\u5355\u51fb\u201c\u662f\u201d\u7ee7\u7eed\u5b89\u88c5\uff0c\u6216\u6309\u201c\u5426\u201d\u9000\u51fa\uff01', mbConfirmation, MB_YESNO) = idNO then\r\nbegin\r\nResult :=false; \/\/\u5b89\u88c5\u7a0b\u5e8f\u9000\u51fa\r\nIsRunning :=0;\r\nend else begin\r\nResult :=true; \/\/\u5b89\u88c5\u7a0b\u5e8f\u7ee7\u7eed\r\nIsRunning:=FindWindowByWindowName('\u4e1c\u65b9\u5bbd\u9891\u7f51\u7edc\u7535\u89c6');\r\nend;\r\nend;\r\nend;\r\n\/\/ \u5378\u8f7d\u65f6\u5224\u65ad\u5ba2\u6237\u7aef\u662f\u5426\u6b63\u5728\u8fd0\u884c\r\nfunction InitializeUninstall(): Boolean;\r\nbegin\r\nResult :=true; \/\/\u5b89\u88c5\u7a0b\u5e8f\u7ee7\u7eed\r\nIsRunning:=FindWindowByWindowName('\u4e1c\u65b9\u5bbd\u9891\u7f51\u7edc\u7535\u89c6');\r\nwhile IsRunning&amp;lt;&amp;gt;0 do\r\nbegin\r\n\r\nif Msgbox('\u5b89\u88c5\u7a0b\u5e8f\u68c0\u6d4b\u5230\u5ba2\u6237\u7aef\u6b63\u5728\u8fd0\u884c\u3002' #13#13 '\u60a8\u5fc5\u987b\u5148\u5173\u95ed\u5b83\u7136\u540e\u5355\u51fb\u201c\u662f\u201d\u7ee7\u7eed\u5b89\u88c5\uff0c\u6216\u6309\u201c\u5426\u201d\u9000\u51fa\uff01', mbConfirmation, MB_YESNO) = idNO then\r\nbegin\r\nResult :=false; \/\/\u5b89\u88c5\u7a0b\u5e8f\u9000\u51fa\r\nIsRunning :=0;\r\nend else begin\r\nResult :=true; \/\/\u5b89\u88c5\u7a0b\u5e8f\u7ee7\u7eed\r\nIsRunning:=FindWindowByWindowName('\u4e1c\u65b9\u5bbd\u9891\u7f51\u7edc\u7535\u89c6');\r\nend;\r\nend;\r\nend;\r\nprocedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);\r\nbegin\r\ncase CurUninstallStep of\r\nusUninstall:\r\nbegin \/\/ \u5f00\u59cb\u5378\u8f7d\r\nend;\r\nusPostUninstall:\r\nbegin\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ \u5378\u8f7d\u5b8c\u6210\r\n\/\/ MsgBox('CurUninstallStepChanged:' #13#13 'Uninstall just finished.', mbInformation, MB_OK);\r\n\/\/ ...insert code to perform post-uninstall tasks here...\r\nShellExec('open', 'http:\/\/www.dreams8.com', '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode);\r\nend;\r\nend;\r\nend;\r\n<\/pre>\n<p>13\u3001 \u5220\u9664\u6587\u4ef6\u548c\u5220\u9664\u6587\u4ef6\u5939<\/p>\n<pre class=\"brush: delphi; title: ; notranslate\" title=\"\">\r\n\/\/\u5220\u9664\u6587\u4ef6\u00a0\u00a0\u00a0 \u7528 DeleteFile \u53ea\u80fd\u5220\u9664\u4e00\u4e2a\u6587\u4ef6\uff0c\u4e0d\u80fd\u4f7f\u7528\u901a\u914d\u7b26\u6765\u5220\u9664\u591a\u4e2a\u6587\u4ef6\r\nDeleteFile(ExpandConstant('{app}\\abc.exe'));\r\n\/\/\u5220\u9664\u6240\u6709\u6587\u4ef6\u53ca\u6587\u4ef6\u5939\r\nDelTree(ExpandConstant('{app}'), True, True, False);\r\n<\/pre>\n<p>14\u3001BorderStyle<\/p>\n<p>TFormBorderStyle = (bsNone, bsSingle, bsSizeable, bsDialog, bsToolWindow, bsSizeToolWin);<br \/>\n\u65e0\u8fb9\u754c\u5f0f\uff08bsNone) \uff0c\u5355\u8fb9\u56fa\u5b9a\u5f0f\uff08bsSingle\uff09\uff0c\u53cc\u8fb9\u53ef\u53d8\u5f0f\uff08bsSizeable\uff09\uff0c\u5bf9\u8bdd\u6846\u5f0f\uff08bsDialog)<\/p>\n<p>15\u3001if\u00a0\u00a0 else<\/p>\n<pre class=\"brush: delphi; title: ; notranslate\" title=\"\">\r\nfunction NextButtonClick(CurPageID: Integer): Boolean;\r\nvar\r\nResultCode: Integer;\r\nbegin\r\nResult := True;\r\nif (CurPageID = wpSelectDir) then\r\nbegin\r\nMsgBox('AAAA', mbInformation, MB_OK);\r\nend\r\nelse\r\nbegin\r\nMsgBox('BBBB', mbInformation, MB_OK);\r\nend;\r\nend;\r\n<\/pre>\n<p>16\u3001\u5b89\u88c5\u7ed3\u675f\u754c\u9762\u589e\u52a0\u201c\u8bbe\u4e3a\u9996\u9875\u201d\u9009\u9879<br \/>\n[Tasks]<br \/>\nName: changestartpage; Description: &#8220;\u8bbe\u7f6evistaqq\u4e3a\u9ed8\u8ba4\u4e3b\u9875&#8221;<br \/>\n[Registry]<br \/>\nRoot: HKCU; Subkey: &#8220;Software\\Microsoft\\Internet Explorer\\Main&#8221;; ValueType: string; ValueName: &#8220;Start Page&#8221;; ValueData: &#8220;http:\/\/www.vistaqq.com&#8221;; tasks: changestartpage<\/p>\n<p>17\u3001\u6dfb\u52a0\u201c\u5173\u4e8e\u201d\u548c\u7f51\u7ad9\u94fe\u63a5\u6309\u94ae<\/p>\n<pre class=\"brush: delphi; title: ; notranslate\" title=\"\">\r\nprocedure URLLabelOnClick(Sender: TObject);\r\nvar\r\nErrorCode: Integer;\r\nbegin\r\nShellExec('open', 'http:\/\/www.vistaqq.com', '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode);\r\nend;\r\nprocedure AboutButtonOnClick(Sender: TObject);\r\nbegin\r\nMsgBox(#13 'Vista \u72b6\u6001\u6761\u98ce\u683c\u76d8\u7b26' #13 #13'\u672c\u8f6f\u4ef6\u7531jinn\u5236\u4f5c\uff0c\u5e0c\u671b\u5404\u4f4d\u767b\u9646\u4e2d\u5929VIP\u5de5\u4f5c\u5ba4\uff01' #13#13 '\u7248\u6743\u6240\u6709 (C) \u4e2d\u5929VIP\u5de5\u4f5c\u5ba4', mbInformation, MB_OK);\r\nend;\r\nvar\r\nAboutButton, CancelButton: TButton;\r\nURLLabel: TNewStaticText;\r\nprocedure InitializeWizard();\r\nbegin\r\n{ Create the pages }\r\nWizardForm.PAGENAMELABEL.Font.Color:= clred;\r\nWizardForm.PAGEDESCRIPTIONLABEL.Font.Color:= clBlue;\r\nWizardForm.WELCOMELABEL1.Font.Color:= clGreen;\r\nWizardForm.WELCOMELABEL2.Font.Color:= clblack;\r\nCancelButton := WizardForm.CancelButton;\r\nAboutButton := TButton.Create(WizardForm);\r\nAboutButton.Left := WizardForm.ClientWidth - CancelButton.Left - CancelButton.Width;\r\nAboutButton.Top := CancelButton.Top;\r\nAboutButton.Width := CancelButton.Width;\r\nAboutButton.Height := CancelButton.Height;\r\nAboutButton.Caption := '&amp;amp;About';\r\nAboutButton.OnClick := @AboutButtonOnClick;\r\nAboutButton.Parent := WizardForm;\r\nURLLabel := TNewStaticText.Create(WizardForm);\r\nURLLabel.Caption := '\u4e2d\u5929VIP\u5de5\u4f5c\u5ba4';\r\nURLLabel.Cursor := crHand;\r\nURLLabel.OnClick := @URLLabelOnClick;\r\nURLLabel.Parent := WizardForm;\r\n{ Alter Font *after* setting Parent so the correct defaults are inherited first }\r\nURLLabel.Font.Style := URLLabel.Font.Style + &#x5B;fsUnderline];\r\nURLLabel.Font.Color := clBlue;\r\nURLLabel.Top := AboutButton.Top + AboutButton.Height - URLLabel.Height - 2;\r\nURLLabel.Left := AboutButton.Left + AboutButton.Width + ScaleX(20);\r\nend;\r\n<\/pre>\n<p>18\u3001\u53bb\u6389\u5b89\u88c5\u7a0b\u5e8f\u5de6\u4e0a\u89d2\u201c\u5173\u4e8e\u5b89\u88c5\u7a0b\u5e8f\u201d\u7684\u4ee3\u7801<\/p>\n<pre class=\"brush: delphi; title: ; notranslate\" title=\"\">\r\nprocedure InitializeWizard();\r\nbegin\r\nWizardForm.BorderIcons:= &#x5B;biMinimize];\r\nend;\r\nprocedure CurPageChanged(CurPage: Integer);\r\nbegin\r\nif CurPage=wpWelcome then\r\nWizardForm.BorderIcons:= &#x5B;biSystemMenu, biMinimize];\r\nend;\r\n<\/pre>\n<p>\u6216\u8005<\/p>\n<pre class=\"brush: delphi; title: ; notranslate\" title=\"\">\r\nprocedure InitializeWizard();\r\nbegin\r\nWizardForm.BORDERICONS := &#x5B;biHelp, biSystemMenu, biMinimize];\r\nend;\r\n<\/pre>\n<p>19\u3001\u81ea\u5b9a\u4e49BeveledLabel\u6587\u5b57<br \/>\n[Messages]<br \/>\nBeveledLabel=\u4e2d\u5929VIP\u5de5\u4f5c\u5ba4<\/p>\n<p>20\u3001\u81ea\u5b9a\u4e49\u5b89\u88c5\u7a0b\u5e8f\u754c\u9762\u5de6\u4e0a\u89d2\u201c\u5b89\u88c5\u201d\u6587\u5b57<br \/>\n[message]<br \/>\nSetupAppTitle=\u9700\u8981\u7684\u5b57<br \/>\nSetupWindowTitle=\u9700\u8981\u7684\u5b57<\/p>\n<p>21\u3001\u81ea\u5b9a\u4e49\u5b89\u88c5\u7a0b\u5e8f\u7248\u672c\u53f7<br \/>\nVersionInfoVersion=1.1<br \/>\nVersionInfoTextVersion=1.1<\/p>\n<p>22\u3001\u5b89\u88c5\u5b8c\u6210\u540e\u663e\u793a\u65b0\u7279\u6027<br \/>\n[Run]<br \/>\nFilename: &#8220;{app}\\WhatsNew.Txt&#8221;; Description: &#8220;\u5b89\u88c5\u5b8c\u6210\u540e\u663e\u793a\u65b0\u7279\u6027&#8221;; Flags: postinstall shellexec skipifsilent<\/p>\n","protected":false},"excerpt":{"rendered":"<p>1 \u3001\u5982\u4f55\u8ba9\u534f\u8bae\u8bb8\u53ef\u9875\u9762\u9ed8\u8ba4\u9009\u4e2d\u6211\u540c\u610f\u6309\u94ae procedure InitializeWizard(); beg [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-665","post","type-post","status-publish","format-standard","hentry","category-skill"],"_links":{"self":[{"href":"https:\/\/kyle.ai\/blog\/wp-json\/wp\/v2\/posts\/665","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=665"}],"version-history":[{"count":2,"href":"https:\/\/kyle.ai\/blog\/wp-json\/wp\/v2\/posts\/665\/revisions"}],"predecessor-version":[{"id":5072,"href":"https:\/\/kyle.ai\/blog\/wp-json\/wp\/v2\/posts\/665\/revisions\/5072"}],"wp:attachment":[{"href":"https:\/\/kyle.ai\/blog\/wp-json\/wp\/v2\/media?parent=665"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kyle.ai\/blog\/wp-json\/wp\/v2\/categories?post=665"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kyle.ai\/blog\/wp-json\/wp\/v2\/tags?post=665"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}