В общем запустил я в виртуалке win95 osr2.1
Целый квест с распаковкой из архива. Нашел старый добрый pkunzip.exe для DOS, вспомнил как им пользоваться, в общем запустил приложение
И в окошке пусто. Нажимал на все кнопки, выбирал все положения радиобутона — ни одно окно не находится.
Вот скрин:
Кстати 95 весьма бодро работает, не тупит так как 98
Но все-таки — допускаю, что под самый конец 9x-линейки могла возникнуть некая экспериментальная сборка, с расширенной в сторону Win2k функциональностью.
Если посмотреть свойства EXPLORER.EXE в Миллениуме, то мы увидим "Windows 2000"
[...]
K>Но все-таки — допускаю, что под самый конец 9x-линейки могла возникнуть некая экспериментальная сборка, с расширенной в сторону Win2k функциональностью.
K>Дело в том, что лично наблюдал на гостевой Win98SE (в VirtualBox-е на хостовой Win7) работу с HWND_MESSAGE... K>А зта Win98SE была выгуглена как готовый к применению VDI-диск (ну, почти готовый, без кое-каких драйверов)...
K>Надеюсь, сюда таки заглянет непорывающий с 98/ME SergeCpp и таки прояснит ситуацию
Очень похоже, что я ошибался насчет версионности виндов. У меня стоит под Win7 еще и VisualStudio6, так там в хэдерах апреля 98 года создания:
#ifndef WINVER
#define WINVER 0x0400
#else
#if defined(_WIN32_WINNT) && (WINVER < 0x0400) && (_WIN32_WINNT > 0x0400)
#error WINVER setting conflicts with _WIN32_WINNT setting
#endif
#endif
#if(WINVER >= 0x0500)
#pragma message ("")
#pragma message ("NOTE: WINVER has been defined as 0x0500 or greater which enables")
#pragma message ("Windows NT 5.0 and Windows 98 features. When these headers were released,")
#pragma message ("Windows NT 5.0 beta 1 and Windows 98 beta 2.1 were the current versions.")
#pragma message ("")
#pragma message ("For this release when WINVER is defined as 0x0500 or greater, you can only")
#pragma message ("build beta or test applications. To build a retail application,")
#pragma message ("set WINVER to 0x0400 or visit http://www.microsoft.com/msdn/sdk")
#pragma message ("to see if retail Windows NT 5.0 or Windows 98 headers are available.")
#pragma message ("")
#pragma message ("See the SDK release notes for more information.")
#pragma message ("")
#endif
Получается, что 6-я студия компиляла под 95 винды (0x0400), для продажи но могла и под новоявленные Windows NT 5.0 beta 1 и Windows 98 beta 2.1 (для тестирования), выдавая ворнинг, чтобы использовали новую SDK. Согласно вики 98 винда (не SE) вышла в мае 98 года. Так что получается, что _Butch_ прав, и WINVER >= 0x0500 — это уже начиная с 98 винды (не SE). Хотя, конечно, позже Майкрософт могли несколько пересмотреть свои взляды на версионность. В любом случае, надеждам на наличие HWND_MESSAGE в 95 виндах, похоже, сбыться не суждено.
Здравствуйте, kero, Вы писали:
K>Интересует, с какой версии Windows появилась эта константа?
судя по сорцам и файлу ntos\w32\ntuser\kernel\ntstubs.c (Windows 2000 без SP) уже была:
HWND NtUserSetParent(
IN HWND hwndChild,
IN HWND hwndNewParent)
{
...
if (hwndNewParent == NULL) {
pwndNewParent = _GetDesktopWindow();
} else if (hwndNewParent == HWND_MESSAGE) {
pwndNewParent = _GetMessageWindow();
} else {
ValidateHWND(pwndNewParent, hwndNewParent);
}
...
}
а NT4 еще не было
HWND NtUserSetParent(
IN HWND hwndChild,
IN HWND hwndNewParent)
{
//
// N.B. This function has implicit window translation and thread locking
// enabled. These operations are performed in the User server API
// dispatcher.
//
PWND pwndNewParent;
TL tlpwndNewParent;
BEGINRECV_HWNDLOCK(HWND, NULL, hwndChild);
ValidateHWNDOPT(pwndNewParent, hwndNewParent);
ThreadLockWithPti(ptiCurrent, pwndNewParent, &tlpwndNewParent);
retval = (HWND)xxxSetParent(
pwnd,
pwndNewParent);
retval = PtoH((PVOID)retval);
ThreadUnlock(&tlpwndNewParent);
TRACE("NtUserSetParent");
ENDRECV_HWNDLOCK();
}
Подключаем его в виртуалке и загружаемся с него (1 пункт при загрузке выбирал). Создаем раздел на диске с, форматируем, подключаем iso образ с 95 (брал тут) и копируем с него все на диск с.
На флопике есть VC, так что проблем не будет с копированием
Потом выходим из vc, переходим на диск с в папку с виндой и setup.exe
Там все по умолчанию.
И все.
Решил я вспомнить молодость и поставил в виртуалку еще и WinME и Windows NT 4.0 Workstation SP6a
И вот такие результаты:
WinME — тоже самое что и в Windows 98SE (находятся 3 окна в режимах SetParent и CreateWindowEx)
WinNT 4.0 — тоже самое что и в вин95 (не найдены окна ни в одном из трех режимов)
Здравствуйте, koandrew, Вы писали:
RW>>чего сразу антиквариат мне вот нравится
K>Потому что не работает на современном железе (и даже на не очень современном).
ну так для этого и стоит вон в углу pentium 100Mhz даже с флопповодом
Здравствуйте, kero, Вы писали:
K>Интересует, с какой версии Windows появилась эта константа?
K>Однако ведь на деле HWND_MESSAGE работает и в Win98, и окна типа "message-only" там тоже есть.
Ну тут пишут, что0x0501 — это XP, надо полагать что 0x0500 — это WIN98?
Так что вроде все сходится...
Хз, видимо надо смотреть заголовки древних SDK, у меня где-то валялись cd многолетней давности с sdk еще под nt 4.0, если не выкинул, и если они еще читаются, посмотрю.
ES>Ну тут пишут, что0x0501 — это XP, надо полагать что 0x0500 — это WIN98?
ES>Хотя тут пишут другое, типа 0х0500 это вин2000
ES>А тут вот пишут что Win98 это 0х0410
Эх, молодо-зелено...
Windows 95 and Windows NT 4.0 WINVER=0x0400
Windows 98 and Windows NT 4.0 _WIN32_WINDOWS=0x0410 and WINVER=0x0400
Windows NT 4.0 _WIN32_WINNT=0x0400 and WINVER=0x0400
Windows 98 and Windows 2000 WINVER=0x0500
Windows 2000 _WIN32_WINNT=0x0500 and WINVER=0x0500
Здравствуйте, kero, Вы писали:
K>Здравствуйте, _Butch_, Вы писали:
K>
K>Windows 98 and Windows 2000 WINVER=0x0500
K>
K>А не уточните, о какой именно 98 тут речь — не о SE ? И можно ли (авторитетную) ссылку, что 0x0500 ?
По этому поводу у меня тоже есть сомнения. Насколько я понимаю, сейчас найти версии для старых виндов несколько затруднительно. То, что есть, начинается с ХР. Вот здесь чел кой-чего нарыл, возможно, что вам поможет. Если для Windows ME WINVER=0x0400 and _WIN32_WINDOWS=0x0490, как для Windows 98SE может использоваться WINVER=0x0500?
K>>А не уточните, о какой именно 98 тут речь — не о SE ? И можно ли (авторитетную) ссылку, что 0x0500 ?
_>По этому поводу у меня тоже есть сомнения. Насколько я понимаю, сейчас найти версии для старых виндов несколько затруднительно. То, что есть, начинается с ХР. Вот здесь чел кой-чего нарыл, возможно, что вам поможет. Если для Windows ME WINVER=0x0400 and _WIN32_WINDOWS=0x0490, как для Windows 98SE может использоваться WINVER=0x0500?
Ну да, выше я и написал, как всегда и считал: >"0x0500" значит "начиная с Win2k"
Но все-таки — допускаю, что под самый конец 9x-линейки могла возникнуть некая экспериментальная сборка, с расширенной в сторону Win2k функциональностью.
Дело в том, что лично наблюдал на гостевой Win98SE (в VirtualBox-е на хостовой Win7) работу с HWND_MESSAGE...
А зта Win98SE была выгуглена как готовый к применению VDI-диск (ну, почти готовый, без кое-каких драйверов)...
Надеюсь, сюда таки заглянет непорывающий с 98/ME SergeCpp и таки прояснит ситуацию
_>>По этому поводу у меня тоже есть сомнения. Насколько я понимаю, сейчас найти версии для старых виндов несколько затруднительно.
K>Надеюсь, сюда таки заглянет непорывающий с 98/ME SergeCpp и таки прояснит ситуацию
Здравствуйте, SergeCpp, Вы писали:
K>>Наверное, остается одно: попросить обладателей 9x потестить вот этим:
SC>Я уже тестил как-то вашей программой, помните, что она мне натворила в системе? Теперь я осторожничаю
Так и знал, что припомните
(А я ведь сразу после того обзавелся VirtualBox с гостевой Win98SE (на VDI с инета), и с тех пор — несмотря на угнетающие тормоза этого симбиоза — потихоньку приучаю MenuSpy к Win98, которая, как оказалось, обходится с менюхами зело иначе, нежели XP или Win7...)
Так вот, можно не осторожничать: здесь уже проверили для Win98SE официальной сборки, и результат совпал с моим (см. выше).
Поэтому в данный момент мне бы не ME, а, наоборот, что-то до Win98SE...
Может, все-таки рискнете поучаствовать? Исходник экзе в архиве, манюсенький-манюсенький, и все там как на ладони ...
I found this suprising because the creation of windows purely for messages almost certainly dates back to Windows 3.1
or even before, and it's the early versions of windows that had the most to gain from message-only windows.
Здравствуйте, kero, Вы писали:
K>Может, все-таки рискнете поучаствовать? Исходник экзе в архиве, манюсенький-манюсенький, и все там как на ладони ...
Пытался поставить Win98 SE (как утверждают копия с фирменного диска) на Hyper-V (Win 8.1). Установка наглухо зависает при загрузке mode.exe
Никто не знает как поправить ?
Здравствуйте, Evgeniy Skvortsov, Вы писали:
ES>Пытался поставить Win98 SE (как утверждают копия с фирменного диска) на Hyper-V (Win 8.1). Установка наглухо зависает при загрузке mode.exe ES>Никто не знает как поправить ?
Насколько я знаю, Hyper-V системы такой давности не поддерживает.
У меня на Hyper-V от Server 2008 R2 ничего старее Windows 2000 не работает.
Здравствуйте, okman, Вы писали:
O>Насколько я знаю, Hyper-V системы такой давности не поддерживает. O>У меня на Hyper-V от Server 2008 R2 ничего старее Windows 2000 не работает.
Поставил 98 в виртуалбокс, запустилась, правда тупит нереально.
Сейчас скачал образ 95 OSR 2.1, попробую ее поставить.
Ностальгия ...
Здравствуйте, Evgeniy Skvortsov, Вы писали:
ES>Здравствуйте, kero, Вы писали:
ES>В общем запустил я в виртуалке win95 osr2.1 ES>Целый квест с распаковкой из архива. Нашел старый добрый pkunzip.exe для DOS, вспомнил как им пользоваться, в общем запустил приложение ES>И в окошке пусто. Нажимал на все кнопки, выбирал все положения радиобутона — ни одно окно не находится.
Спасибо!
И это... как бы мне стянуть ваш vdi с Win95
Спасибо. Как только ни пытался с Win95 — сплошь облом, видимо — в упор не вижу некую систематическую идиотскую свою ошибку...
Попробую еще раз, последний, и если опять — обращусь таки к вам...
Здравствуйте, Evgeniy Skvortsov, Вы писали:
ES>Здравствуйте, kero, Вы писали:
ES>Решил я вспомнить молодость и поставил в виртуалку еще и WinME и Windows NT 4.0 Workstation SP6a
ES>И вот такие результаты: ES>WinME — тоже самое что и в Windows 98SE (находятся 3 окна в режимах SetParent и CreateWindowEx) ES>WinNT 4.0 — тоже самое что и в вин95 (не найдены окна ни в одном из трех режимов)