Розгорнути ДОСовскіх вікно екран програми на весь екран
Підкажіть, як зробити так, щоб при запуску програми написаної на 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 не підійшов? Бо ці ігри зі старими ДОСовскіх переривань можуть і підвести. Сьогодні спрацювало, а завтра - отлуп по повній програмі!