Форум: "Начинающим";
Текущий архив: 2009.01.18;
Скачать: [xml.tar.bz2];
ВнизИмя ПК Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.53 MB
Время: 0.008 c