Форум » [x]Harbour » Проблема с ярлыком и окном терминалки GTWVT » Ответить

Проблема с ярлыком и окном терминалки GTWVT

Лукашевский: Делаю ярлык на EXEшник. При запуске получаю 2 окна - окно моей программы и рядом ещё одно, пустое! И соотв. внизу в статусной строке рабочего стола тоже две кнопки... Смотрю свойства пустого окна - там всё как надо - можно изменить шрифт, размер окна и т.д. - в отличие от окна моей программы, только вот во вкладке "Программа" в параметре "Командная строка" - какой-то C:\WINME\SYSTEM\conagent.exe Что бы это значило? Закрываю это пустое окно - закрывается и окно моей программы. И наоборот... А ярлык я делал собственно для того, чтобы можно было программу на полный экран развернуть. Это вообще-то возможно?

Ответов - 96, стр: 1 2 3 4 5 All

Pasha: Функция wvt_choosefont

Andrey: Спасибо Паша ! Попробовал ее в действии и обнаружил что она возращает только имя фонта, а размер и все остальное не возращает. aFont := wvt_choosefont() IF LEN(aFont) > 0 FOR nI := 1 TO LEN(aFont) ? nI,aFont[nI] NEXT ENDIF // возвращает 1 System 2 1 3 0 4 700 5 1 6 .F. 7 .F. 8 .F. Что делать ?

Лукашевский: Pasha пишет: Так GTI_FONTWIDTH заработал ? Заработал, зараза! После того как я убрал из линковки TBROWSE, взятый когда-то из сырцов для исправления имевшейся там ошибки. А вот какая такая прочная-порочная зависимость между TBROWSE и HB_GtInfo() - непонятно...


Лукашевский: Лукашевский пишет: Делаю ярлык на EXEшник. При запуске получаю 2 окна - окно моей программы и рядом ещё одно, пустое! И соотв. внизу в статусной строке рабочего стола тоже две кнопки... Смотрю свойства пустого окна - там всё как надо - можно изменить шрифт, размер окна и т.д. - в отличие от окна моей программы, только вот во вкладке "Программа" в параметре "Командная строка" - какой-то C:\WINME\SYSTEM\conagent.exe Что бы это значило? Наконец-то разобрался! Оказывается, такая ситуация возникает, только если продолжить пользоваться ярлыком который был для Clipper-программы! А если сделать новый ярлык, то всё OK! Но возникает другая проблема: если указать в свойствах ярлыка "Совместимость с Windows'95", программа запускается в свёрнутом окне в панели задач, и чтобы ею воспользоваться, приходится кликать на ней мышкой...

Лукашевский: Лукашевский пишет: если указать в свойствах ярлыка "Совместимость с Windows'95", И ещё HB_GTInfo(GTI_WINTITLE, ....) в Win'XP для программы в свёрнутом состоянии при выставленной совместимости неправильно текст выводит (пустыми квадратиками). В связи с этим возникает 2 вопроса: 1) как программно развернуть терминалку GTWIN из свёрнутого состояния, и 2) как получить настройки ярлыка, которым запущена программа - потому что иначе я не понимаю, как точно определить, нужно ли при выводе GTI_WINTITLE использовать перекодировку HB_OEMToAnsi().

Andrey: Лукашевский пишет: 1) как программно развернуть терминалку GTWIN из свёрнутого состояния /* * ShowWindow() Commands в wvtwin.ch */ #define SW_NORMAL 1 #define SW_SHOWMINIMIZED 2 #define SW_SHOWMAXIMIZED 3 #define SW_MAXIMIZE 3 #define SW_SHOWNOACTIVATE 4 #define SW_SHOW 5 ИЛИ смотри: Z:\xHarbour\contrib\wvtgui\ChangeLog 2004-01-26 14:10 UTC+0530 Pritpal Bedi <pritpal@vouchcac.com> * xharbour/source/rtl/gtwvt/gtwvt.c + Wvt_Minimize() Minimizes the application window. Useful when application is engaged in long uninterrupted tasks. + Wvt_Maximize() Maximizes, I mean, restores to normal position the previously minimized application window. Лукашевский пишет: 2) как получить настройки ярлыка, которым запущена программа - потому что иначе я не понимаю, как точно определить, нужно ли при выводе GTI_WINTITLE использовать перекодировку HB_OEMToAnsi(). Перекодировку делать нужно ! // - вывести заголовок окна и иконку окна cNameWin := HB_OEMTOANSI( "Тестовая задача для gtwvt-терминала !" ) GTInfo( 26, cNameWin ) GTInfo( 27, 'main.ico' )

Лукашевский: Andrey пишет: Перекодировку делать нужно ! Andrey, ты не уловил шутку юмора: у меня в программе стоит перекодировка HB_OemToAnsi() для выводимого под XP заголовка окна, это естественно. И при стандартных значениях свойств ярлыка, которым запускается программа, заголовок выводится нормально. Но если для того же самого ярлыка под тем же самым XP поставить в Свойствах во вкладке "Совместимость" галочку напротив "Совместимость с Windows'95", результат вывода заголовка станет печальным. Проверить-то легко, не поленись. Может возникнуть вопрос: зачем ставить эту галочку? Ну, во-первых, юзвери - товарищи по определению непредсказуемые, а во-вторых, эту галку надо ОБЯЗАТЕЛЬНО ставить, если на сервере стоит Win'9x, а на компах-клиентах - что-нибудь NTшное. Иначе будешь получать зависание на первой же попытке записи в базу (это, конечно, под чистым Clipper/xHarbour, под ADS такого эффекта может и не быть).

