1.用wmi只能获取得到\\347BBF0D68704E9\root\cimv2:Win32_OperatingSystem.Name="Microsoft Windows XP Professional|C:\\WINDOWS|\\Device\\Harddisk0\\Partition1"
怎么才能得到如下信息
Microsoft Windows XP
Professional
版本2002
service pack32.提取系统用户名的WINDOWS API是哪个函数
怎么才能得到如下信息
Microsoft Windows XP
Professional
版本2002
service pack32.提取系统用户名的WINDOWS API是哪个函数
var
CNameBuffer : PChar;
fl_loaded : Boolean;
CLen : ^DWord;
username :string;
begin
GetMem(CNameBuffer,255);
New(CLen);
CLen^:= 255;
fl_loaded := GetUserName(CNameBuffer,CLen^);
if fl_loaded then
username := StrPas(CNameBuffer)
else
userName := 'UNKOWN';
FreeMem(CNameBuffer,255);
//getuser:=USERNAME;
showmessage(username);
myreg.RootKey:=HKEY_LOCAL_MACHINE;
if myreg.OpenKey('hardware\descriptionsystem\centralprocessor\0',false) then
memo1.lines.add(' CPU标识:
'+myreg.ReadString('VendorIdentifier'));
myreg.closekey;
if myreg.openkey('software\microsoft\ windows\currentversion',false) then
begin
memo1.lines.add(' windows版本: '+myreg.ReadString('Version'));
memo1.lines.add(' 版本号: '+myreg.ReadString('VersionNumber')+' '+myreg.ReadString('Subversionnumber'));
memo1.lines.add(' 产品标识: '+myreg.Readstring('ProductID'));
memo1.lines.add('注册单位名称: '+myreg.readstring('RegisteredOrganization'));
memo1.lines.add(' 注册用户名: '+myreg.readstring('RegisteredOwner'));
end;
myreg.CloseKey;
myreg.Free;
网上找的
var
vHandle: THandle;
i:integer;
arr: array[0..254] of Char;
begin
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL SysDm.cpl,,0', SW_hide);
vhandle:=findwindow('#32770',pchar('系统属性'));
ShowWindow(vhandle,SW_hide);
vHandle := FindWindowEx(vHandle, 0, '#32770', nil);
vHandle := FindWindowEx(vHandle, 0, 'Static', pchar('Microsoft Windows XP'));
GetWindowText(vHandle, @arr, SizeOf(arr));
showmessage(arr);
vhandle:=findwindow('#32770',pchar('系统属性'));
ShowWindow(vhandle,SW_show);
end;
你试试看吧,不行再提出来,我尽力地给你改,也看看自己到底学d的程度
function GetButtonHandle(hwnd: Integer; lparam: Longint):Boolean; stdcall;
var
buffer: array[0..255] of Char;
begin
Result := True;
GetClassName(hwnd,buffer,256);
if strpas(Buffer)='Static' then
begin
GetWindowText(hwnd,buffer,100);
if buffer<>'' then
begin
form1.Memo1.Lines.Add(buffer);
end;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
vHandle: THandle;
begin
WinExec('RunDLL32.exe Shell32.dll,Control_RunDLL SysDm.cpl,,0', SW_hide);
vhandle:=findwindow('#32770',pchar('系统属性'));
ShowWindow(vhandle,SW_hide);
vHandle := FindWindowEx(vHandle, 0, '#32770', nil);
if vHandle <> 0 then
begin
EnumChildWindows(vHandle,@GetButtonHandle,Integer(@vHandle));
vhandle:=findwindow('#32770',pchar('系统属性'));
sendmessage(vhandle,wm_close,0,0);
end;
end;
wmic os get caption,servicepackmajorversion
wmic cpu get name
if myreg.OpenKey('hardware\descriptionsystem\centralprocessor\0',false) then
这一行应该修改成:
if myreg.OpenKey('hardware\description\system\centralprocessor\0',false) then
begin
memo1.lines.add(' windows版本:'+myreg.ReadString('Version'));
memo1.lines.add(' 版本号:'+myreg.ReadString('VersionNumber')+''+myreg.ReadString('Subversionnumber'));
memo1.lines.add(' 产品标识:'+myreg.Readstring('ProductID'));
memo1.lines.add('注册单位名称:'+myreg.readstring('RegisteredOrganization'));
memo1.lines.add(' 注册用户名:'+myreg.readstring('RegisteredOwner'));
end;
myreg.CloseKey;
myreg.Free; 这些你们能找到吗?我是找不到?
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,registry;type
TForm1 = class(TForm)
Memo1: TMemo;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
var myreg:Tregistry;begin
memo1.Clear;
myreg:=Tregistry.Create;
myreg.RootKey:=HKEY_LOCAL_MACHINE;
if myreg.OpenKey('hardware\description\system\centralprocessor\0',false) then
memo1.lines.add('CPU型号:'+myreg.ReadString('ProcessorNameString'));
myreg.closekey;
if myreg.openkey('SOFTWARE\Microsoft\Windows NT\CurrentVersion\',false) then
begin
memo1.lines.add(' windows版本: '+myreg.ReadString('ProductName'));
memo1.lines.add(' 版本号: '+myreg.ReadString('CSDVersion')+' '+myreg.ReadString('Subversionnumber'));
memo1.lines.add(' 产品标识: '+myreg.Readstring('ProductID'));
memo1.lines.add('注册单位名称: '+myreg.readstring('RegisteredOrganization'));
memo1.lines.add(' 注册用户名: '+myreg.readstring('RegisteredOwner'));
end;
myreg.CloseKey;
myreg.Free;
end;end.
除了 Professional
版本2002
其它的能找到
应该是“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion