如何获取系统的语言(编码)就像IE 获取的编码一样?

yjbnew 2009-03-26 01:08:17
thanks
...全文
170 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
火星牛 2009-03-27
  • 打赏
  • 举报
回复
当前设定的语言,windows.GetACP
僵哥 2009-03-27
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 yjbnew 的回复:]
EnumLocalesProc 这个怎么调用?能否详细解释一下,谢谢。
[/Quote]
EnumSystemCodePages(@EnumLocalesProc,CP_SUPPORTED);
yjbnew 2009-03-27
  • 打赏
  • 举报
回复
EnumLocalesProc 这个怎么调用?能否详细解释一下,谢谢。
嗷嗷叫的老马 2009-03-27
  • 打赏
  • 举报
回复
路过......................帮顶
yjbnew 2009-03-26
  • 打赏
  • 举报
回复
谢谢,Delphi太强了。明天结贴。来者犹分。
僵哥 2009-03-26
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 yjbnew 的回复:]
报错:Undeclared identifier: 'TCPInfoEx'
[/Quote]
抱歉,忘了
Type
_cpinfoexA = record
MaxCharSize: LongWord;
DefaultChar: Array[0..MAX_DEFAULTCHAR-1] of Byte;
LeadByte: Array[0..MAX_LEADBYTES-1] of Byte;
UnicodeDefaultChar: WideChar;
CodePage: LongWord;
CodePageName: Array[0..MAX_PATH-1] of AnsiChar;
end;
CPINFOEXA = _cpinfoexA;
LPCPINFOEXA = ^CPINFOEXA;

_cpinfoexW = record
MaxCharSize: LongWord;
DefaultChar: Array[0..MAX_DEFAULTCHAR-1] of Byte;
LeadByte: Array[0..MAX_LEADBYTES-1] of Byte;
UnicodeDefaultChar: WideChar;
CodePage: LongWord;
CodePageName: Array[0..MAX_PATH-1] of WideChar;
end;
CPINFOEXW = _cpinfoexW;
LPCPINFOEXW = ^CPINFOEXW;

CPINFOEX = CPINFOEXA;
LPCPINFOEX = ^CPINFOEX;
yjbnew 2009-03-26
  • 打赏
  • 举报
回复
报错:Undeclared identifier: 'TCPInfoEx'
ahjoe 2009-03-26
  • 打赏
  • 举报
回复
用 GetOEMCP() 获取当前系统支持的非Unicode程序的字符编码。
ahjoe 2009-03-26
  • 打赏
  • 举报
回复
用 GetOEMCP() 获取当前系统支持的非Unicode程序的语种。
僵哥 2009-03-26
  • 打赏
  • 举报
回复

function GetCPInfoEx(CodePage: UINT;dwFlags: LongWord; var lpCPInfo: TCPInfoEx): BOOL; stdcall; external kernel32 name 'GetCPInfoExA';

function EnumLocalesProc(
lpLocaleString: PAnsiChar
): Boolean;stdcall;
var
CodePage: LongWord;

LocaleName: array[0..MAX_PATH] of char;
str: String;
lcp:TCPINFOEX;
begin
str := strpas(lpLocaleString);
CodePage := StrToInt( str);
GetCPInfoEx(CodePage,0,lcp);
//WriteLogThreadsafe('c:\Locals.txt',String(lcp.CodePageName)+#13#10);
ShowMessage(lcp.CodePageName);
Result := true;

end;

EnumSystemCodePages(@EnumLocalesProc,CP_SUPPORTED);
yjbnew 2009-03-26
  • 打赏
  • 举报
回复
晕,好像还是有点不对啊。
yjbnew 2009-03-26
  • 打赏
  • 举报
回复
我已经知道怎么弄了。thanks!
yjbnew 2009-03-26
  • 打赏
  • 举报
回复
谢谢,楼上。
不过好像注册表中的CODEPAGE比IE中的编码来的多很多啊?
比如日文,好像有5种。晕。
bdmh 2009-03-26
  • 打赏
  • 举报
回复
可以去访问注册表
[HKEY_CLASSES_ROOT\MIME\Database\Codepage]
下的每个节点的Description的值
baseyueliang 2009-03-26
  • 打赏
  • 举报
回复
研究下变量SysUtils.SysLocale

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