Помощь - Поиск - Пользователи - Календарь
Полная версия: Как узнать имя компьютера
Форум «Всё о Паскале» > Pascal, Object Pascal > Теоретические вопросы
Bokul
Можна ли узнать имя компьютера через стандартны функции
и процедуры Паскале, если да, то как? unsure.gif
volvo
Во-первых, какое "имя компьютера", а во вторых - через процедуры/функции какого Паскаля? Компилятор какой у тебя?
Bokul
имя компьютера - Full Computer Name, а компилятор - Turbo Pascal 7
volvo
С TP7 - забудь об этом... Для того, чтобы "достать" Full Computer Name, надо обращаться к WinAPI, а это возможно только начиная с Borland Pascal (ну, и все, что после него - все 32-битные компиляторы)
Bokul
тогда с помощя какой WinAPi функции можна достать его?
volvo
uses windows;

function ReadComputerName: string;
var
i: DWord;
p: PChar;
begin
i := 255;
GetMem(p, i);
GetComputerName(p, i); { <--- Вот этой !!! }
result := string(p);
FreeMem(p);
end;

begin
WriteLn( ReadComputerName );
end.
Bokul
А модуля Windows нет для BP7
Ozzя
Код приведен НЕ для bp. Для fpc скорее всего.
Bokul
я все-таки нашел какой функцией можна узнать имя компа blum.gif .
В Dos Unit есть одна функция getenv(string) которая возвращает
содержымое заданой переменой среды. Одна с етих переменных
ето computername, ну а если написать
Код

write(getenv('computername'))

то получим Full Computer Name

используя ету функцию, а также EnvStr(Index: Integer): string и
EnvCount: Integer можна также найти другую инфу о компе

Например, с помощью етого кода
Код

uses dos;
var i:integer;
begin
for i:=1 to envcount do
writeln(envstr);
end.


я нашел ето
Цитата

COMSPEC=C:\WINDOWS\SYSTEM32\COMMAND.COM
ALLUSERSPROFILE=C:\DOCUME~1\ALLUSE~1
APPDATA=C:\DOCUME~1\Bohdan\APPLIC~1
CLIENTNAME=Console
COMMONPROGRAMFILES=C:\PROGRA~1\COMMON~1
COMPUTERNAME=BOHDAN
FP_NO_HOST_CHECK=NO
HOMEDRIVE=C:
HOMEPATH=\Documents and Settings\Bohdan
LOGONSERVER=\\BOHDAN
NUMBER_OF_PROCESSORS=1
OS=Windows_NT
PATH=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\PROGRA~1\ATITEC~1\ATICON~1;C:\PROGRA~1\ATITEC~1\ATI.ACE\
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH
PROCESSOR_ARCHITECTURE=x86
PROCESSOR_IDENTIFIER=x86 Family 6 Model 8 Stepping 1, AuthenticAMD
PROCESSOR_LEVEL=6
PROCESSOR_REVISION=0801
PROGRAMFILES=C:\PROGRA~1
PROMPT=$P$G
SESSIONNAME=Console
SYSTEMDRIVE=C:
SYSTEMROOT=C:\WINDOWS
TEMP=C:\WINDOW
FreeMan
а по идее 16бит - это ДОС в идеале. есть ли там эта строка
Цитата
COMPUTERNAME=BOHDAN
?
Bokul
я проверял на своем компе, все сработало.
Вся цитата ето вся инфа что ета програмка нашла об
моем компе yes2.gif
volvo
Bokul, ты думаешь, твоя программа универсальна?

У меня, например, в списке переменных окружения НЕТ переменной "COMPUTERNAME=", да и не только у меня... Чтоб она там была, ее надо добавить !!! А я этого не делаю. И что это значит? То, что твоя программа просто провалится на таком компьютере (выдаст тебе в лучшем случае пустую строку)... blum.gif
FreeMan
да и вообще нехорошо это из-под 16бит пытаться в 32 лезть
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.