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

Вниз

Имя ПК   Найти похожие ветки 

 
givi   (2008-12-02 15:40) [0]

скажите пожалуйста как определить имя ПК


 
Сергей М. ©   (2008-12-02 15:40) [1]

GetComputerName


 
givi   (2008-12-02 15:43) [2]

Пример можно! Как применить GetComputerName в коде?


 
KilkennyCat ©   (2008-12-02 15:49) [3]

написать


 
givi   (2008-12-02 15:55) [4]

написать


 
KilkennyCat ©   (2008-12-02 15:57) [5]

я не вопрос задавал.


 
stas ©   (2008-12-02 15:58) [6]

function GetComputerName: string;
var
N: Cardinal;
Buf: array [0..MAX_COMPUTERNAME_LENGTH + 1] of AnsiChar;
begin
N:=SizeOf(Buf)-1;
Windows.GetComputerName(Buf, N);
Result:=PChar(@Buf[0]);
end;


 
clickmaker ©   (2008-12-02 16:02) [7]

> [3] KilkennyCat ©   (02.12.08 15:49)
> написать
> [цитата]
>
> [4] givi   (02.12.08 15:55)
> написать

полностью согласен с предыдущими ораторами.
написать.


 
Anatoly Podgoretsky ©   (2008-12-02 16:19) [8]

> givi  (02.12.2008 15:43:02)  [2]

Настолько простая функция, что стыдно писать пример.


 
KilkennyCat ©   (2008-12-02 16:27) [9]


> stas ©


неверно.


 
Jeer ©   (2008-12-02 18:14) [10]


> что стыдно писать пример.


Мне не стыдно..Что там нужно описать ?


 
Leonid Troyanovsky ©   (2008-12-02 18:37) [11]


> KilkennyCat ©   (02.12.08 16:27) [9]

> неверно.

Скорее - неточно.

--
Regards, LVT.


 
clickmaker ©   (2008-12-02 18:50) [12]

> [6] stas ©   (02.12.08 15:58)

зачем все эти + и - ?

var buf: array[0..MAX_COMPUTERNAME_LENGTH] of char;

N := Sizeof(Buf);
GetComputerName(Buf, N);
SetString(Result, Buf, Length(Buf));


 
Сергей М. ©   (2008-12-02 18:52) [13]


> написать


насяльника ма !


 
Leonid Troyanovsky ©   (2008-12-02 18:54) [14]


> clickmaker ©   (02.12.08 18:50) [12]

> SetString(Result, Buf, Length(Buf));

SetString(Result, Buf, N);
Ну, и, там Win32Check.

--
Regards, LVT.


 
KilkennyCat ©   (2008-12-02 19:31) [15]


> Leonid Troyanovsky ©   (02.12.08 18:37) [11]
>


Не проверять результат выполнения функции - это будет "неточно", только пока все хорошо. А потом может резко стать "неверно".


 
Leonid Troyanovsky ©   (2008-12-02 19:49) [16]


> KilkennyCat ©   (02.12.08 19:31) [15]

> Не проверять результат выполнения функции - это будет "неточно",
>  только пока все хорошо. А потом может резко стать "неверно".

Я, во-ще-то, не против.
Просто, пока еще не понял, что можно сделать разрушительного
с пустым именем собс-ного компьютера .

С другой стороны: сегодня не почистил пуговицы, а завтра -
предал Родину :)

--
Regards, LVT.


 
Anatoly Podgoretsky ©   (2008-12-02 19:59) [17]


> Просто, пока еще не понял, что можно сделать разрушительного
> с пустым именем собс-ного компьютера

Переименовать, продать, наконец снять с безчувственного тела


 
blackman ©   (2008-12-02 21:33) [18]

С другой стороны: сегодня не почистил пуговицы, а завтра -
предал Родину :)

+1 :)


 
stas ©   (2008-12-02 22:01) [19]

KilkennyCat ©   (02.12.08 19:31) [15]
1. Я вобще-то не просил проверять корректность моей функции, а показал наглядный пример использования Win функции
2. Вот интересно, проверю я результат функции и если ошибка что должна вернуть моя функция?


 
Palladin ©   (2008-12-02 22:20) [20]

ничего. исключение возбудить.


 
{RASkov} ©   (2008-12-02 22:44) [21]

> что должна вернуть моя функция?

Бах!!!:) Прятать ошибки, пусть даже чужие, не хорошо...
А в итоге.... тут прямо про пуговицы отлично замечено))


 
stas ©   (2008-12-02 22:56) [22]

Palladin ©   (02.12.08 22:20) [20]
мне больше подходит пустота в имени чем исключение.


 
Palladin ©   (2008-12-02 23:04) [23]


> stas ©  (02.12.08 22:56) [22]