Лукашевский: Andrey пишет: ShowWindow() Commands в wvtwin.ch Начнём с того, что функция ShowWindow() не обнаруживается, хотя и gtwvt.lib и wvtgui.lib прилинкованы. Ладно, делаю ShowWindow() сам: HB_FUNC( SHOWWINDOW ) { ShowWindow( (HWND) hb_parnl(1), hb_parnl(2) ); } и пытаюсь юзать: ShowWindow(HB_GtInfo(GTI_GETWIN), 3) или ShowWindow(HB_GtInfo(GTI_WINTITLE), 3) На ошибке не сыплется, но и эффекта - НОЛЬ. Может, я невнятно объяснил задачу? Для винды окно у программы всегда одно (даже если терминал GTWVT, тамошние виндовые функции я не использую). Запускается программа, по какой-то причине (неважно) - в минимизированном окне. Как это самое окно развернуть? Можно конкретный пример, а не только упоминание о функции?

Andrey: Держи для GTWIN (для GTWVT - посмотрю чуть позже): /* см. описание GetForegroundWindow() */ INIT PROCEDURE GetHandle() PUBLIC hWnd := GetForegroundWindow() FUNCTION MAIN SETCOLOR("15/2") CLEAR SCREEN MINIMIZE( M->hWnd ) tone(800,2) INKEY(4) MAXIMIZE( M->hWnd ) tone(400,2) WAIT RETURN NIL /* * C - level */ #pragma BEGINDUMP #include "hbapi.h" #include <windows.h> HB_FUNC( GETFOREGROUNDWINDOW ) { hb_retnl( (LONG) GetForegroundWindow() ); } HB_FUNC( MINIMIZE ) { ShowWindow( (HWND) hb_parnl(1), SW_MINIMIZE ); } HB_FUNC( MAXIMIZE ) { ShowWindow( (HWND) hb_parnl(1), SW_RESTORE ); } #pragma ENDDUMP

Andrey: Держи для GTWVT: //-------------------------------------------------------------------// /* * ShowWindow() Commands */ #define SW_HIDE 0 #define SW_SHOWNORMAL 1 #define SW_NORMAL 1 #define SW_SHOWMINIMIZED 2 #define SW_SHOWMAXIMIZED 3 #define SW_MAXIMIZE 3 #define SW_SHOWNOACTIVATE 4 #define SW_SHOW 5 #define SW_MINIMIZE 6 #define SW_SHOWMINNOACTIVE 7 #define SW_SHOWNA 8 #define SW_RESTORE 9 #define SW_SHOWDEFAULT 10 #define SW_FORCEMINIMIZE 11 #define SW_MAX 11 INIT PROCEDURE GetHandle() PUBLIC hWnd M->hWnd := GetForegroundWindow() FUNCTION MAIN SETCOLOR("15/2") CLEAR SCREEN Wvt_ShowWindow( M->hWnd, SW_MINIMIZE ) tone(800,2) INKEY(4) Wvt_ShowWindow( M->hWnd, SW_MAXIMIZE ) tone(400,2) WAIT RETURN NIL /* * C - level */ #pragma BEGINDUMP #include "hbapi.h" #include <windows.h> HB_FUNC( GETFOREGROUNDWINDOW ) { hb_retnl( (LONG) GetForegroundWindow() ); } //-------------------------------------------------------------------// // Взята из xHarbour\contrib\wvtgui\wvtutils.c и исправлена мною HB_FUNC( WVT_SHOWWINDOW ) { ShowWindow( (HWND) hb_parnl(1), hb_parni( 2 ) ); } #pragma ENDDUMP

Лукашевский: Andrey пишет: HB_FUNC( MAXIMIZE ) { ShowWindow( (HWND) hb_parnl(1), SW_RESTORE ); } Procedure Main Public i ..... i = GetForegroundWindow() MAXIMIZE(i) ..... Терминал GTWIN. НЕ РАБОТАЕТ! Как запустилось свёрнутым, так и остаётся, пока мышью не ткнёшь!

Dima: Лукашевский Глянь тему http://clipper.borda.ru/?1-4-0-00000354-000-10001-0 ЗЫ Хотя у тебя вроде виндоус линолиум , может и не сработать.

Andrey: У меня оба примера работают под WinXP SP3 ! Перед отправкой проверял. Dima пишет: виндоус линолиум А что это за винда ?

Dima: Andrey пишет: А что это за винда ? Microsoft Windows ME Millenium

Лукашевский: Dima пишет: Хотя у тебя вроде виндоус линолиум А мои предыдущие сообщения в теме посмотреть слабо? Я здесь о домашнем компе говорю, на нём Win'XP Home SP3, лицензионный. Andrey пишет: У меня оба примера работают под WinXP SP3 ! А у меня - не работает! Может быть, конечно, это из-за галки "Совместимость с Windows'95" в свойствах ярлыка... Надо будет проверить в нормальных условиях.

Лукашевский: Dima пишет: Глянь тему http://clipper.borda.ru/?1-4-0-00000354-000-10001-0 Dima, спасибо большое! Петру тоже спасибо Теперь бы ещё иметь какую-нить возможность выяснить, запущена ли программа в режиме совместимости, или нет, - и проблема будет решена. А то заголовок окна GTWIN в режиме совместимости всё так же пугает кракозябрами и пустыми квадратиками...



полная версия страницы