On-line: гостей 1. Всего: 1 [подробнее..]
АвторСообщение





Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 06.06.06 14:55. Заголовок: Заголовок окна Windows9x/WindowsXP


Всем привет на форуме!
Подскажите, где можно взять/найти/достать функцию вывода заголовка окна Windows9x/WindowsXP.
Программирую на Clipper 5.2e.
Знаю, что для WindowsXP существует консольная комманда title.
Но все таки хотелось бы иметь функцию...

Спасибо: 0 
Профиль
Ответов - 18 [только новые]


постоянный участник


Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 06.06.06 17:49. Заголовок: Re:


Я не знаю, но думаю, что такой функции в Clipper нет. Ее надо писать самостоятельно. Причем я не уверен, что для Windows 9x и Windows XP код будет одним и тем же...
Может быть кто-нибудь этим занимался?
Я пробовал, например, такую вещь, как перехват в Clipper закрытия окна. Однако что-то мой эксперимент в Windows XP не прошел. Правда я не пробовал его для Windows 98.

Спасибо: 0 
Профиль
постоянный участник


Не зарегистрирован
Зарегистрирован: 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.


Спасибо: 0 
Профиль





Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 06.06.06 18:39. Заголовок: Re:


Спасибо, Владимир, за внимание и за совет.
Я хоть и не силен в ассемблере, но несколько работающих функций у меня есть.
Буду пробовать...

Спасибо: 0 
Профиль





Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 07.06.06 11:14. Заголовок: Re:


Сел, разобрался - не совсем то, что я хочу.
Мне нужна функция, которая бы изменяла заголовок окна моей Clipper-программы.
Для WindowsXP я использую команду Title (но в ней есть некоторые ограничения и глюки),
а вот для Windows9x такой команды не существует.
Перелазил весь www.the-oasis.net, но ничего подобного не встретил...

Спасибо: 0 
Профиль



Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 07.06.06 11:26. Заголовок: Re:


Пробуйте утилиту:
http://www.nirsoft.net/utils/nircmd.html

Спасибо: 0 
Профиль





Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 07.06.06 11:45. Заголовок: Re:


пиплиотечку для Win9x могу выслать

Спасибо: 0 
Профиль





Не зарегистрирован
Зарегистрирован: 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) тоже пригодится - классная штука.

Спасибо всем, кто откликнулся!

Спасибо: 0 
Профиль
постоянный участник


Не зарегистрирован
Зарегистрирован: 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.

Спасибо: 0 
Профиль





Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 08.06.06 00:37. Заголовок: Re:


Григорьев Владимир пишет:

 цитата:
OL_95AppTitle()
Я думаю, эти функции не будут работать в XP.


Именно так: конкретно эта функция не работает. Насчёт других не знаю.

ort пишет:

 цитата:
Для WindowsXP я использую команду Title (но в ней есть некоторые ограничения и глюки),


А как именно ты её используешь, не понял? В смысле чистой физики: где и чего писать надо, чтобы эту команду запустить?

Спасибо: 0 
Профиль





Не зарегистрирован
Зарегистрирован: 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


Спасибо: 0 
Профиль
постоянный участник


Не зарегистрирован
Зарегистрирован: 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 об этом читал, но так как меня тогда это не интересовало, "пропустил мимо ушей". Сейчас об этом сожалею, а какая была книга, уже не помню.

Спасибо: 0 
Профиль



Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 08.06.06 13:23. Заголовок: Re:


To ort
У вас программа PROTECTED ?

Спасибо: 0 
Профиль





Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 08.06.06 18:15. Заголовок: Re:


2 saulius
Думаю, у меня программа PROTECTED.
Использую стандартный RTLink из поставки Clipper 5.2e.


Спасибо: 0 
Профиль



Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 08.06.06 19:16. Заголовок: Re:


PROTECTED mode линкеры Blinker, ExoSpace, CauseWay...
а RTLink - REAL mode линкер.
Я спросил потому, что
OL_95AppTitle(cWinTitle) + Blinker + PROTECTED + Win98
у меня не работает.
Как у других ?

Спасибо: 0 
Профиль
постоянный участник


Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 08.06.06 19:32. Заголовок: Re:


RTLINK разве создает программы в защищенном режиме процессора?

Спасибо: 0 
Профиль





Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 08.06.06 19:48. Заголовок: Re:


Да, оплошал я - просто никогда раньше не обращал внимания на режимы процессора.
Значит, RealMode.
И у меня все это работает - как я привел в примере.

Спасибо: 0 
Профиль
постоянный участник




Пост N: 38
Зарегистрирован: 24.09.05
ссылка на сообщение  Отправлено: 20.06.06 19:43. Заголовок: Re:


Григорьев Владимир пишет:

 цитата:
Может быть кто-нибудь этим занимался?



См. Advantage & Six commander

Григорьев Владимир пишет:

 цитата:

Я пробовал, например, такую вещь, как перехват в Clipper закрытия окна. Однако что-то мой эксперимент в Windows XP не прошел. Правда я не пробовал его для Windows 98.



Перехват работает. См. в той же программе. Однако, он работает, если программа, отслеживающая закрытие запущена непосредственно из Пуск, выполнить (или ярлык на EXE). Если запускается из файл-коммандера или запускается батник, в котором предварительно грузятя резиденты - то нет. (Есть совсем хитрые способы, но они плохи)

Спасибо: 0 
Профиль
постоянный участник




Пост 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 + предварительно щзапросить через соответствующие сервисы память В ПЕРВОМ магабайте и в него положить заголовок - иначе по селектору не сработает

Спасибо: 0 
Профиль
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 105
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет