{"id":363,"date":"2009-05-01T15:30:00","date_gmt":"2009-05-01T07:30:00","guid":{"rendered":""},"modified":"2013-11-17T19:29:45","modified_gmt":"2013-11-17T11:29:45","slug":"delphi%e8%8e%b7%e5%8f%96windows%e7%b3%bb%e7%bb%9f%e4%bf%a1%e6%81%af","status":"publish","type":"post","link":"https:\/\/kyle.ai\/blog\/363.html","title":{"rendered":"Delphi\u83b7\u53d6Windows\u7cfb\u7edf\u4fe1\u606f"},"content":{"rendered":"<p>\u672c\u6587\u6240\u6709\u7684\u7a97\u4f53\u754c\u9762\u7565\u53bb\uff0c\u8bfb\u8005\u53ef\u6839\u636e\u7a0b\u5e8f\u81ea\u884c\u6dfb\u52a0\u5404\u7a97\u53e3\u7ec4\u4ef6\u3002<\/p>\n<p>1\u3001\u83b7\u53d6windows\u7248\u672c\u4fe1\u606f<br \/>\n\u53ef\u4ee5\u901a\u8fc7Windows API\u51fd\u6570GetVersionEx\u6765\u83b7\u5f97\u3002<br \/>\n\u5177\u4f53\u7a0b\u5e8f\u5982\u4e0b\uff1a<\/p>\n<pre class=\"brush: delphi; title: ; notranslate\" title=\"\">\r\nProcedure Tform1.Button1Click(sender:TObject);\r\nVar\r\nOSVI:OSVERSIONINFO;\r\nbegin\r\nOSVI.dwOSversioninfoSize:=Sizeof(OSVERSIONINFO)\uff1b\r\nGetVersionEx(OSVI);\r\nlabel1.Caption:=IntToStr(OSVI.dwMinorVersion)+\u2019,\u2019\r\n+IntToStr(OSVI.dwMinorVersion)+\u2019,\u2019\r\n+IntToStr(OSVI.dwBuildNumber)+\u2019,\u2019\r\n+IntToStr(OSVI.dwPlatformId)+\u2019,\u2019\r\n+OSVI.szCSDVersion;\r\nend;\r\nend.\r\n<\/pre>\n<p>2\u3001\u83b7\u53d6CPU\u4fe1\u606f<br \/>\n\u53ef\u4ee5\u901a\u8fc7Windows API\u51fd\u6570GetSystemInfo\u6765\u83b7\u5f97\u6709\u5173\u4fe1\u606f\u3002<br \/>\n\u5177\u4f53\u7a0b\u5e8f\u5982\u4e0b\uff1a<\/p>\n<pre class=\"brush: delphi; title: ; notranslate\" title=\"\">\r\nprocedure TForm1.Button1Click(Sender: TObject);\r\nVar\r\nSysInfo:SYSTEM_INFO;\r\nbegin\r\nGetSystemInfo(Sysinfo);\r\nEdit1.Text:=\u2019\u7cfb\u7edf\u4e2d\u6709\u2019+IntToStr(Sysinfo.dwNumberOfProcessors)+\u2019\u4e2aCPU\u2019\r\n+\u2019,\u7c7b\u578b\u4e3a\u2019+IntToStr(Sysinfo.dwProcessorType);\r\nend;\r\nend.\r\n<\/pre>\n<p>3\u3001\u83b7\u53d6\u5185\u5b58\u4fe1\u606f<br \/>\n\u53ef\u4ee5\u901a\u8fc7Windows API\u51fd\u6570GlobalMemoryStatus\u6765\u83b7\u5f97\u5185\u5b58\u4fe1\u606f\u3002<br \/>\n\u5177\u4f53\u7a0b\u5e8f\u5982\u4e0b\uff1a<\/p>\n<pre class=\"brush: delphi; title: ; notranslate\" title=\"\">\r\nprocedure TForm1.Button1Click(Sender: TObject);\r\nVar\r\nMemInfo:MEMORYSTATUS;\r\nbegin\r\nMemInfo.dwLength:=sizeof(MEMORYSTATUS);\r\nGlobalMemoryStatus(MemInfo);\r\nmemo1.Lines.Add(IntToStr(MemInfo.dwMemoryLoad)+\u2019%\u7684\u5185\u5b58\u6b63\u5728\u4f7f\u7528\u2019) ;\r\nmemo1.Lines.Add(\u2019\u7269\u7406\u5185\u5b58\u5171\u6709\u2019+IntToStr(MemInfo.dwTotalPhys)+\u2019\u5b57\u8282\u2019);\r\nmemo1.Lines.Add(\u2019\u53ef\u4f7f\u7528\u7684\u7269\u7406\u5185\u5b58\u6709\u2019+IntToStr(MemInfo.dwAvailPhys)+\u2019\u5b57\u8282\u2019);\r\nmemo1.Lines.Add(\u2019\u4ea4\u6362\u6587\u4ef6\u603b\u5927\u5c0f\u4e3a\u2019+IntToStr(MemInfo.dwTotalPageFile)+\u2019\u5b57\u8282\u2019) ;\r\nmemo1.Lines.Add(\u2019\u5c1a\u53ef\u4ea4\u6362\u6587\u4ef6\u5927\u5c0f\u4e3a\u2019+IntToStr(MemInfo.dwAvailPageFile)+\u2019\u5b57\u8282\u2019);\r\nmemo1.Lines.Add(\u2019\u603b\u865a\u62df\u5185\u5b58\u6709\u2019+IntToStr(MemInfo.dwTotalVirtual)+\u2019\u5b57\u8282\u2019);\r\nmemo1.Lines.Add(\u2019\u672a\u7528\u865a\u62df\u5185\u5b58\u6709\u2019+IntToStr(MemInfo.dwAvailVirtual)+\u2019\u5b57\u8282\u2019);\r\nend;\r\nend.\r\n<\/pre>\n<p>\u6216\u7528\u4ee5\u4e0b\u4ee3\u7801\uff1a<\/p>\n<pre class=\"brush: delphi; title: ; notranslate\" title=\"\">\r\nmemo1.Text:=IntToStr(MemInfo.dwMemoryLoad)+\u2019%\u7684\u5185\u5b58\u6b63\u5728\u4f7f\u7528\u2019+#13#10\r\n+\u2019\u53ef\u4f7f\u7528\u7684\u7269\u7406\u5185\u5b58\u6709\u2019+IntToStr(MemInfo.dwAvailPhys)+\u2019\u5b57\u8282\u2019+#13#10\r\n+\u2019\u4ea4\u6362\u6587\u4ef6\u603b\u5927\u5c0f\u4e3a\u2019+IntToStr(MemInfo.dwTotalPageFile)+\u2019\u5b57\u8282\u2019+#13#10\r\n+\u2019\u5c1a\u53ef\u4ea4\u6362\u6587\u4ef6\u5927\u5c0f\u4e3a\u2019+IntToStr(MemInfo.dwAvailPageFile)+\u2019\u5b57\u8282\u2019+#13#10\r\n+\u2019\u603b\u865a\u62df\u5185\u5b58\u6709\u2019+IntToStr(MemInfo.dwTotalVirtual)+\u2019\u5b57\u8282\u2019+#13#10\r\n+\u2019\u672a\u7528\u865a\u62df\u5185\u5b58\u6709\u2019+IntToStr(MemInfo.dwAvailVirtual)+\u2019\u5b57\u8282\u2019;\r\n<\/pre>\n<p>\u6765\u66ff\u4ee3memo1.line.add(\u2026)\u90e8\u5206\u3002<\/p>\n<p>4\u3001\u83b7\u53d6Windows\u548c\u7cfb\u7edf\u8def\u5f84<br \/>\n\u53ef\u4ee5\u901a\u8fc7Windows API\u51fd\u6570\u6765\u83b7\u5f97<br \/>\n\u5177\u4f53\u7a0b\u5e8f\u5982\u4e0b\uff1a<\/p>\n<pre class=\"brush: delphi; title: ; notranslate\" title=\"\">\r\nprocedure TForm1.Button1Click(Sender: TObject);\r\nVar\r\nSysDir:array&#x5B;0..128] of char;\r\nbegin\r\nGetWindowsDirectory(SysDir,128);\r\nEdit1.Text:=\u2019Windows \u8def\u5f84\uff1a\u2019+SysDir;\r\nGetSystemDirectory(SysDir,128);\r\nEdit1.Text:=Edit1.Text+\u2019; \u7cfb\u7edf\u8def\u5f84\uff1a\u2019+SysDir;\r\nend;\r\nend.\r\n<\/pre>\n<p>\u5176\u4e2d\uff0c\u7b14\u8005\u901a\u8fc7\u66f4\u6539\u6570\u5217\u7684\u503c\uff1a\u53d1\u73b0\u5176\u4e2d\u7684128\u53ef\u66f4\u6539\u4e3a\u4eba\u4ee5\u4e0d\u5c0f\u4e8e16\u7684\u7684\u6570\u503c\uff0c\u82e5\u5c0f\u4e8e\u6216\u7b49\u4e8e16\u5747\u51fa\u73b0\u5f02\u5e38\uff08\u7b14\u8005\u7684\u64cd\u4f5c\u7cfb\u7edf\u4e3aWindows2000\uff09\u3002\u8bfb\u8005\u670b\u53cb\u4e0d\u59a8\u8bd5\u8bd5\u3002<\/p>\n<p>5\u3001\u83b7\u53d6\u7528\u6237\u6ce8\u518c\u4fe1\u606f<br \/>\n\u6211\u4eec\u90fd\u77e5\u9053\uff0c\u4e00\u822c\u5728\u8f6f\u4ef6\u5b89\u88c5\u8fc7\u7a0b\u4e2d\uff0c\u5b83\u90fd\u4f1a\u63d0\u793a\u7528\u6237\uff0c\u8981\u6c42\u8f93\u5165\u7cfb\u5217\u53f7\u6216\u4ea7\u54c1\u53f7\u548c\u7528\u6237\u7684\u4e00\u4e9b\u6ce8\u518c\u4fe1\u606f\uff08\u7528\u6237\u7684\u516c\u53f8\u540d\u79f0\u3001\u7528\u6237\u540d\u7b49\uff09\u4ee5\u53ca\u5b89\u88c5\u7684\u76ee\u5f55\u548c\u8def\u5f84\u7b49\u3002<br \/>\n\u901a\u8fc7\u4ee5\u4e0b\u4ee3\u7801\u53ef\u67e5\u770b\u7528\u6237\u6ce8\u518c\u4fe1\u606f\uff1a<\/p>\n<pre class=\"brush: delphi; title: ; notranslate\" title=\"\">\r\nprocedure TForm1.Button1Click(Sender: TObject);\r\nVar\r\nReg:TRegistry;\r\nbegin\r\nReg:=TRegistry.Create;\r\nReg.RootKey:=HKEY_LOCAL_MACHINE;\r\nReg.OpenKey(\u2019SoftwareMicrosoftWindows NTCurrentVersion\u2019,False);\r\nEdit1.Text:=\u2019\u5f53\u524d\u8def\u5f84\uff1a\u2019+Reg.CurrentPath;\r\nEdit2.Text:=\u2019\u4ea7\u54c1\u7cfb\u5217\u53f7\uff1a\u2019+Reg.ReadString(\u2019ProductId\u2019);\r\nEdit3.Text:=\u2019\u4ea7\u54c1\u540d\uff1a\u2019+Reg.ReadString(\u2019ProductName\u2019);\r\nEdit4.Text:=\u2019\u6ce8\u518c\u516c\u53f8\u540d\u79f0\uff1a\u2019+Reg.ReadString(\u2019RegisteredOrganization\u2019);\r\nEdit5.Text:=\u2019\u7528\u6237\u540d\uff1a\u2019+Reg.ReadString(\u2019RegisteredOwner\u2019);\r\nEdit6.Text:=\u2019\u8f6f\u4ef6\u7c7b\u578b\uff1a\u2019+Reg.ReadString(\u2019SoftwareType\u2019);\r\nReg.CloseKey;\r\nReg.Free;\r\nend;\r\nend.\r\n<\/pre>\n<p>\u6ce8\u610f\uff1a\u5728\u7a0b\u5e8f\u7f16\u8bd1\u4e4b\u524d\uff0c\u5fc5\u987b\u5728USES\u8bed\u53e5\u4e0b\u6dfb\u52a0registry\u5355\u5143\u3002<\/p>\n<p>6\u3001\u5173\u95edWidows<br \/>\n\u53ef\u4ee5\u901a\u8fc7Windows API\u51fd\u6570ExitWindowsEx\u6765\u5173\u95edWidows\u3002<\/p>\n<pre class=\"brush: delphi; title: ; notranslate\" title=\"\">\r\nprocedure TForm1.Button1Click(Sender: TObject);\r\nbegin\r\nif RadioButton1.Checked=true then\r\nExitWindowsEx(EWX_LOGOFF,0) \/\/\u4ee5\u5176\u4ed6\u7528\u6237\u8eab\u4efd\u767b\u5f55\r\nelse if RadioButton2.Checked=true then\r\nExitWindowsEx(EWX_SHUTDOWN,1) \/\/\u5b89\u5168\u5173\u673a\r\nelse if RadioButton3.Checked=true then\r\nExitWindowsEx(EWX_REBOOT,2) \/\/\u91cd\u65b0\u542f\u52a8\u8ba1\u7b97\u673a\r\nelse if RadioButton4.Checked=true then\r\nExitWindowsEx(EWX_FORCE,4) \/\/\u5f3a\u884c\u5173\u673a\r\nelse if RadioButton5.Checked=true then\r\nExitWindowsEx(EWX_POWEROFF,8); \/\/\u5173\u95ed\u7cfb\u7edf\u5e76\u5173\u95ed\u7535\u6e90\r\nend;\r\nend.\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u672c\u6587\u6240\u6709\u7684\u7a97\u4f53\u754c\u9762\u7565\u53bb\uff0c\u8bfb\u8005\u53ef\u6839\u636e\u7a0b\u5e8f\u81ea\u884c\u6dfb\u52a0\u5404\u7a97\u53e3\u7ec4\u4ef6\u3002 1\u3001\u83b7\u53d6windows\u7248\u672c\u4fe1\u606f \u53ef\u4ee5\u901a\u8fc7Windo [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[],"class_list":["post-363","post","type-post","status-publish","format-standard","hentry","category-code_related"],"_links":{"self":[{"href":"https:\/\/kyle.ai\/blog\/wp-json\/wp\/v2\/posts\/363","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=363"}],"version-history":[{"count":1,"href":"https:\/\/kyle.ai\/blog\/wp-json\/wp\/v2\/posts\/363\/revisions"}],"predecessor-version":[{"id":4767,"href":"https:\/\/kyle.ai\/blog\/wp-json\/wp\/v2\/posts\/363\/revisions\/4767"}],"wp:attachment":[{"href":"https:\/\/kyle.ai\/blog\/wp-json\/wp\/v2\/media?parent=363"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kyle.ai\/blog\/wp-json\/wp\/v2\/categories?post=363"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kyle.ai\/blog\/wp-json\/wp\/v2\/tags?post=363"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}