Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.02;
Скачать: CL | DM;

Вниз

В чем разница?   Найти похожие ветки 

 
YurikGl ©   (2004-03-07 11:54) [0]

Не пойму, где меня кидают.

var
st:shortString;
Buffer1,buffer2:array[0..255] of char;
size:dword;

begin
st:="STable"+IntToStr(random(10000));
size:=255;

далее
1-й вариант
if GetUserName(buffer1,size) then st:=st+string(buffer1)
                           else st:=st+IntToStr(random(10000));
if GetComputerName(buffer1, size) then st:=st+string(buffer1)
                                else st:=st+IntToStr(random(10000));

2-й вариант
if GetComputerName(buffer1, size) then st:=st+string(buffer1)
                                else st:=st+IntToStr(random(10000));
if GetUserName(buffer1,size) then st:=st+string(buffer1)
                           else st:=st+IntToStr(random(10000));

Ну дык вот. В первом случае функции GetUserName и  GetComputerName возвращают true и соответсвенно, необходимые имена, а во втором случае GetUserName возвращает false.


 
Anatoly Podgoretsky ©   (2004-03-07 12:00) [1]

Имя компьютера короче имени пользователся.


 
YurikGl ©   (2004-03-07 12:03) [2]

И что?


 
YurikGl ©   (2004-03-07 12:13) [3]

А если имя компьютера окажется длиннее имени пользователя? Каждый раз проверять что-ли? И выполнять операторы в разной последовательности?


 
Anatoly Podgoretsky ©   (2004-03-07 12:26) [4]

А то что в этом случает ты не сможешь получить имя пользователся, будет облом.

Проверять не надо, надо писать правильно, устанавливать size в правильное значение перед вызовом функции!

И не заьывай, что есть MAX_COMPUTERNAME_LENGTH, а не 255

Кроме того не мешало бы проверять на ошибки и выдавать соответствующее сообщение


 
YurikGl ©   (2004-03-07 12:37) [5]

Функция была взята с
http://delphimaster.net/view/6-1075699593/

Спасибо, заработал следующий код.

size:=MAX_COMPUTERNAME_LENGTH;
if GetComputerName(buffer, size) then st:=st+string(buffer)
                                else st:=st+IntToStr(random(10000));
size:=120;
if GetUserName(buffer,size) then st:=st+string(buffer)
                           else st:=st+IntToStr(random(10000));

Мне только не совсем понятно, что происходило. Что менялось после вызова GetComputerName? Неужели size?


 
YurikGl ©   (2004-03-07 12:43) [6]

Точно size поменялся. Спасибо.



Страницы: 1 вся ветка

Текущий архив: 2004.05.02;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.027 c
14-1081534040
AndersoNRules
2004-04-09 22:07
2004.05.02
Please Help! ya tut s drugom posporil shto on moyu progu v asme..


8-1075561020
GrayFace
2004-01-31 17:57
2004.05.02
Как убрать(и восстановить) звук в системе?


6-1078374290
leosan
2004-03-04 07:24
2004.05.02
Функции преобразования IP адреса в имя компьютера


1-1081938491
metalfan
2004-04-14 14:28
2004.05.02
"нажать" кнопу в чужом окне...


3-1081198658
Dionnis
2004-04-06 00:57
2004.05.02
Подключение dbf файлов через ADO с поддержкой SQL