· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.WIN32 —› XP и совместимость с 95/98/Ме

Посл.отвђт Сообщенiе


Дата: Авг 3, 2003 03:43:31

Как сделать, чтоб прога сама запускалась в режиме совместимости с win95/98/Me из под ХР?
Спасибо.


Дата: Авг 3, 2003 15:40:38

НИКТО не знает?..
А может это слишком простой вопрос...


Дата: Авг 3, 2003 16:24:15

Скорее всего, никак. Т.к. у 9x и NT принципиально разная архитектура. А какого-то эмулятора 9x под NT нет. А зачем это вообще нужно то? Она (прога) что отказывается под XP работать?


Дата: Авг 3, 2003 16:41:21

А может это слишком простой вопрос...
Скорее слишком общий.
Слишком по разному нужно делать в зависимости от программы.
Иногда вообще ничего не надо делать, и так будет работать.
Иногда нужно писать OS зависимые куски кода и направлять
на них в зависимости от полученной информации что за OS.
Например NT даёт возможность работать с буффером Edit напрямую, что ускоряет работу. 9х - нет - там прийдётся для работы с текстом в Edit сначала копировать это куда-то.
Если программа вовлекает низкоуровневое вмешательство в системные вещи, скорее всего прийдётся писать разные дрова для 9x и NT.
А иногда и вообще ничего поделать будет нельзя.
Когда в программе специфичные только в определённой OS вещи делаются.
Вобщем общий это слишком вопрос, код в программе с фанаря не берётся и некакого магического переключателя нет, чтоб нажать и всё (любое) заработало и там и там.


Дата: Авг 3, 2003 21:36:22 · Поправил: DEMON84

Вот пример исходника проги, которая работает только в режиме совместимости с 95/98/Ме:

format PE GUI 4.0
entry start
include 'c:\fasm\include\win32a.inc'

start:
invoke ExitWindowsEx,EWX_POWEROFF
invoke ExitProcess,0

data import

library kernel32,'KERNEL32.DLL',\
user32,'USER32.DLL'

import kernel32,\
ExitProcess,'ExitProcess'

import user32,\
ExitWindowsEx,'ExitWindowsEx'

end data

Я имею в виду, что совместимость задаётся так: правый клик мышой на иконке=>свойства=>совместимость и т. д.

Как ето сделать програмно?

P.S.: всё - в ХР :)


Дата: Авг 3, 2003 23:07:26

DEMON84
start:
invoke ExitWindowsEx,EWX_POWEROFF

Там сначала нужно привилегии настроить через AdjustTokenPrivileges (где-то в форуме есть пример).

Вообще, когда прога работает на 9x и глючит на NT/XP, логично предположить, что она просто глючит, т.е. дело не в совместимости а в ошибках программиста. Совместимость не есть панацея! Всё это IMHO, конечно...


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.059