тогда смысла в этой функции - никакого. достаточно 2 строчек из [12] и одной переменной


 
{RASkov} ©   (2008-12-02 23:06) [24]

> [22] stas ©   (02.12.08 22:56)
> мне больше подходит пустота в имени чем исключение.

Ну как так??? Имя у ПК есть, а твоя функция возвращает пустую строку, при чем ничего не сказав, типа так и должно быть.... Не порядок и не правильно! :)


 
stas ©   (2008-12-02 23:11) [25]

{RASkov} ©   (02.12.08 23:06) [24]
Ну, а так :) не должна она ниче говорить.

Мне вот интересно в каком случае она выдаст ошибку ?
(этот вопрос не стоит относить к тому что я решил что она никогда не выдаст ошибку и решил не проверять, а то знаю вас)


 
stas ©   (2008-12-02 23:12) [26]

Palladin ©   (02.12.08 23:04) [23]
Я на идеальность не претендую ).


 
KilkennyCat ©   (2008-12-02 23:46) [27]


> stas ©

всего-то надо было добавить if GetComputerName(...) then ... else ...
Я, конечно, может слишком придирчив, но... тем более, если
> показал наглядный пример использования Win функции

я не злой. просто у меня самого все вкривь и вкось :)


 
stas ©   (2008-12-03 00:24) [28]

KilkennyCat ©   (02.12.08 23:46) [27]
Я то понял if, else... а что в else писать то? исключение меня не устраивает, а если кому надо сам допишет. :))


 
{RASkov} ©   (2008-12-03 00:28) [29]

> а что в else писать то?

Показать, почему не получилось узнать имя ПК.... "Поднять виндовое мнение по этому поводу"...


 
Anatoly Podgoretsky ©   (2008-12-03 00:41) [30]

> stas  (02.12.2008 23:11:25)  [25]

Как думаешь для чего у функции второй параметр, а если он неправильный?
А если реестр не удастся прочитать.
А если имя неправильное.
А если буфер RO или вообще ерунда.


 
clickmaker ©   (2008-12-03 11:21) [31]

кстати, а в каком случае эта функция вернет ошибку? мне чего-то трудно представить...


 
clickmaker ©   (2008-12-03 11:25) [32]

> [31] clickmaker ©   (03.12.08 11:21)

а, не прочитал [30]
но какие-то нереальные ситуации. Если реестр не прочитать, это уже система начинает накрываться, тут не до имени компьютера -)


 
Anatoly Podgoretsky ©   (2008-12-03 11:55) [33]

> clickmaker  (03.12.2008 11:25:32)  [32]

Ну перечислены некоторые ситуации, ведь вопроса не учитывать реестр не было. Я чувствую, что не все ситуации учел. Может еще и вопросы связаные с Security и привелегиями.


 
Anatoly Podgoretsky ©   (2008-12-03 11:57) [34]


> но какие-то нереальные ситуации.

Что и первая нереальная?
Да только сегодня уже несколько раз встретил эту ситуацию.


 
clickmaker ©   (2008-12-03 12:00) [35]

> Что и первая нереальная?

реестр не прочитать?


 
Anatoly Podgoretsky ©   (2008-12-03 13:24) [36]

Первая -> Как думаешь для чего у функции второй параметр, а если он неправильный?


 
clickmaker ©   (2008-12-03 13:27) [37]

> [36] Anatoly Podgoretsky ©   (03.12.08 13:24)

а, это.
Ну считаем, что программер в кои-то веки все сделал правильно.
Я имел ввиду чисто системные ошибки


 
Anatoly Podgoretsky ©   (2008-12-03 13:42) [38]

Это stas то, смотрим код

var
N: Cardinal;
Buf: array [0..MAX_COMPUTERNAME_LENGTH + 1] of AnsiChar;
begin
N:=SizeOf(Buf)-1;
Windows.GetComputerName(Buf, N);
Result:=PChar(@Buf[0]);

Buf локальная переменная.
Теперь по размеру, размер заранее неизвестен, значит надо запросить у системы, для этого надо обработать ошибку или написать так, что бы ее не надо было обрабатывать в первый раз, а только в конечном запросе.



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

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

Наверх




Память: 0.55 MB
Время: 0.018 c
15-1227005376
Knight
2008-11-18 13:49
2009.01.18
Откуда это TKGSFormEdge?


2-1228492011
dbgrid
2008-12-05 18:46
2009.01.18
Как определить на какой строке грида нах-ся курсор?


15-1227442297
Slider007
2008-11-23 15:11
2009.01.18
С днем рождения ! 23 ноября 2008 воскресенье


2-1228735691
ekto
2008-12-08 14:28
2009.01.18
Получение сообщения, когда компонент не в фокусе...


15-1227425906
Solnce
2008-11-23 10:38
2009.01.18
форум загнивает