各位网友:
我有一个技术问题,就是如何在delphi中得到计算机的名字;我曾经用winsock控件得到了计算机的名字,在winme,win2000/xp下运行正常,可是在win98运行出错,另外,我不知道delphi中winsock是否要另外有控件或dll,activex等类东西,还是windows系统自带,我的系统里装有delphi6,和visual studio6这个控件原本在delphi的activex组件板上没有,是我加进去的。我不知道,这个控件来自何方,敬请各位网友,指点一二!
我有一个技术问题,就是如何在delphi中得到计算机的名字;我曾经用winsock控件得到了计算机的名字,在winme,win2000/xp下运行正常,可是在win98运行出错,另外,我不知道delphi中winsock是否要另外有控件或dll,activex等类东西,还是windows系统自带,我的系统里装有delphi6,和visual studio6这个控件原本在delphi的activex组件板上没有,是我加进去的。我不知道,这个控件来自何方,敬请各位网友,指点一二!
解决方案 »
- delphi的exe程序双击后没动静,但任务管理器中可以看到,但在任务栏中不显示也不显示程序窗体.这是怎么回事啊?
- 急救!关于Dll方面的疑问:装载了dll后,直接关闭主程序会报错...
- 关于DLL中调用数据库的问题
- 循环执行这个语句时出错,为什么
- 如何将openDialog打开的文件的内容显示在memo中?(急!)
- Delphi的记忆窗体位置、大小控件到哪里下载?
- 报表的QRmemo控件怎么和表里的Memo字段相连?
- delphi 菜鸟提问
- 如何解压AMD驱动安装包exe里的文件
- 关于ole的问题
- 有人知道上海金仕达多媒体有限公司这家公司吗?
- 请教如何判断SQLSERVER数据库表中的某个字段内有无记录?
GetComputerNameBOOL GetComputerName( LPTSTR lpBuffer, // address of name buffer
LPDWORD nSize // address of size of name buffer
);
var ComputerName: PChar; size: DWord;
begin
GetMem(ComputerName,255);
size:=255;
// 获取计算机名称
if GetComputerName(ComputerName,size)=False then
result:=''
else
result:=ComputerName;
FreeMem(ComputerName);
end;
ComputerName: PChar;
Size: DWORD;
begin
GetMem(ComputerName,255);
Size:=255;
GetComputerName(ComputerName,Size);
end;
ComputerName: PChar;
Size: DWORD;
begin
GetMem(ComputerName,255);
Size:=255;
GetComputerName(ComputerName,Size);
ShowMessage('计算机名:'+ComputerName);
end;
我已试过,可以win2000
计算机 Computer
+ 名 Name
-------------------------------------
得到计算机名 GetComputerName()
你们的方法在win98下是否行的通呢?在win2000下我的方法是取得win2000的系统变量,在msdn里有一个函数getv***(COMPUTERNAME)(抱歉,函数名我没有记全),在Delphi里对他进行了重载,可以得到计算机名,但在win98下,不行。GetComputerName(ComputerName,Size);这个函数,我也用过,可是都运行出错,报告内存某个地址不允许读写等等,不知是何原因!
感谢二位!
var
ComputerName: array[0..MAX_COMPUTERNAME_LENGTH + 1] of Char;
nSize: DWORD;
begin
nSize := MAX_COMPUTERNAME_LENGTH + 1;
FillChar(ComputerName, MAX_COMPUTERNAME_LENGTH, 0);
Windows.GetComputerName(ComputerName, nSize);
Result := ComputerName
end;