獲得系統語種等資訊

來源:互聯網
上載者:User
function   TForm1.GetLocaleInformation(Flag:   Integer):   String;  
  var  
      pcLCA:   Array[0..20]   of   Char;  
  begin  
      if(   GetLocaleInfo(LOCALE_SYSTEM_DEFAULT,Flag,pcLCA,19)   <=   0   )   then   begin  
      pcLCA[0]   :=   #0;  
      end;  
      Result   :=   pcLCA;  
  end;  
   
  procedure   TForm1.Button1Click(Sender:   TObject);  
  begin  
      ShowMessage(GetLocaleInformation(LOCALE_SENGLANGUAGE));  
  end;  
   
  參數"Flag"可以取下列值:  
   
      LOCALE_NOUSEROVERRIDE   {   do   not   use   user   overrides   }  
      LOCALE_USE_CP_ACP   {   use   the   system   ACP   }  
      LOCALE_ILANGUAGE   {   語言代號   }  
      LOCALE_SLANGUAGE   {   本地語言名稱   }  
      LOCALE_SENGLANGUAGE   {   語言的英語名   }  
      LOCALE_SABBREVLANGNAME   {   語言名稱縮寫   }  
      LOCALE_SNATIVELANGNAME   {   本地語言名稱   }  
      LOCALE_ICOUNTRY   {   國家代號   }  
      LOCALE_SCOUNTRY   {   國家名   }  
      LOCALE_SENGCOUNTRY   {   國家的英語名稱   }  
      LOCALE_SABBREVCTRYNAME   {   國家名縮寫   }  
      LOCALE_SNATIVECTRYNAME   {   國家名   }  
      LOCALE_IDEFAULTLANGUAGE   {   預設語言代號   }  
      LOCALE_IDEFAULTCOUNTRY   {   預設國家代碼   }  
      LOCALE_IDEFAULTCODEPAGE   {   預設oem字碼頁   }  
      LOCALE_IDEFAULTANSICODEPAGE   {   預設ansi字碼頁   }  
      LOCALE_IDEFAULTMACCODEPAGE   {   預設mac頁   }  
      LOCALE_SLIST   {   清單項目分割符   }  
      LOCALE_IMEASURE   {   測量單位0   =   米制,   1   =   英制   }  
      LOCALE_SDECIMAL   {   小數點符號   }  
      LOCALE_STHOUSAND   {   千位分割符   }  
      LOCALE_SGROUPING   {   digit   grouping   }  
      LOCALE_IDIGITS   {   number   of   fractional   digits   }  
      LOCALE_ILZERO   {   leading   zeros   for   decimal   }  
      LOCALE_INEGNUMBER   {   負數模式   }  
      LOCALE_SNATIVEDIGITS   {   native   ascii   0-9   }  
      LOCALE_SCURRENCY   {   本地貨幣符號   }  
      LOCALE_SINTLSYMBOL   {   國際貨幣符號   }  
      LOCALE_SMONDECIMALSEP   {   貨幣小數點分割符   }  
      LOCALE_SMONTHOUSANDSEP   {   貨幣千位分割符   }  
      LOCALE_SMONGROUPING   {   monetary   grouping   }  
      LOCALE_ICURRDIGITS   {   #   local   monetary   digits   }  
      LOCALE_IINTLCURRDIGITS   {   #   intl   monetary   digits   }  
      LOCALE_ICURRENCY   {   positive   currency   mode   }  
      LOCALE_INEGCURR   {   negative   currency   mode   }  
      LOCALE_SDATE   {   日期分割符   }  
      LOCALE_STIME   {   時間分割符   }  
      LOCALE_SSHORTDATE   {   短日期文字   }  
      LOCALE_SLONGDATE   {   長日期文字   }  
      LOCALE_STIMEFORMAT   {   time   format   string   }  
      LOCALE_IDATE   {   short   date   format   ordering   }  
      LOCALE_ILDATE   {   long   date   format   ordering   }  
      LOCALE_ITIME   {   time   format   specifier   }  
      LOCALE_ITIMEMARKPOSN   {   time   marker   position   }  
      LOCALE_ICENTURY   {   century   format   specifier   (short   date)   }  
      LOCALE_ITLZERO   {   leading   zeros   in   time   field   }  
      LOCALE_IDAYLZERO   {   leading   zeros   in   day   field   (short   date)   }  
      LOCALE_IMONLZERO   {   leading   zeros   in   month   field   (short   date)   }  
      LOCALE_S1159   {   AM   designator   }  
      LOCALE_S2359   {   PM   designator   }  
      LOCALE_ICALENDARTYPE   {   type   of   calendar   specifier   }  
      LOCALE_IOPTIONALCALENDAR   {   additional   calendar   types   specifier   }  
      LOCALE_IFIRSTDAYOFWEEK   {   first   day   of   week   specifier   }  
      LOCALE_IFIRSTWEEKOFYEAR   {   first   week   of   year   specifier   }  
      LOCALE_SDAYNAME1   {   long   name   for   Monday   }  
      LOCALE_SDAYNAME2   {   long   name   for   Tuesday   }  
      LOCALE_SDAYNAME3   {   long   name   for   Wednesday   }  
      LOCALE_SDAYNAME4   {   long   name   for   Thursday   }  
      LOCALE_SDAYNAME5   {   long   name   for   Friday   }  
      LOCALE_SDAYNAME6   {   long   name   for   Saturday   }  
      LOCALE_SDAYNAME7   {   long   name   for   Sunday   }  
      LOCALE_SABBREVDAYNAME1   {   星期一的縮寫   }  
      LOCALE_SABBREVDAYNAME2   {   星期二的縮寫   }  
      LOCALE_SABBREVDAYNAME3   {   星期三的縮寫   }  
      LOCALE_SABBREVDAYNAME4   {   星期四的縮寫   }  
      LOCALE_SABBREVDAYNAME5   {   星期五的縮寫   }  
      LOCALE_SABBREVDAYNAME6   {   星期六的縮寫   }  
      LOCALE_SABBREVDAYNAME7   {   星期天的縮寫   }  
      LOCALE_SMONTHNAME1   {   long   name   for   January   }  
      LOCALE_SMONTHNAME2   {   long   name   for   February   }  
      LOCALE_SMONTHNAME3   {   long   name   for   March   }  
      LOCALE_SMONTHNAME4   {   long   name   for   April   }  
      LOCALE_SMONTHNAME5   {   long   name   for   May   }  
      LOCALE_SMONTHNAME6   {   long   name   for   June   }  
      LOCALE_SMONTHNAME7   {   long   name   for   July   }  
      LOCALE_SMONTHNAME8   {   long   name   for   August   }  
      LOCALE_SMONTHNAME9   {   long   name   for   September   }  
      LOCALE_SMONTHNAME10   {   long   name   for   October   }  
      LOCALE_SMONTHNAME11   {   long   name   for   November   }  
      LOCALE_SMONTHNAME12   {   long   name   for   December   }  
      LOCALE_SMONTHNAME13   {   long   name   for   13th   month   (if   exists)   }  
      LOCALE_SABBREVMONTHNAME1   {   一月的縮寫   }  
      LOCALE_SABBREVMONTHNAME2   {   二月的縮寫   }  
      LOCALE_SABBREVMONTHNAME3   {   三月的縮寫   }  
      LOCALE_SABBREVMONTHNAME4   {   四月的縮寫   }  
      LOCALE_SABBREVMONTHNAME5   {   五月的縮寫   }  
      LOCALE_SABBREVMONTHNAME6   {   六月的縮寫   }  
      LOCALE_SABBREVMONTHNAME7   {   七月的縮寫   }  
      LOCALE_SABBREVMONTHNAME8   {   八月的縮寫   }  
      LOCALE_SABBREVMONTHNAME9   {   九月的縮寫   }  
      LOCALE_SABBREVMONTHNAME10   {   十月的縮寫   }  
      LOCALE_SABBREVMONTHNAME11   {   十一月的縮寫   }  
      LOCALE_SABBREVMONTHNAME12   {   十二月的縮寫   }  
      LOCALE_SABBREVMONTHNAME13   {   十三月的縮寫(如果有的話)   }  
      LOCALE_SPOSITIVESIGN   {   正號   }  
      LOCALE_SNEGATIVESIGN   {   負號   }  
      LOCALE_IPOSSIGNPOSN   {   正號位置   }  
      LOCALE_INEGSIGNPOSN   {   負號位置   }  
      LOCALE_IPOSSYMPRECEDES   {   mon   sym   precedes   pos   amt   }  
      LOCALE_IPOSSEPBYSPACE   {   mon   sym   sep   by   space   from   pos   amt   }  
      LOCALE_INEGSYMPRECEDES   {   mon   sym   precedes   neg   amt   }  
      LOCALE_INEGSEPBYSPACE   {   mon   sym   sep   by   space   from   neg   amt   }  
      LOCALE_FONTSIGNATURE   {   font   signature   }  
      LOCALE_SISO639LANGNAME   {   ISO   縮寫語言名稱   }  
      LOCALE_SISO3166CTRYNAME   {   ISO   縮寫國家名稱   }   

  1、擷取windows版本資訊    
  可以通過Windows   API函數GetVersionEx來獲得。    
  具體程式如下:  
  Procedure   Tform1.Button1Click(sender:TObject);    
                  Var()  
  OSVI:OSVERSIONINFO;    
                  begin()  
  OSVI.dwOSversioninfoSize:=Sizeof(OSVERSIONINFO);    
  GetVersionEx(OSVI);    
  label1.Caption:=IntToStr(OSVI.dwMinorVersion)+','    
  +IntToStr(OSVI.dwMinorVersion)+','    
  +IntToStr(OSVI.dwBuildNumber)+','    
  +IntToStr(OSVI.dwPlatformId)+','    
  +OSVI.szCSDVersion;    
  end;    
   
  end.    
   
  2、擷取CPU資訊    
  可以通過Windows   API函數GetSystemInfo來獲得有關資訊。    
  具體程式如下:  
  procedure   TForm1.Button1Click(Sender:   TObject);    
                  Var()  
  SysInfo:SYSTEM_INFO;    
                  begin()  
  GetSystemInfo(Sysinfo);    
  Edit1.Text:='系統中有'+IntToStr(Sysinfo.dwNumberOfProcessors)+'個CPU'    
  +',類型為'+IntToStr(Sysinfo.dwProcessorType);      
  end;    
   
  end.    
   
  3、擷取記憶體資訊    
  可以通過Windows   API函數GlobalMemoryStatus來獲得記憶體資訊。    
  具體程式如下:  
  procedure   TForm1.Button1Click(Sender:   TObject);    
                  Var()  
  MemInfo:MEMORYSTATUS;    
                  begin()  
  MemInfo.dwLength:=sizeof(MEMORYSTATUS);    
  GlobalMemoryStatus(MemInfo);    
  memo1.Lines.Add(IntToStr(MemInfo.dwMemoryLoad)+'%的記憶體正在使用')   ;    
  memo1.Lines.Add('實體記憶體共有'+IntToStr(MemInfo.dwTotalPhys)+'位元組');    
  memo1.Lines.Add('可使用的實體記憶體有'+IntToStr(MemInfo.dwAvailPhys)+'位元組');    
  memo1.Lines.Add('分頁檔總大小為'+IntToStr(MemInfo.dwTotalPageFile)+'位元組')   ;    
  memo1.Lines.Add('尚可分頁檔大小為'+IntToStr(MemInfo.dwAvailPageFile)+'位元組');    
  memo1.Lines.Add('總虛擬記憶體有'+IntToStr(MemInfo.dwTotalVirtual)+'位元組');    
  memo1.Lines.Add('未用虛擬記憶體有'+IntToStr(MemInfo.dwAvailVirtual)+'位元組');    
  end;    
   
  end.    
   
  或用以下代碼:  
  memo1.Text:=IntToStr(MemInfo.dwMemoryLoad)+'%的記憶體正在使用'+#13#10    
  +'可使用的實體記憶體有'+IntToStr(MemInfo.dwAvailPhys)+'位元組'+#13#10    
  +'分頁檔總大小為'+IntToStr(MemInfo.dwTotalPageFile)+'位元組'+#13#10    
  +'尚可分頁檔大小為'+IntToStr(MemInfo.dwAvailPageFile)+'位元組'+#13#10    
  +'總虛擬記憶體有'+IntToStr(MemInfo.dwTotalVirtual)+'位元組'+#13#10    
  +'未用虛擬記憶體有'+IntToStr(MemInfo.dwAvailVirtual)+'位元組';    
  來替代memo1.line.add(…)部分。    
   
  4、擷取Windows和系統路徑    
                  可以通過Windows(API函數來獲得)  
  具體程式如下:  
  procedure   TForm1.Button1Click(Sender:   TObject);    
                  Var()  
  SysDir:array[0..128]   of   char;    
                  begin()  
  GetWindowsDirectory(SysDir,128);    
  Edit1.Text:='Windows   路徑:'+SysDir;    
  GetSystemDirectory(SysDir,128);    
  Edit1.Text:=Edit1.Text+';   系統路徑:'+SysDir;    
  end;    
   
  5、擷取使用者註冊資訊    
  我們都知道,一般在軟體安裝過程中,它都會提示使用者,要求輸入系列號或產品號和使用者的一些註冊資訊(使用者  
   
  的公司名稱、使用者名稱等)以及安裝的目錄和路徑等。    
  通過以下代碼可查看使用者註冊資訊:  
  procedure   TForm1.Button1Click(Sender:   TObject);    
                  Var()  
  Reg:TRegistry;    
                  begin()  
  Reg:=TRegistry.Create;    
  Reg.RootKey:=HKEY_LOCAL_MACHINE;    
  Reg.OpenKey('Software/Microsoft/Windows   NT/CurrentVersion',False);    
  Edit1.Text:='當前路徑:'+Reg.CurrentPath;    
  Edit2.Text:='產品系列號:'+Reg.ReadString('ProductId');    
  Edit3.Text:='產品名:'+Reg.ReadString('ProductName');    
  Edit4.Text:='註冊公司名稱:'+Reg.ReadString('RegisteredOrganization');    
  Edit5.Text:='使用者名稱:'+Reg.ReadString('RegisteredOwner');    
  Edit6.Text:='軟體類型:'+Reg.ReadString('SoftwareType');    
  Reg.CloseKey;    
  Reg.Free;    
  end;    
   
   
  注意:在程式編譯之前,必須在USES語句下添加registry單元。    
   
  6、關閉Widows    
  可以通過Windows   API函數ExitWindowsEx來關閉Widows。    
  procedure   TForm1.Button1Click(Sender:   TObject);    
                  begin()  
                  If   RadioButton1.Checked   =   True   Then  
  ExitWindowsEx(EWX_LOGOFF,0)   //以其他使用者身份登入    
                  ElseIf   RadioButton2.Checked   =   True   Then  
  ExitWindowsEx(EWX_SHUTDOWN,1)   //安全關機    
                  ElseIf   RadioButton3.Checked   =   True   Then  
  ExitWindowsEx(EWX_REBOOT,2)   //重新啟動電腦    
                  ElseIf   RadioButton4.Checked   =   True   Then  
  ExitWindowsEx(EWX_FORCE,4)   //強行關機    
                  ElseIf   RadioButton5.Checked   =   True   Then  
  ExitWindowsEx(EWX_POWEROFF,8);   //關閉系統並關閉電源    
   
  end;

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.