|
Как определить разрядность ОС штатными методами без ВК, COM и set>xxx ? | ☑ | ||
---|---|---|---|---|
0
smaharbA
16.10.13
✎
03:15
|
Есть ли встроенный метод определения разрядности ОС при работе с x86 платформой в файловом варианте ?
Методы типа Вычислить("Новый Файл(""C:\windows\syswow64"")").Существует() не подходит по ряду критериев. |
|||
1
smaharbA
16.10.13
✎
03:19
|
+ хотя конечно, определив диск(и) с наличием характерного пути к каталогу - будет резервным методом, после штатного (если таковой имеется), COM-объектом и ЗапускПриложения("cmd /q /c set...
|
|||
2
mistеr
16.10.13
✎
04:00
|
Очевидно, что нет и не положено. Учетные функции не должны зависеть от разрядности оси.
Пусть то, для запуска чего надо это знать, само определяет. |
|||
3
smaharbA
16.10.13
✎
07:48
|
(2) а нафига тогда положено знать разрядность платформы ?
|
|||
4
Necessitudo
16.10.13
✎
08:13
|
СистемнаяИнформация.ТипПлатформы?
|
|||
5
banco
16.10.13
✎
08:16
|
СисИнфо = Новый СистемнаяИнформация;
Сообщить(СисИнфо.ВерсияОС); |
|||
6
smaharbA
16.10.13
✎
09:42
|
(5)
Вычислить("Новый СистемнаяИнформация").ВерсияОС version 6.2 (Build 9200) какая разрядность ? |
|||
7
dmpl
16.10.13
✎
09:46
|
(6) ТипПлатформы юзай.
|
|||
8
Serg_1960
16.10.13
✎
09:49
|
КаталогПрограммы, КаталогВременныхФайлов - не комильфо.
|
|||
9
smaharbA
16.10.13
✎
09:55
|
(7)
Вычислить("Новый СистемнаяИнформация").ТипПлатформы Windows x86 тем не менее windows 2012 |
|||
10
smaharbA
16.10.13
✎
09:55
|
КаталогПрограммы конечно даст намек
|
|||
11
Serg_1960
16.10.13
✎
10:09
|
Из старых запасов :)
КомандаСистемы("@echo %os%>"+КаталогПользователя()+"os.txt"); |
|||
12
hhhh
16.10.13
✎
10:24
|
(10) регистр сведений заведи, чего ты паришься? Измерение "ИмяКомпьютера", ресурс "Разрядность". Всё.
|
|||
13
Kandellaster
16.10.13
✎
10:29
|
взять разрядность можно из WMI посредством того же VBS или PowerShell, а динамически запустить внутри кода скрипт и получить ответ от него проблем нет.
|
|||
14
smaharbA
16.10.13
✎
10:29
|
(11) как бы в сабже написано о нежелании подобного, правильнее тогда так
ЗапуститьПриложение("cmd /q /c if defined PROCESSOR_ARCHITEW6432 mkdir .",,Истина,КодВозврата); Сообщить(КодВозврата); (12) я не знаю с каких компьютеров заходят, да и ос вполне так меняема |
|||
15
smaharbA
16.10.13
✎
10:29
|
(13) Вы сабж читали ?
|
|||
16
hhhh
16.10.13
✎
10:33
|
(14) как не знаешь с каких компьютеров?
ИмяКомпьютера (ComputerName) Синтаксис: ИмяКомпьютера() Возвращаемое значение: Тип: Строка. Сетевое имя компьютера. Описание: Получает сетевое имя компьютера. Доступность: Тонкий клиент, сервер, толстый клиент, внешнее соединение. |
|||
17
Зойч
16.10.13
✎
10:33
|
(9) На клиенте всегда 32 бита
|
|||
18
Питерский_
Никола 16.10.13
✎
10:39
|
(17) ОСь может быть и 64 разряда, почему нет ? В сабже иммено разрядность ОСи интересна.
|
|||
19
le_
16.10.13
✎
10:44
|
(0) C пом. COM:
ИмяКомпьютера = ".";
|
|||
20
Зойч
16.10.13
✎
10:53
|
(18) ибо тип ПЛАТФОРМЫ. Только сервер может быть x64
|
|||
21
smaharbA
16.10.13
✎
10:53
|
(19) это однозначно говорит о разрядности системы ?
(да и в сабже как бы о внутренних механизмах приложения) так то методов масса, один из простых и вполне достоверных, возвращать значение будет не по наличию или отсутствию какого либо каталога или значения Не Вычислить("Новый COMОбъект(""shell.application"")").Namespace(41)=Неопределено |
|||
22
smaharbA
16.10.13
✎
10:54
|
(20) см (7)
|
|||
23
Зойч
16.10.13
✎
10:54
|
(11) @echo %os% = Windows_NT
|
|||
24
Зойч
16.10.13
✎
10:56
|
Не раскрыт вопрос ЗАЧЕМ
|
|||
25
smaharbA
16.10.13
✎
10:59
|
(19)
Вычислить("Новый COMОбъект(""wscript.shell"")").RegRead("HKLM\HARDWARE\DESCRIPTION\System\CentralProcessor\0\Identifier") Intel64 Family 6 Model 42 Stepping 7 как тут понять, что ОС, или даже сам процессор 64-х разрядный ? |
|||
26
smaharbA
16.10.13
✎
10:59
|
(24) к автору это вопрос не относятся
|
|||
27
Зойч
16.10.13
✎
11:00
|
Все таки уже ком подходит?
|
|||
28
smaharbA
16.10.13
✎
11:01
|
Для сервера и наверное для вебклиента есть вариант с ComSafeArray, для толстого не подходит
|
|||
29
smaharbA
16.10.13
✎
11:01
|
(27) нет, нежелателен, в сабже об этом указано
|
|||
30
smaharbA
16.10.13
✎
11:02
|
как комом и прочим определить именно однозначно довольно просто
|
|||
31
Зойч
16.10.13
✎
11:02
|
(29) и тут же начинают все перебирать разные комы ))
|
|||
32
Лефмихалыч
16.10.13
✎
11:02
|
(3) кому положено?
|
|||
33
smaharbA
16.10.13
✎
11:03
|
(31) через пост и поясняю - нужен внутренний механизм программы (
|
|||
34
Зойч
16.10.13
✎
11:03
|
(32) разрядность платформы нужно знать. Ибо компоненты под разные разрядности- разные
|
|||
35
Зойч
16.10.13
✎
11:03
|
(33) ну тебе сказали что нету
|
|||
36
Лефмихалыч
16.10.13
✎
11:03
|
зачем это надо определять вообще?
|
|||
37
smaharbA
16.10.13
✎
11:04
|
(32) для чего
СистемнаяИнформация.ТипПлатформы ? |
|||
38
le_
16.10.13
✎
11:04
|
(33) Зачем именно внутренний механизм? Брезгуешь системными COM-серверами?..
|
|||
39
Лефмихалыч
16.10.13
✎
11:04
|
(34) не использовать гогнокопоненты, которые то работают, то нет - ниварянт?
|
|||
40
smaharbA
16.10.13
✎
11:04
|
(38) нет, не брезгую
|
|||
41
Лефмихалыч
16.10.13
✎
11:05
|
(37) ояипу?.. ни когда не понимал
|
|||
42
Зойч
16.10.13
✎
11:05
|
Если пишешь какую то хрень, то почему бы не юзать ком, вк и прочую лабуду.
А если пишешь что-то нормальное, то не должно зависеть |
|||
43
Зойч
16.10.13
✎
11:05
|
(39) Пичать штрихкодов - гогнокомпонента или нет?
|
|||
44
Лефмихалыч
16.10.13
✎
11:06
|
(43) если ей не пох на разрядность, то гогнокомпонента
|
|||
45
Зойч
16.10.13
✎
11:07
|
(44) как может быть пох? Приведи хоть один пример такой компонетны
|
|||
46
le_
16.10.13
✎
11:08
|
(25) Проц. - по цифирьке 64 после Intel.
|
|||
47
smaharbA
16.10.13
✎
11:08
|
с ком-массивом все просто пробуем поставить VT_UI8 и задать значение, но это думается будет работать только на сервере или еще в какм вебе
|
|||
48
smaharbA
16.10.13
✎
11:08
|
(46) проц ладно, хотя не факт, а ОС ?
|
|||
49
dmpl
16.10.13
✎
11:12
|
(34) А что, 64-битный сервер работает с 32-битным клиентом?
|
|||
50
smaharbA
16.10.13
✎
11:12
|
проверьте на сервере у кого 64-х
код типа Массив=Новый COMSafeArray("VT_UI8",1); Попытка Массив.SetValue(0,0); Это64=Истина; Исключение Это64=Ложь; КонецПопытки; и такой Массив=Новый COMSafeArray("VT_UINT",1); Попытка Массив.SetValue(0,Pow(2,64)-1); Это64=Истина; Исключение Это64=Ложь; КонецПопытки; |
|||
51
dmpl
16.10.13
✎
11:13
|
(46) А если на VIA запустят?
|
|||
52
smaharbA
16.10.13
✎
11:19
|
(49) а разве нет ?
|
|||
53
le_
16.10.13
✎
11:20
|
(51) У меня нет VIA, чтобы попробовать.
В любом случае, это можно сделать с пом. COM. И гугл выдаст несколько различных вариантов. И по архитектуре процессора и по разрядности платформы. Например, еще вариант: MsgBox CreateObject("WScript.Shell").Environment("System")("PROCESSOR_ARCHITECTURE") |
|||
54
smaharbA
16.10.13
✎
11:24
|
(53) и вернет x86, нужно несколько иначе PROCESSOR_ARCHITEW6432
|
|||
55
Serg_1960
16.10.13
✎
11:40
|
Не в курсе, сильно ногами не пинайте.
А может быть так, что пользователю урежут права и проблемно станет запускать скрипты, вызывать ком-ы и читать ветки реестра? Тогда smaharbA может пролететь даже с "правильным" кодом проверки разрядности... |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |