Форум: "Начинающим";
Текущий архив: 2008.11.16;
Скачать: [xml.tar.bz2];
ВнизРазвернуть досовское окноий экран программы на весь экран Найти похожие ветки
← →
Развёртка (2008-10-03 13:33) [0]Подскажите, как сделать так, чтобы при запуске программы написанной на Turbo Pascal окно DOS`а само разворачивалось на весь экран, а не было в окошке.
Что-то вроде программной реализации Alt+Enter которые приходится нажимать, чтобы развернуть на весь экран.
← →
{RASkov} © (2008-10-03 13:44) [1]А *.pif не поможет?
← →
Любитель музыки (2008-10-03 13:45) [2]Что за *.pif и как им пользоваться?
← →
clickmaker © (2008-10-03 13:50) [3]везет вам, молодым: не знаете, что такое пиф
это тоже, что lnk, но для дос-программ
← →
Развёртка (2008-10-03 14:10) [4]разобрался, большое спасибо!
← →
Развёртка (2008-10-03 14:12) [5]Только вот теперь такой вопрос, а как бы эти два файла теперь объединить в 1? Чтобы не было два файла одинакового имени, но с разными расширениями pif и exe, а чтобы только один exe был?
← →
Сергей М. © (2008-10-03 14:21) [6]Зачем их объединять-то ?
Не нужен pif - удали его к едренейфене, но тогда Alt+Enter будишь давить ручками)
← →
Развёртка (2008-10-03 14:38) [7]А как можно сделать, чтобы программа сама выполняла нажатие комбинаций клавиш Alt+Enter? (Не механически, программно разумеется)
← →
Сергей М. © (2008-10-03 14:48) [8]Встречный вопрос - чем тебе помешал pif ? И какая тебе разница что запускать (pif или exe), если запуск предварительно настроенного pif реализует поставленную задачу ?
← →
Развёртка (2008-10-03 14:51) [9]Хочется чтобы был только 1 exe файл и пользователь мог запускать именно exe, а не pif
← →
Сергей М. © (2008-10-03 15:05) [10]
> и пользователь мог запускать именно exe, а не pif
А ему не похрену что запускать ?
Вот он жмет Меню "Пуск -> Выполнить..", вводит туда , к примеру, с:\SomeDir\SomeDOSProgram и - вуаля ! - получает старт соответствующего ДОС-приложения в полноэкранном режиме, при этом даже не зная, что на самом деле при старте приложения системой был использован именно pif..
А если юзер кроме окна экплорера больше знать ничего не знает в плане запуска приложений. то и это решаемо - exe просто делается скрытым и эксплорер настраивается на непоказ скрытых файлов
В конце-концом, если юзер ленив и туп, а тебе больше делать нечего кроме как угождать его дурацким прихотям, то лепишь простейшее приложение, стартующее pif, и подставляешь свой exe юзеру
← →
Развёртка (2008-10-03 15:12) [11]Но всё-таки, как это можно реализовать, чтобы был только один exe? (без pif)
← →
Сергей М. © (2008-10-03 15:31) [12]см. keybd_event()
← →
Правильный$Вася (2008-10-03 15:31) [13]
> как это можно реализовать, чтобы был только один exe?
никак
потому как дос-программа не знает, где она запускается
нет у нее понятия окна
← →
Развёртка (2008-10-03 15:42) [14]А в каком модуле находится эта функция keybd_event(), мне выдаёт неизвестный идентификатор. Пишу в Turbo Pascal 7.0
← →
Сергей М. © (2008-10-03 15:54) [15]
> Пишу в Turbo Pascal 7.0
А причем здесь Turbo Pascal ?
Речь вроде бы идет о Win32-приложении, в задачу которого входит запуск некоего DOS-приложения в полноэкранном режиме ?
← →
Развёртка (2008-10-03 16:00) [16]Так это приложение я пишу на TurboPascal
> Подскажите, как сделать так, чтобы при запуске программы
> написанной на Turbo Pascal окно DOS`а само разворачивалось
> на весь экран, а не было в окошке.
Или можно как-то ещё использовать эту функцию?
← →
Развёртка (2008-10-03 16:02) [17]Мне нужно написать само DOS-приложение, которое будет разворачиваться автоматически на весь экран при его запуске файла exe, но в ОС Windows XP.
← →
Сергей М. © (2008-10-03 16:05) [18]
> это приложение я пишу на TurboPascal
Ну и пиши себе, никто ж не мешает)
Но DOS-приложение знать ничего не знает и знать не может ни о каких Windows-окнах и режимах. Где и как отрисовывать виз.результаты работы DOS-приложения - этим заведует Windows.
← →
Сергей М. © (2008-10-03 16:07) [19]
> Мне нужно написать само DOS-приложение, которое будет разворачиваться
> автоматически на весь экран
Оно и так уже развернуто "во весь экран".
А вот что считать "полным экраном" - это уже решает Windows.
← →
Развёртка (2008-10-03 16:09) [20]А ему и не нужно знать, от приложения требуется вызвать функцию API keybd_event() и нажать в сочетании две клавиши Alt и Enter. Но в каком модуле находится эта функция и как её подключить к программе, как обычно через uses? И как можно сделать задержку нажатия, то есть я вызову функцию нажатия на кнопку Alt, затем Enter, но надо одновременное нажатие, то есть вызвать Alt держать как-то и вызвать Enter, затем опустить обе, как это можно сделать?
← →
Сергей М. © (2008-10-03 16:11) [21]
> от приложения требуется вызвать функцию API keybd_event()
Чьего API ?!
У DOS свой API, у Windows свой)
← →
Развёртка (2008-10-03 16:15) [22]А какая тогда функция API Dos`а отвечает за нажатие клавиш? Если такая же keybd_event(), то в каком модуле она находится?
← →
Сергей М. © (2008-10-03 16:20) [23]
> какая тогда функция API Dos`а отвечает за нажатие клавиш?
Это ты у меня спрашиваешь ?!
Это ты в ДОС"е работаешь, а не я, тебе и видней должно быть)
Даже если такая есть (а она есть), то она не имеет ничего общего с тем что ты от нее ожидаешь в части ожидаемой тобой реакции на Alt-Enter.
← →
Сергей М. © (2008-10-03 16:21) [24]А можно полюбопытствовать, чем вызван это патологический махохизм - использование TP ?
← →
Развёртка (2008-10-03 16:24) [25]
> А можно полюбопытствовать, чем вызван это патологический
> махохизм - использование TP ?
чисто любопытством
← →
Сергей М. © (2008-10-03 16:26) [26]Ясно)
← →
DrPass © (2008-10-03 16:54) [27]
> Развёртка (03.10.08 16:15) [22]
> А какая тогда функция API Dos`а отвечает за нажатие клавиш?
>
Intr из модуля DOS. Но в Windows твоя чудо-программа выполняется в виртуальной машине. И все "нажатия клавиш" в ней попадают только в твою программу, и никак не выходят за ее пределы. DOS-программа никак не сможет ничего скомандовать Windows либо передать Windows какие-то нажатия клавиш.
← →
Сергей М. © (2008-10-03 17:17) [28]
> DOS-программа никак не сможет ничего скомандовать Windows
> либо передать Windows какие-то нажатия клавиш
Ибо про Windows ДОС-программа ничего не знает, потому что родилась в системе, рожденной до рождения Windows ..
Это я Автору)
> в виртуальной машине
Для Автора, похоже, это абракадабра)
← →
Городской Шаман (2008-10-03 18:23) [29]Здесь вроде советуют произвести смену видеорежима на графический и обратно.
mov ax,13h
int 10h
http://www.xakep.ru/post/21508/default.asp?print=true
← →
Развёртка (2008-10-03 18:50) [30]Городской Шаман, спасибо! Только почему-то текст стал крупного размера, видимо он делает разрешение 640х480
← →
Городской Шаман (2008-10-03 18:51) [31]
> Развёртка (03.10.08 18:50) [30]
>
> Городской Шаман, спасибо! Только почему-то текст стал крупного
> размера, видимо он делает разрешение 640х480
Ну верни назад, И вообще почитай про функции прерывания 10h http://www.codenet.ru/progr/dos/int_0009.php
← →
Городской Шаман (2008-10-03 18:57) [32]В общем на тебе код
//запоминаем
mov ah,0Fh
int 10h
mov cl, al
//устанавливаем графический
mov ax,13h
int 10h
//возвращаем назад
xor ax, ax
mov al, cl
int 10h
← →
Развёртка (2008-10-03 23:50) [33]Большое спасибо!
← →
Германн © (2008-10-04 01:33) [34]
> Развёртка (03.10.08 23:50) [33]
>
> Большое спасибо!
>
Так чем всё таки pif не подошёл? Бо эти игры со старыми ДОСовскими прерываниями могут и подвести. Сегодня сработало, а завтра - отлуп по полной программе!
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.11.16;
Скачать: [xml.tar.bz2];
Память: 0.52 MB
Время: 0.006 c