|
Как понять, что код выполняется в 64-битной ОС? | ☑ | ||
---|---|---|---|---|
0
TormozIT
гуру
11.06.15
✎
16:21
|
СистемнаяИнформация.ТипПлатформы дает разрядность процесса, но не операционной системы. Как узнать разрядность операционной системы?
|
|||
1
Волшебник
модератор
11.06.15
✎
16:23
|
Проверь наличие папки Program Files (x86)
Если она есть, значит 64 бит, иначе 32 бит |
|||
2
Asmody
11.06.15
✎
16:27
|
(1) Особенно в linux актуально
|
|||
3
qeos
11.06.15
✎
16:28
|
(2) да и на чем надо проверить непонятно
|
|||
4
TormozIT
гуру
11.06.15
✎
16:30
|
Мне только Windows платформа интересна
|
|||
5
TormozIT
гуру
11.06.15
✎
16:30
|
(1) Не факт. Ее могли забыть удалить просто.
|
|||
6
DS
11.06.15
✎
16:35
|
Скрипты подойдут?
http://forum.oszone.net/thread-172610.html |
|||
7
vde69
11.06.15
✎
16:36
|
WMI тебе в помощь
|
|||
8
ДенисЧ
11.06.15
✎
16:36
|
(7) на линуксе...
|
|||
9
Кай066
11.06.15
✎
16:37
|
SysWoW64 поискать можно
|
|||
10
TormozIT
гуру
11.06.15
✎
16:37
|
(7) WMI решение конечно, но ради такой простой задачи не хочется накладные расходы WMI нести. Все таки WMI не очень быстрая штука.
|
|||
11
TormozIT
гуру
11.06.15
✎
16:39
|
(6) Нет. Скрипты не все поймут и отлаживать сложно.
|
|||
12
TormozIT
гуру
11.06.15
✎
16:40
|
(9) Если ты про папку, то изучение файловой системы не кажется надежным способом. Смотри (5)
|
|||
13
vde69
11.06.15
✎
16:41
|
(10) засунь в модуль повторного использования...
а по поводу накладных расходов - грамотный запрос резко ускоряет WMI |
|||
14
Кай066
11.06.15
✎
16:41
|
(12) при установке новой винды старая переносится в папку old, так что старой папки в рабочем каталоге Windows не будет
|
|||
15
vde69
11.06.15
✎
16:42
|
(14) если у меня установлено несколько OS на один винт ???
|
|||
16
Кай066
11.06.15
✎
16:42
|
C:\Windows\SysWOW64\ не может оказать с 32шной винде, если только её специально туда не положили
|
|||
17
Кай066
11.06.15
✎
16:43
|
(15) то ты рукозадый админ
|
|||
18
TormozIT
гуру
11.06.15
✎
16:57
|
(13) Ок. Сделал примерно так
мWMI = КэшКонтекстаИис.ПолучитьСлужбуWMIИис(Компьютер); КоллекцияОС = мWMI.InstancesOf("Win32_OperatingSystem"); Для каждого лОС Из КоллекцияОС Цикл Прервать; КонецЦикла; Результат = лОС.OSArchitecture = "64-bit"; |
|||
19
TeMochkiN
11.06.15
✎
17:10
|
(18) я точно не помню, но кажется, свойство OSArchitecture зависит от региональных настроек, т.е. там вполне может оказаться "64-бит"
|
|||
20
TormozIT
гуру
11.06.15
✎
17:12
|
(19) Ты прав. Лучше подстраховаться.
мWMI = КэшКонтекстаИис.ПолучитьСлужбуWMIИис(Компьютер); ИмяКласса = "Win32_OperatingSystem"; КоллекцияОС = мWMI.InstancesOf(ИмяКласса); Для каждого лОС Из КоллекцияОС Цикл Прервать; КонецЦикла; Результат = Лев(лОС.OSArchitecture, 2) = "64"; |
|||
21
Serginio1
11.06.15
✎
17:13
|
https://msdn.microsoft.com/Ru-ru/library/system.environment.is64bitoperatingsystem(v=vs.110).aspx
Environment.Is64BitOperatingSystem |
|||
22
TormozIT
гуру
11.06.15
✎
17:15
|
(21) Как это прочитать в 1С?
|
|||
23
Aprobator
11.06.15
✎
17:16
|
ТипПлатформы тебе в помощь. Читается в СП по 8.2 на раз )
|
|||
24
Гёдза
11.06.15
✎
17:18
|
Для винды - ver
|
|||
25
Aprobator
11.06.15
✎
17:19
|
|
|||
26
Aprobator
11.06.15
✎
17:20
|
а блин, когда я научусь до конца топик читать?
|
|||
27
Serginio1
11.06.15
✎
17:21
|
||||
28
Гёдза
11.06.15
✎
17:21
|
Свойство AddressWidth класса WMI Win32_Processor определяет текущий режим работы процессора. На 32-разрядной операционной системе Win32_Processor.AddressWidth бы 32; в 64-разрядной операционной системе Win32_Processor.AddressWidth бы 64.
|
|||
29
Aprobator
11.06.15
✎
17:21
|
А в версии ОС - разрядность не присутствует случаем?
|
|||
30
TeMochkiN
11.06.15
✎
17:23
|
(27) зачем так извращаться? тем более доступно лишь начиная с четвертого фреймворка. не у всех же он может быть установлен.
|
|||
31
Serginio1
11.06.15
✎
17:23
|
врап=СоздатьОбъект("NetObjectToIDispatch45");
Это64=Врап.ПолучитьТип("System.Environment").Is64BitOperatingSystem; |
|||
32
Злопчинский
11.06.15
✎
19:46
|
а если на 64бит развернута 32бит виртуальная машина...? что показывать в виртмашине?
|
|||
33
mehfk
11.06.15
✎
19:55
|
(0) В качестве догадки: на Win x64 16-битное приложение не запустится. На win x86, если не сделаны особые настройки системы - запустится.
|
|||
34
oleg_km
12.06.15
✎
11:19
|
(30) Правильно, зачем мне уметь пользоваться экскаватором, ведь экскаватор не на каждом предприятии есть. А лопата в каждом ларьке найдется. Савочком в песочнице прикольно ковыряться.
|
|||
35
Гость из Мариуполя
гуру
12.06.15
✎
13:17
|
хм.. хрена се, куда мысли заносит
1. Волшебник частично прав. самое простое - проверить Program Files (x86) только НЕ папка, а переменная среды. если определена - то YES! в командной строке набери "set prog" ... 2. встроенная команда systeminfo правда, в "покоцанных" версиях типа XP Home или Vista starter systeminfo.exe может и не быть. |
|||
36
Escander
12.06.15
✎
13:20
|
(0) распарсить строчное имя ОС?
|
|||
37
МихаилМ
12.06.15
✎
14:01
|
создать коллекцию, занимающую больше 3ГБ ОЗУ (для win), если создаст - значит - 64-бит.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |