Главная страница
    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-8812
myportal
2002-01-19 10:00
2002.02.04
Как извлеч ресурс из программы в отдельный файл?


4-9040
GoldenFox
2001-12-06 16:06
2002.02.04
Надо убрать иконку из Таскбара в WinNT,


6-8960
SemFLY
2001-11-11 18:56
2002.02.04
Почему никак не разберусь ! :-(


1-8868
SlavaNew
2002-01-14 12:50
2002.02.04
Как передать иконку?


3-8770
maxi
2002-01-03 11:19
2002.02.04
Как в Делфи работать с разделителями полей к базе ASCII ?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский