Автор | Сообщение |
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 06.06.06 14:55. Заголовок: Заголовок окна Windows9x/WindowsXP
Всем привет на форуме! Подскажите, где можно взять/найти/достать функцию вывода заголовка окна Windows9x/WindowsXP. Программирую на Clipper 5.2e. Знаю, что для WindowsXP существует консольная комманда title. Но все таки хотелось бы иметь функцию...
|
|
|
Ответов - 18
[только новые]
|
|
|
| постоянный участник
|
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 06.06.06 17:49. Заголовок: Re:
Я не знаю, но думаю, что такой функции в Clipper нет. Ее надо писать самостоятельно. Причем я не уверен, что для Windows 9x и Windows XP код будет одним и тем же... Может быть кто-нибудь этим занимался? Я пробовал, например, такую вещь, как перехват в Clipper закрытия окна. Однако что-то мой эксперимент в Windows XP не прошел. Правда я не пробовал его для Windows 98.
|
|
|
|
| постоянный участник
|
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 06.06.06 17:54. Заголовок: Re:
Наверное надо писать "обертку" для следующей службы DOS. Get Application Title Copies the application title to the specified buffer. mov ah, 16h ; Windows multiplex function mov al, 8Eh ; VM Title mov di, seg AppTitle ; see below mov es, di mov di, offset AppTitle mov cx, Size ; see below mov dx, 2 ; Get Application Title int 2Fh cmp ax, 1 je success Parameters AppTitle Pointer to a buffer that receives the application title. This parameter must not be zero. Size Size, in bytes, of the buffer pointed to by AppTitle. Return Values Returns 1 in the AX register if successful or zero otherwise. Remarks Get Application Title copies as much of the title as possible, but never more than the specified number of bytes. The function always appends a terminating null character to the title in the buffer.
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 06.06.06 18:39. Заголовок: Re:
Спасибо, Владимир, за внимание и за совет. Я хоть и не силен в ассемблере, но несколько работающих функций у меня есть. Буду пробовать...
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 07.06.06 11:14. Заголовок: Re:
Сел, разобрался - не совсем то, что я хочу. Мне нужна функция, которая бы изменяла заголовок окна моей Clipper-программы. Для WindowsXP я использую команду Title (но в ней есть некоторые ограничения и глюки), а вот для Windows9x такой команды не существует. Перелазил весь www.the-oasis.net, но ничего подобного не встретил...
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 07.06.06 11:26. Заголовок: Re:
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 07.06.06 11:45. Заголовок: Re:
пиплиотечку для Win9x могу выслать
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 07.06.06 16:07. Заголовок: Re:
На http://www.the-oasis.net/ftpmaster.php3?content=ftplib.htm нашел библиотеку OSLIB105.LIB OSLIB105.LIB is a nice collection of functions for allowing a Clipper program to interact with the host OS and to find out details about that OS. OL_95AppTitle() Set/get the Windows 95 application title. OL_95VMTitle() Set/get the Windows 95 virtual machine title. OL_AutoYield() Automaticly return times slices back to the OS. OL_IsMSWin() Check to see if we are running under MS-Windows. OL_IsNT() Check to see if we are running under MS-Windows NT. OL_IsOS2() Are we running under OS/2? OL_IsOS2Win() Are we running in a windowed OS/2 Dos session? OL_OsVerMaj() Get the major version of the OS. OL_OsVerMin() Get the minor version of the OS. OL_WinCBCopy() Get text from the MS Windows clipboard. OL_WinCBPaste() Place text into the MS Windows clipboard. OL_WinFullScreen() Force a DOS window into full screen mode. OL_Yield() Return a time slice back to the operating system. 2 Sergeja Если это та самая библиотека - я уже разобрался. 2 saulius Утилитка NirCmd v1.83 (Freeware command-line tool) тоже пригодится - классная штука. Спасибо всем, кто откликнулся!
|
|
|
|
| постоянный участник
|
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 07.06.06 18:15. Заголовок: Re:
ort wrote: цитата: | OL_95AppTitle() Set/get the Windows 95 application title. OL_95VMTitle() Set/get the Windows 95 virtual machine title |
|
OL_95AppTitle() Я думаю, эти функции не будут работать в XP.
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 08.06.06 00:37. Заголовок: Re:
Григорьев Владимир пишет: цитата: | OL_95AppTitle() Я думаю, эти функции не будут работать в XP. |
| Именно так: конкретно эта функция не работает. Насчёт других не знаю. ort пишет: цитата: | Для WindowsXP я использую команду Title (но в ней есть некоторые ограничения и глюки), |
| А как именно ты её используешь, не понял? В смысле чистой физики: где и чего писать надо, чтобы эту команду запустить?
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 08.06.06 10:06. Заголовок: Re:
Да, действительно функции из библиотеки OSLIB не работают в WindowsXP. Вот как я изменяю заголовок окна своей программы: IF nVerDOS == 5 // Win NT/XP RunProg("CMD.EXE /C TITLE "+cWinTitle) ELSE // Win9x OL_95AppTitle(cWinTitle) ENDIF
|
|
|
|
| постоянный участник
|
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 08.06.06 11:31. Заголовок: Re:
ort wrote: цитата: | OL_95AppTitle() Set/get the Windows 95 application title. OL_95VMTitle() Set/get the Windows 95 virtual machine title |
| Эти функции используют соответствующие службы DOS (мультиплексная функция), про которые я раньше писал на этой ветке (где описание вызова на ассемблере приведено), и которые относятся к Windows до XP. В XP другой интерфейс. Я в свое время в какой-то книге по XP об этом читал, но так как меня тогда это не интересовало, "пропустил мимо ушей". Сейчас об этом сожалею, а какая была книга, уже не помню.
|
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 08.06.06 13:23. Заголовок: Re:
To ort У вас программа PROTECTED ?
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 08.06.06 18:15. Заголовок: Re:
2 saulius Думаю, у меня программа PROTECTED. Использую стандартный RTLink из поставки Clipper 5.2e.
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 08.06.06 19:16. Заголовок: Re:
PROTECTED mode линкеры Blinker, ExoSpace, CauseWay... а RTLink - REAL mode линкер. Я спросил потому, что OL_95AppTitle(cWinTitle) + Blinker + PROTECTED + Win98 у меня не работает. Как у других ?
|
|
|
|
| постоянный участник
|
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 08.06.06 19:32. Заголовок: Re:
RTLINK разве создает программы в защищенном режиме процессора?
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 08.06.06 19:48. Заголовок: Re:
Да, оплошал я - просто никогда раньше не обращал внимания на режимы процессора. Значит, RealMode. И у меня все это работает - как я привел в примере.
|
|
|
|
| постоянный участник
|
Пост N: 38
Зарегистрирован: 24.09.05
|
|
Отправлено: 20.06.06 19:43. Заголовок: Re:
Григорьев Владимир пишет: цитата: | Может быть кто-нибудь этим занимался? |
| См. Advantage & Six commander Григорьев Владимир пишет: цитата: | Я пробовал, например, такую вещь, как перехват в Clipper закрытия окна. Однако что-то мой эксперимент в Windows XP не прошел. Правда я не пробовал его для Windows 98. |
| Перехват работает. См. в той же программе. Однако, он работает, если программа, отслеживающая закрытие запущена непосредственно из Пуск, выполнить (или ярлык на EXE). Если запускается из файл-коммандера или запускается батник, в котором предварительно грузятя резиденты - то нет. (Есть совсем хитрые способы, но они плохи)
|
|
|
|
| постоянный участник
|
Пост N: 39
Зарегистрирован: 24.09.05
|
|
Отправлено: 20.06.06 19:46. Заголовок: Re:
Григорьев Владимир пишет: цитата: | Наверное надо писать "обертку" для следующей службы DOS. Get Application Title Copies the application title to the specified buffer. mov ah, 16h ; Windows multiplex function mov al, 8Eh ; VM Title mov di, seg AppTitle ; see below mov es, di mov di, offset AppTitle mov cx, Size ; see below mov dx, 2 ; Get Application Title int 2Fh |
| В протект моде работать не будет. Надо юзать это же через сервис DPMI + предварительно щзапросить через соответствующие сервисы память В ПЕРВОМ магабайте и в него положить заголовок - иначе по селектору не сработает
|
|
|
|