![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы
![]() |
Поиск в этой теме
![]() |
![]() |
#1 |
Форумчанин
Регистрация: 03.11.2006
Сообщений: 321
|
![]()
Кто нибудь в курсе, как из Паскаля определить запущен ли Windows.
|
![]() |
![]() |
![]() |
#2 |
php / delphi
Форумчанин
Регистрация: 10.06.2007
Сообщений: 175
|
![]()
Напрямик, не знаю. Но если никто не скажет, как это делается.... это..... самое.... Можно догадаться по всяким беспонтовым эффектам. Если винда запущена, то DOS-программа выполняется в эмуляции (под XP)- следовательно никто в этой самой эмуляции размер кучи 640 Kb не выделяет. Я так когда-то мучился - максимальный размер кучи под виндой - килобайтов 120, не более.
Толи переменная, толи функция есть в паскале (справочника под рукой нет) MaxAvaible// что-то вроде этого // - определяет размер доступной оперативки
G.Azamat { Web Development / Computer simulation }
Начинающий программист думает, что в килобайте 1000 байтов, а законченный уверен, что в километре 1024 метра. |
![]() |
![]() |
![]() |
#3 |
With best regards
Участник клуба
Регистрация: 20.04.2007
Сообщений: 1,448
|
![]()
Если совсем банально, то можно попробовать скопировать какой-нибудь системный файл, который в загруженной винде стартует вместе с ней.
Например: C:\Documents and Settings\uzver'_name\NTUSER.DAT Если файл используется какой-то программой(mast die), то его не скопируешь... Ну, это как альтернатива правильному варианту.
Life is too short, play more...
Как правильно задавать вопросы |
![]() |
![]() |
![]() |
#4 | |
Форумчанин
Регистрация: 03.11.2006
Сообщений: 321
|
![]() Цитата:
данное определение необходимо для создания своего загрузочного диска. Таким образом программа стартуя в Dosе запускает приложение на Паскале, а в Winde на Delphi. С Delphi проблем не возникает, напишу все что надо(последовательности запусков приложений, ожидания их завершений и т.д.) а вот с Паскалем проблема, может Windа какие прерывания или ещё что использует. Просто пользоваться прогами для создания загрузок не интересно, а проверять на дисках наличие папок Windows не совсем эффективно. |
|
![]() |
![]() |
![]() |
#5 |
With best regards
Участник клуба
Регистрация: 20.04.2007
Сообщений: 1,448
|
![]()
Ваабще, да, проверять папки это скучно, ну тогда такой еще способ: запустить виндосовскую прогу например калк:
if not WinExec(PChar('calk.exe'), SW_ShowNormal) then .. Понятно, что он идет в комплекте, и без него никак.
Life is too short, play more...
Как правильно задавать вопросы |
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 03.11.2006
Сообщений: 321
|
![]()
Тут опять же не пойдёт потому как естественно сначала запускается программа на паскале (поскольку она пойдёт и под дос и под виндовс, которая уже должна определять запущен виндовс или нет. В случае если запущен запускать приложение на делфи и закрываться, а если нет продолжать работать сама.
|
![]() |
![]() |
![]() |
#7 |
Старожил
Регистрация: 13.12.2006
Сообщений: 3,859
|
![]()
директивами компилятора из принципа не пользуетесь ?
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи |
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 03.11.2006
Сообщений: 321
|
![]() |
![]() |
![]() |
![]() |
#9 |
Старожил
Регистрация: 13.12.2006
Сообщений: 3,859
|
![]()
Раз не пользовали, то это не лучший пример использования.
Тогда по другому: http://narod.yandex.ru/cgi-bin/yandm...0=398083920&p= http://narod.yandex.ru/cgi-bin/yands...indows&where=2
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи |
![]() |
![]() |
![]() |
#10 |
Форумчанин
Регистрация: 03.11.2006
Сообщений: 321
|
![]()
Хорошие ссылки, не спорю. Правда как определить какая запущена ОС под делфи я и так знаю. Вопрос был про паскаль.
Ладно буду пользоваться прогами для создания загрузки. Интересно всё-таки, как пишут загрузчики к дискам, которые самоопределяют систему и соответственно по разному стартуют под дос и виндовс. Если никому не интересно то тему можно считать закрытой. Кстати нашёл один выход, правда под Дос не проверял(если кому пригодится). Чем отличается загрузка под Дос? Конечно отсутствием изначально работающей мыши. Поэтому просто определяется адрес обработки прерывания мыши. Если есть программа обработки прерывания, или фиктивная программа обработки прерывания мыши, то соответственно можно грузить прогу на Делфях ну и т.д.... Не очень конечно может и правильно но должно работать. program ex1; uses dos; var Mi: pointer; begin GetIntVec($33,Mi); If (Mi<>Nil) or (Byte(Mi^)=$CE) then writeln('Запущена ОС'); readln; end. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Определить раздел с Windows | Teen4jump | Общие вопросы Delphi | 3 | 13.10.2009 00:25 |
Определить нажатую клавишу средствами Windows | k1r1ch | Win Api | 3 | 13.09.2009 18:36 |
Как определить полную версию Windows | Crazyman | Windows | 6 | 27.01.2008 02:19 |
Возможно ли определить количество акаунтов Windows | bayern | JavaScript, Ajax | 1 | 22.09.2007 22:46 |