Нужна программа, желательно написанная на Delphi, которая сможет определить на какой операционной системе была установлена текущая VMWare (на MAC или на PC). Программа будет запускаться из ОС Windows установленной как виртуальная машина VMWare.
(т.е. нужно определить тип хост машины VMWare из гостевой Windows)
Оплата в 2 этапа:
1) Оплата за программу, которая правильно отображает тип компьютера(MAC или PC)
2) Оплата за исходный код этой программы.
Нужна программа, желательно написанная на Delphi, которая сможет определить на какой операционной системе была установлена текущая VMWare (на MAC или на PC). Программа будет запускаться из ОС Windows установленной как виртуальная машина VMWare.
(т.е. нужно определить тип хост машины VMWare из гостевой Windows)
Оплата в 2 этапа:
1) Оплата за программу, которая правильно отображает тип компьютера(MAC или PC)
2) Оплата за исходный код этой программы.
Примечание:
Варианты которые не работают:
1) Посмотреть в БИОСе серийный номер, который должен содержать "VMware-" для PC и "VMW" для MAC компьютеров. На тестах и PC и MAC содержат "VMware-" (Тестировалось на VMWare Fusion) т.е. не удалось отличить.
2) Прочитать значения некоторых переменных через VMWare Tools. Не подходит так как значения этих переменных можно изменить с помощью вспомогательных програм.
3) Прочитать порт:
asm
mov eax, 'VMXh'
mov ebx, 0 // какое-то значение, но врядли нужное нам
mov ecx, 10 // версия VMWare
mov edx, 'VX' // номер порта
in eax, dx // чтение порта
cmp ebx, 'VMXh' // возможно здесь есть ответ, но не понятно какие ещё тут могут быть значения
setz [rc] // присвоить возвращаемое значение
end;
Этот вариант помогает определить виртуальную машину, но предоставляет слишком мало информации чтобы отличить PC от MAC (по крайней мере из той информации что есть у нас)
Варианты которые не работают:
1) Посмотреть в БИОСе серийный номер, который должен содержать "VMware-" для PC и "VMW" для MAC компьютеров. На тестах и PC и MAC содержат "VMware-" (Тестировалось на VMWare Fusion) т.е. не удалось отличить.
2) Прочитать значения некоторых переменных через VMWare Tools. Не подходит так как значения этих переменных можно изменить с помощью вспомогательных програм.
3) Прочитать порт:
asm
mov eax, 'VMXh'
mov ebx, 0 // какое-то значение, но врядли нужное нам
mov ecx, 10 // версия VMWare
mov edx, 'VX' // номер порта
in eax, dx // чтение порта
cmp ebx, 'VMXh' // возможно здесь есть ответ, но не понятно какие ещё тут могут быть значения
setz [rc] // присвоить возвращаемое значение
end;
Этот вариант помогает определить виртуальную машину, но предоставляет слишком мало информации чтобы отличить PC от MAC (по крайней мере из той информации что есть у нас)