![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Имя ПК [D7, XP]
givi © (2008-12-02 15:40:00)скажите пожалуйста как определить имя ПК
Anatoly Podgoretsky (2008-12-03 13:42:00) [1]Это 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 локальная переменная.
Теперь по размеру, размер заранее неизвестен, значит надо запросить у системы, для этого надо обработать ошибку или написать так, что бы ее не надо было обрабатывать в первый раз, а только в конечном запросе.
clickmaker (2008-12-03 13:27:00) [2]> [36] Anatoly Podgoretsky © (03.12.08 13:24)
а, это.
Ну считаем, что программер в кои-то веки все сделал правильно.
Я имел ввиду чисто системные ошибки
Anatoly Podgoretsky (2008-12-03 13:24:00) [3]Первая -> Как думаешь для чего у функции второй параметр, а если он неправильный?
clickmaker (2008-12-03 12:00:00) [4]> Что и первая нереальная?
реестр не прочитать?
Anatoly Podgoretsky (2008-12-03 11:57:00) [5]
> но какие-то нереальные ситуации.
Что и первая нереальная?
Да только сегодня уже несколько раз встретил эту ситуацию.
Anatoly Podgoretsky (2008-12-03 11:55:00) [6]> clickmaker (03.12.2008 11:25:32) [32]
Ну перечислены некоторые ситуации, ведь вопроса не учитывать реестр не было. Я чувствую, что не все ситуации учел. Может еще и вопросы связаные с Security и привелегиями.
clickmaker (2008-12-03 11:25:00) [7]> [31] clickmaker © (03.12.08 11:21)
а, не прочитал [30]
но какие-то нереальные ситуации. Если реестр не прочитать, это уже система начинает накрываться, тут не до имени компьютера -)
clickmaker (2008-12-03 11:21:00) [8]кстати, а в каком случае эта функция вернет ошибку? мне чего-то трудно представить...
Anatoly Podgoretsky (2008-12-03 00:41:00) [9]> stas (02.12.2008 23:11:25) [25]
Как думаешь для чего у функции второй параметр, а если он неправильный?
А если реестр не удастся прочитать.
А если имя неправильное.
А если буфер RO или вообще ерунда.
{RASkov} (2008-12-03 00:28:00) [10]> а что в else писать то?
Показать, почему не получилось узнать имя ПК.... "Поднять виндовое мнение по этому поводу"...
stas (2008-12-03 00:24:00) [11]KilkennyCat © (02.12.08 23:46) [27]
Я то понял if, else... а что в else писать то? исключение меня не устраивает, а если кому надо сам допишет. :))
KilkennyCat (2008-12-02 23:46:00) [12]
> stas ©
всего-то надо было добавить if GetComputerName(...) then ... else ...
Я, конечно, может слишком придирчив, но... тем более, если
> показал наглядный пример использования Win функции
я не злой. просто у меня самого все вкривь и вкось :)
stas (2008-12-02 23:12:00) [13]Palladin © (02.12.08 23:04) [23]
Я на идеальность не претендую ).
stas (2008-12-02 23:11:00) [14]{RASkov} © (02.12.08 23:06) [24]
Ну, а так :) не должна она ниче говорить.
Мне вот интересно в каком случае она выдаст ошибку ?
(этот вопрос не стоит относить к тому что я решил что она никогда не выдаст ошибку и решил не проверять, а то знаю вас)
{RASkov} (2008-12-02 23:06:00) [15]> [22] stas © (02.12.08 22:56)
> мне больше подходит пустота в имени чем исключение.
Ну как так??? Имя у ПК есть, а твоя функция возвращает пустую строку, при чем ничего не сказав, типа так и должно быть.... Не порядок и не правильно! :)
Palladin (2008-12-02 23:04:00) [16]
> stas © (02.12.08 22:56) [22]
тогда смысла в этой функции - никакого. достаточно 2 строчек из [12] и одной переменной
stas (2008-12-02 22:56:00) [17]Palladin © (02.12.08 22:20) [20]
мне больше подходит пустота в имени чем исключение.
{RASkov} (2008-12-02 22:44:00) [18]> что должна вернуть моя функция?
Бах!!!:) Прятать ошибки, пусть даже чужие, не хорошо...
А в итоге.... тут прямо про пуговицы отлично замечено))
Palladin (2008-12-02 22:20:00) [19]ничего. исключение возбудить.
stas (2008-12-02 22:01:00) [20]KilkennyCat © (02.12.08 19:31) [15]
1. Я вобще-то не просил проверять корректность моей функции, а показал наглядный пример использования Win функции
2. Вот интересно, проверю я результат функции и если ошибка что должна вернуть моя функция?