如题,谢谢!
解决方案 »
- delphi 窗体重新构建或者说是恢复到刚打开时的样子
- syneditor如何设置高亮语法
- aacess 数据库的时间比较问题?
- 怎样把一个字符串如“20050102030405”转换成TDBDateTimeEditEh控件显示出来的值?
- 用QReport控件制作报表,在报表预览时,能不能对其某些字段字体进行动态修改
- 介绍一个开发人员技术知识库网站,刚增加仿csdn的论坛,欢迎大家来看看,up有分拿阿
- 问一个菜鸟问题
- 手机被偷了,呜……
- 请教有关SQL SERVER 7.0数据库的启动问题?
- 给我这个后来者说说 DELPHI 怎么能够快速入门??
- 如何把adoquery中的数据保存成txt格式?
- 为什么第一次执行查询窗口没有显示结果?
如果用sql语句怎样实现呢?
begin
shwomessage(GetComputerName);
end;
var
wVersionRequested : WORD;
wsaData : TWSAData;
p : PHostEnt;
s : array[0..128] of char;
p2 : pchar;
begin
{启动 WinSock}
wVersionRequested := MAKEWORD(1, 1);
WSAStartup(wVersionRequested, wsaData);{计算机名}
GetHostName(@s, 128);
p := GetHostByName(@s);
ShowMessage(Format('Computer name is ''%s''.', [p^.h_Name]));{IP地址}
p2 := iNet_ntoa(PInAddr(p^.h_addr_list^)^);
ShowMessage(Format('IP address is %s.',[p2]));WSACleanup;
end;
var
WSAData: TWSAData;
HostEnt: PHostEnt;
begin
{ no error checking...}
WSAStartup(2, WSAData);
SetLength(Name, 255);
Gethostname(PChar(Name), 255);
SetLength(Name, StrLen(PChar(Name)));
HostEnt := gethostbyname(PChar(Name));
with HostEnt^ do
Address := Format('%d.%d.%d.%d',[
Byte(h_addr^[0]),
Byte(h_addr^[1]),
Byte(h_addr^[2]),
Byte(h_addr^[3])]);
WSACleanup;
end;
BOOL GetComputerName( LPTSTR lpBuffer, // address of name buffer
LPDWORD nSize // address of size of name buffer
);lpBuffer :
Pointer to a buffer that receives a null-terminated string containing the computer name. The buffer size should be large enough to contain MAX_COMPUTERNAME_LENGTH + 1 characters
var
CNameBuffer: PChar;
fl_loaded: Boolean;
CLen: ^DWord;
begin
GetMem(CNameBuffer, 255);
New(CLen);
CLen^ := 255;
fl_loaded := GetComputerName(CNameBuffer, CLen^);
if fl_loaded then
result := StrPas(CNameBuffer)
else
result := 'unkw';
FreeMem(CNameBuffer, 255);
Dispose(CLen);
wf_getcomputerName := result;
end;
begin
len:=30;
getmem(name,30);
getcomputername(name,len);
showmessage(name);
end;
begin
len:=30;
getmem(name,30);
getcomputername(name,len);
showmessage(name);
end;
或者
procedure TFrmLogin.FormCreate(Sender: TObject);
var
Reg:TRegistry;
HostName:array[1..32] of char;
WSData:TWSAData;
begin
if EdtServer.text='' then
begin
if WSAStartup(2,WSData)<>0 then
application.MessageBox('无法初始化WINSOCK!','登录信息',Gstitle)
else
begin
try
if gethostname(@hostname[1],32)<>0 then
application.MessageBox('无法获取本机名!','登录信息',Gstitle)
else
EdtServer.text:=hostName;
except
application.MessageBox('无法获取本机名!','登录信息',Gstitle);
end;
end;
end;end;
function TForm1.computername:string;
var
CNameBuffer : PChar;
fl_loaded : Boolean;
CLen : ^DWord;
begin
GetMem(CNameBuffer,255);
New(CLen);
CLen^:= 255;
fl_loaded := GetComputerName(CNameBuffer,CLen^);
if fl_loaded then
ComputerName := StrPas(CNameBuffer)
else
ComputerName := 'Unkown';
FreeMem(CNameBuffer,255);
Dispose(CLen);
end;procedure TForm1.Button3Click(Sender: TObject);
begin
showmessage('本机名为:'+computername);
end;
用LocalName属性就轻松得到了,试试吧别的有类似属性的控件都可以实现