Розгорнути ДОСовскіх вікно екран програми на весь екран

Розгорнути ДОСовскіх вікно екран програми на весь екран

Підкажіть, як зробити так, щоб при запуску програми написаної на Turbo Pascal вікно DOS`а саме розгорталася на весь екран, а не було в віконці.
Щось на зразок програмної реалізації Alt + Enter які доводиться натискати, щоб розгорнути на весь екран.

Що за * .pif і як ним користуватися?

везе вам, молодим: не знаєте, що таке піф
це те саме, що lnk, але для дос-програм

розібрався, велике спасибі!

Тільки ось тепер таке питання, а як би ці два файли тепер об'єднати в 1? Щоб не було два файли однакового імені, але з різними розширеннями pif і exe, а щоб тільки один exe був?

Навіщо їх об'єднувати щось?

Чи не потрібен pif - видали його до едренейфене, але тоді Alt + Enter будиш тиснути ручками)

А як можна зробити, щоб програма сама виконувала натискання комбінацій клавіш Alt + Enter? (Не механічно, програмно зрозуміло)

Зустрічне питання - чим тобі завадив pif. І яка тобі різниця що запускати (pif або exe), якщо запуск попередньо налаштованого pif реалізує поставлене завдання?

Хочеться щоб був тільки 1 exe файл і користувач міг запускати саме exe, а не pif


> І користувач міг запускати саме exe, а не pif

А йому не похрену що запускати?

Ось він тисне Меню "Пуск -> Виконати ..", вводить туди. наприклад, з: \ SomeDir \ SomeDOSProgram і - вуаля. - отримує старт відповідного ДОС-програми в повноекранному режимі, при цьому навіть не знаючи, що насправді при старті додатка системою був використаний саме pif ..

А якщо юзер крім вікна екплорера більше знати нічого не знає в плані запуску додатків. то і це можна вирішити - exe просто робиться прихованим і експлорер налаштовується на непоказ прихованих файлів

В кінці-кінцем, якщо юзер ледачий і тупий, а тобі більше робити нічого крім як догоджати його безглуздим примхам, то ліпиш просте застосування, що стартує pif, і підставляєш свій exe користувачеві

Але все-таки, як це можна реалізувати, щоб був тільки один exe? (Без pif)


> Як це можна реалізувати, щоб був тільки один exe?

ніяк
тому як дос-програма не знає, де вона запускається
немає у неї поняття вікна

А в якому модулі знаходиться ця функція keybd_event (), мені видає невідомий ідентифікатор. Пишу в Turbo Pascal 7.0


> Пишу в Turbo Pascal 7.0

А причому тут Turbo Pascal?

Мова начебто йде про Win32-додатку, в завдання якого входить запуск якогось DOS-програми в повноекранному режимі?

Так це додаток я пишу на TurboPascal

> Підкажіть, як зробити так, щоб при запуску програми
> Написаної на Turbo Pascal вікно DOS`а саме розгортався
> На весь екран, а не було в віконці.

Або можна якось ще використовувати цю функцію?

Мені потрібно написати саме DOS-додаток, що буде розгортатися автоматично на весь екран при його запуску файлу exe, але в ОС Windows XP.


> Це додаток я пишу на TurboPascal

Ну і пиши собі, ніхто ж не заважає)

Але DOS-додаток знати нічого не знає і знати не може ні про які Windows-вікнах і режимах. Де і як малювати віз.результати роботи DOS-додатки - цим завідує Windows.


> Мені потрібно написати саме DOS-додаток, що буде розгортатися
> Автоматично на весь екран

Воно і так вже розгорнуто "на весь екран".
А ось що вважати "повним екраном" - це вже вирішує Windows.

А йому і не потрібно знати, від додатка потрібно зателефонувати функцію API keybd_event () і натиснути в поєднанні дві клавіші Alt і Enter. Але в якому модулі знаходиться ця функція і як її підключити до програми, як зазвичай через uses? І як можна зробити затримку натискання, тобто я викличу функцію натискання на кнопку Alt, потім Enter, але треба одночасне натискання, тобто викликати Alt тримати якось і викликати Enter, потім опустити обидві, як це можна зробити?


> Від програми потрібно зателефонувати функцію API keybd_event ()

У DOS свій API, у Windows свій)

А яка тоді функція API Dos`а відповідає за натискання клавіш? Якщо така ж keybd_event (), то в якому модулі вона знаходиться?


> Яка тоді функція API Dos`а відповідає за натискання клавіш?

Це ти в мене питаєш.
Це ти в ДОС "е працюєш, а не я, тобі і видніше має бути)

Навіть якщо така є (а вона є), то вона не має нічого спільного з тим що ти від неї очікуєш в частині очікуваної тобою реакції на Alt-Enter.

А можна поцікавитися, чим викликаний цей патологічний махохізм - використання TP?


> А можна поцікавитися, чим викликаний цей патологічний
> Махохізм - використання TP?

чисто цікавістю


> Розгортка # XA0; (03.10.08 16:15) [22]
> А яка тоді функція API Dos`а відповідає за натискання клавіш?
> # XA0;

Intr з модуля DOS. Але в Windows твоя диво-програма виконується у віртуальній машині. І все "натискання клавіш" в ній потрапляють тільки в твою програму, і ніяк не виходять за її межі. DOS-програма ніяк не зможе нічого скомандувати Windows або передати Windows якісь натискання клавіш.


> DOS-програма ніяк не зможе нічого скомандувати Windows
> Або передати Windows якісь натискання клавіш

Бо про Windows ДОС-програма нічого не знає, бо народилася в системі, народженої до народження Windows.


> У віртуальній машині

mov ax, 13h
int 10h

Міський Шаман, спасибі! Тільки чомусь текст став великого розміру, мабуть він робить дозвіл 640х480


> Розгортка # XA0; (03.10.08 18:50) [30]
>
> Міський Шаман, спасибі! Тільки чомусь текст став крупного
> Розміру, мабуть він робить дозвіл 640х480

Загалом на тобі код

// запам'ятовуємо
mov ah, 0Fh
int 10h
mov cl, al

// встановлюємо графічний
mov ax, 13h
int 10h

// повертаємо назад
xor ax, ax
mov al, cl
int 10h


> Розгортка # XA0; (03.10.08 23:50) [33]
>
> Велике спасибі!
>

Так чим все таки pif не підійшов? Бо ці ігри зі старими ДОСовскіх переривань можуть і підвести. Сьогодні спрацювало, а завтра - отлуп по повній програмі!

Схожі статті