Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 2002.02.04;
Скачать: [xml.tar.bz2];

Вниз

Гребаный MSDOS   Найти похожие ветки 

 
Vitaliy Jungle   (2001-10-13 05:42) [0]

Мужики, ну в конце-то концов, помогите определить версию MS-DOS! Уже опух конкретно от всякого рода экспериментаторства. Все эти ваши 16-битные алгоритмы ну не работают они, не работают под 32-битными Дельфи! Сами попробуйте и убедитесь:

procedure TForm1.Button1Click(Sender: TObject);
var
dwVersion : longint;
wDosVer : WORD;
begin
dwVersion := GetVersion;
wDosVer := HiWord(dwVersion);
Edit2.Text := IntToStr(HiByte(wDosVer)) + "." + IntToStr(LoByte(wDosVer));
end;

Какие-то лохи растиражировали этот алгоритм по всему Интернету, даже не понимая того, что он нерабочий (например версия MSDOS 8.0 определена как 192.0) и такие же лохи его используют: «А какую ж тебе версию надо?» - ответил как-то один из «таких» в дельфи-конференции:)))) Лох – одним словом!
В хелпе Дельфов сказано, что типа, определять нужно с использованием ассемблера, вот цитата:

If you need to know that the system is running MS-DOS version 7.0, you must use Interrupt 2Fh Function 4A33h. This function returns zero in the AX register for MS-DOS version 7.0 or higher and returns a nonzero value in AX for any other versions of the disk operating system. In addition to the AX register, this function uses the DS, SI, DX, and BX registers.

Так может возьмется кто помочь? Дело-то всего в пару строчках ассемблера!


 
Slava   (2001-10-15 07:07) [1]

А без assembler"а можно?

ver > 1.txt
Читаем, что в 1.txt


 
Вася Пупкин   (2001-10-15 09:28) [2]

2 Slava
Угу... и прочитаем что-то вроде
Windows 98 [Версия 4.10.1998]


 
PVOzerski   (2001-10-17 18:41) [3]

Не знаю, поможет ли совет, но зацепку дать может. Есть в DOS API функции
какого-то прерывания для эмуляции в защищенном режиме прерываний реального.
Вот через это имеет смысл попробовать и сделать. Только не помню деталей.
Суть такая: в какой-то регистр кладется номер прерывания real mode, в какой-то - адрес структуры с "псевдорегистрами реального режима"


 
Иван Шихалев   (2001-10-17 19:43) [4]

SetupAPI.dll

int GetDOSMajorVersion(void)
int GetDOSMinorVersion(void)


 
Fredy314   (2001-10-19 05:38) [5]

Прога MSD.ехе среди прочей интересной информации и версию доса
msd=>MicroSoft Diagnostic


 
dymon   (2001-10-19 07:29) [6]

var aa,aaa:byte;
begin
asm
mov ah,30h
int 21h
mov aa,ah
mov aaa,al
end;
writeln("version:",aaa,".",aa);
end.


 
dymon   (2001-10-25 15:19) [7]

УФФ ЕЛЕ НАШЕЛ. ЛОВИ

Нужно воспользоваться функцией GetVersion(). Она в старшем слове возвращает версию Dos"a, а в младшем - Windows.
Например, по нажатию кнопки, в двух метках выведем версии:

procedure TForm1.Button1Click(Sender: TObject);
var
WinVersion, DosVersion: Word;
begin
WinVersion := GetVersion and $0000FFFF;
DosVersion := GetVersion shr 16;
Label1.Caption:=IntToStr(Hi(DosVersion))+"."+IntToStr(Lo(DosVersion));
Label2.Caption:=IntToStr(Lo(WinVersion))+"."+IntToStr(Hi(WinVersion));
end;



 
IgorK   (2001-10-25 17:13) [8]


This function does not return the current version number of MS-DOS.

// Из описания в Win32API HElp Функции GetVersion.


 
Ketmar   (2001-10-27 21:56) [9]

искренне подозреваю, что для определения версии дос вполне достаточно узнать версию виндов. почему? подумайте...

Satanas Nobiscum! 27-Oct-XXXVI A.S.



Страницы: 1 вся ветка

Форум: "Система";
Текущий архив: 2002.02.04;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.004 c
1-8934
Хлор
2002-01-18 03:21
2002.02.04
Люди... помогите!!! Как удалить выбранный item из ListBox


3-8802
RoadRunner
2002-01-08 21:29
2002.02.04
Доступ к Paradox c паролем


14-8995
Tosov
2001-12-16 00:24
2002.02.04
Как правильно: реестр или регистри


1-8814
Molotov
2002-01-18 21:04
2002.02.04
Скин для формы


14-8978
tovSuhov
2001-12-13 09:45
2002.02.04
А вот такой анекдот...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский