Автор | Сообщение |
gfilatov
|
| модератор
|
Пост N: 699
Зарегистрирован: 25.05.05
|
|
Отправлено: 29.01.08 13:59. Заголовок: Новая версия Расширенного релиза библиотеки MiniGUI (часть VI ) (продолжение)
Начало темы находится здесь, а теперь АНОНС * АНОНС * АНОНС * АНОНС * АНОНС Готовится к опубликованию новая сборка №48, которая выйдет в конце недели. Если у Вас есть интересные наработки для включения в новый релиз, то сейчас самое удобное время для их отправки мне Кратко, что нового: - исправление обнаруженных ошибок и неточностей кода; - новый класс HEADERIMAGE для Grid и Browse; - свойство Address в Hyperlink может теперь открывать папку или файл на диске; - добавлен NOTABSTOP класс для Browse; - поддержка пользовательских компонентов (заимствована из оффициального релиза); - расширения и исправления в библиотеках TsBrowse и PropGrid; - обновлены сборки Харбор и HMGS-IDE; - новые и обновленные старые примеры (как обычно ).
|
|
|
Ответов - 300
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
All
[только новые]
|
|
rvu
|
| |
Пост N: 326
Зарегистрирован: 05.11.05
|
|
Отправлено: 31.05.21 11:20. Заголовок: gfilatov2002 пишет: ..
gfilatov2002 пишет: цитата: | Архив уникодной сборки также обновил с учетом обсуждения работы функции GetWindowText() |
| А FindWindowEx() будете менять под уникод?
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 1864
Зарегистрирован: 11.02.10
|
|
Отправлено: 31.05.21 13:22. Заголовок: SergKis пишет: Можн..
SergKis пишет: цитата: | Можно получить этот вариант на посмотрреть ? |
| Отправил ссылку в личку
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 3747
Зарегистрирован: 17.02.12
|
|
Отправлено: 31.05.21 13:24. Заголовок: gfilatov2002 Спасиб..
gfilatov2002 Спасибо
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 3748
Зарегистрирован: 17.02.12
|
|
Отправлено: 31.05.21 14:27. Заголовок: gfilatov2002 что то..
gfilatov2002 что то не то с GetWindowText() unicode Скрытый текст
/* * MINIGUI - Harbour Win32 GUI library Demo * */ #define _HMG_OUTLOG #include "hmg.ch" REQUEST HB_CODEPAGE_UTF8 REQUEST HB_CODEPAGE_RU1251 REQUEST DBFCDX *-----------------------------------------------------------------------------* FUNCTION Main() *-----------------------------------------------------------------------------* SET CODEPAGE TO UNICODE RddSetDefault("DBFCDX") SET CENTURY ON SET DATE GERMAN SET DELETED ON SET EXCLUSIVE ON SET EPOCH TO 2000 SET AUTOPEN ON SET EXACT ON SET SOFTSEEK ON SET NAVIGATION EXTENDED SET FONT TO "Arial", 11 *-------------------------------- SET OOP ON *-------------------------------- ? "Find Text =", "HandlesHbWin('VLC iptv viewer.', , .T.)" ? HandlesHbWin("VLC iptv viewer.", , .T.) ? ? "Find Class = ", "HandlesHbWin(, 'HMG_FORM_wM3U', .T.)" ? HandlesHbWin(, "HMG_FORM_wM3U", .T.) ? RETURN *-----------------------------------------------------------------------------* STATIC FUNCTION HandlesHbWin( cText, cClass, lLogOut ) *-----------------------------------------------------------------------------* LOCAL i, h, t LOCAL aWnd := EnumWindows() LOCAL aTmp := {} LOCAL aRet := {} IF Empty(cClass) aTmp := aWnd ELSE FOR EACH h IN aWnd IF IsWindowHandle( h ) .and. GetClassName( h ) == cClass AAdd( aTmp, h ) ENDIF NEXT ENDIF IF ! empty(cText) .and. HB_ISCHAR(cText) .and. Len(aTmp) > 0 ? aTmp FOR EACH h IN aTmp ? hb_enumindex(h), h, IsWindowHandle( h ) IF IsWindowHandle( h ) ?? "t =" BEGIN SEQUENCE WITH { |e|break(e) } ?? "->" t := GetWindowText( h ) ?? "<-" END SEQUENCE ?? t IF cText $ t ; AAdd( aRet, h ) ENDIF ENDIF NEXT ELSE aRet := aTmp ENDIF IF ! Empty(lLogOut) FOR i := 1 TO Len(aTmp) IF IsWindowHandle( aTmp[ i ] ) t := GetWindowText(aTmp[ i ]) _LogFile( .T., str(i, 5), aTmp[ i ], GetClassName(aTmp[ i ]), t ) ENDIF NEXT ENDIF RETURN aRet
| Снимается "Abnormal program termination"
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 1865
Зарегистрирован: 11.02.10
|
|
Отправлено: 31.05.21 16:55. Заголовок: SergKis пишет: что ..
SergKis пишет: Ваш пример у меня отработал нормально. Прошу попробовать снова с самого начала...
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 3749
Зарегистрирован: 17.02.12
|
|
Отправлено: 31.05.21 20:16. Заголовок: gfilatov2002 пишет П..
gfilatov2002 пишет цитата: | Прошу попробовать снова с самого начала... |
| Так и сделал, не помогло. Убрал GetWndowText(), вывод только класса - работает, на запросе текста валится на строке 32 15008680 GDI+ Hook Window Class Пример Скрытый текст
/* * MINIGUI - Harbour Win32 GUI library Demo * */ #define _HMG_OUTLOG #include "hmg.ch" REQUEST HB_CODEPAGE_UTF8, HB_CODEPAGE_RU1251 REQUEST DBFCDX *-----------------------------------------------------------------------------* FUNCTION Main() *-----------------------------------------------------------------------------* SET CODEPAGE TO UNICODE RddSetDefault("DBFCDX") SET CENTURY ON SET DATE GERMAN SET DELETED ON SET EXCLUSIVE ON SET EPOCH TO 2000 SET AUTOPEN ON SET EXACT ON SET SOFTSEEK ON SET NAVIGATION EXTENDED SET FONT TO "Arial", 11 *-------------------------------- SET OOP ON *-------------------------------- ? "Find Text =", "HandlesHbWin(, , .T.)" ? HandlesHbWin( , , .T.) ? /* ? "Find Class = ", "HandlesHbWin(, 'HMG_FORM_wM3U', .T.)" ? HandlesHbWin(, "HMG_FORM_wM3U", .T.) ? */ ? "Find Text =", "HandlesHbWin('VLC iptv viewer.', , .T.)" ? HandlesHbWin("VLC iptv viewer.", , .T.) ? */ RETURN *-----------------------------------------------------------------------------* STATIC FUNCTION HandlesHbWin( cText, cClass, lLogOut ) *-----------------------------------------------------------------------------* LOCAL i, h, t LOCAL aWnd := EnumWindows() LOCAL aTmp := {} LOCAL aRet := {} IF Empty(cClass) aTmp := aWnd ELSE FOR EACH h IN aWnd IF IsWindowHandle( h ) .and. GetClassName( h ) == cClass AAdd( aTmp, h ) ENDIF NEXT ENDIF IF ! empty(cText) .and. HB_ISCHAR(cText) .and. Len(aTmp) > 0 ? aTmp FOR EACH h IN aTmp ? hb_enumindex(h), h, IsWindowHandle( h ) IF IsWindowHandle( h ) ?? "t =" BEGIN SEQUENCE WITH { |e|break(e) } ?? "->" t := GetWindowText( h ) ?? "<-" END SEQUENCE ?? t IF cText $ t ; AAdd( aRet, h ) ENDIF ENDIF NEXT ELSE aRet := aTmp ENDIF IF ! Empty(lLogOut) FOR i := 1 TO Len(aTmp) IF IsWindowHandle( aTmp[ i ] ) //t := GetWindowText(aTmp[ i ]) _LogFile( .T., str(i, 5), aTmp[ i ], GetClassName(aTmp[ i ]) /*, t*/ ) ENDIF NEXT ENDIF RETURN aRet
| Log файл (сначала вывод только с классом, потом с текстом) Скрытый текст
Find Text = HandlesHbWin(, , .T.) 1 131138 SynTrackCursorWindowClass 2 131180 tooltips_class32 3 131202 SynTPEnhTFPWndClass 4 131140 SynTPHelperWndClass 5 65922 ForegroundStaging 6 65872 ForegroundStaging 7 65754 tooltips_class32 8 65782 tooltips_class32 9 65776 tooltips_class32 10 65772 tooltips_class32 11 65746 tooltips_class32 12 131336 tooltips_class32 13 65796 tooltips_class32 14 65792 tooltips_class32 15 65950 CiceroUIWndFrame 16 65714 Shell_TrayWnd 17 131338 TaskListThumbnailWnd 18 65794 tooltips_class32 19 65756 NotifyIconOverflowWindow 20 66056 SystemTray_Main 21 66088 ATL:00007FF855FA21F0 22 66114 ATL:00007FF84C89C230 23 66112 PNIHiddenWnd 24 66480 Internet Explorer_Hidden 25 66478 Internet Explorer_Hidden 26 66476 Internet Explorer_Hidden 27 66468 Internet Explorer_Hidden 28 65942 ClassicShell.COwnerWindow 29 65888 CiceroUIWndFrame 30 65886 CiceroUIWndFrame 31 65836 tooltips_class32 32 15008680 GDI+ Hook Window Class 33 590832 ConsoleWindowClass 34 65862 ApplicationManager_DesktopShellWindow 35 4063322 CTouchPadSynchronizer 36 3997828 CTouchPadSynchronizer 37 66442 SideBar_HTMLHostWindow 38 66430 BasicWindow 39 328538 FarHiddenWindowClass 40 525076 WindowsForms10.Window.8.app.0.d3a00f_r6_ad1 41 262970 WindowsForms10.Window.0.app.0.d3a00f_r6_ad1 42 394082 WindowsForms10.tooltips_class32.app.0.d3a00f_r6_ad1 43 328026 ComboLBox 44 394230 ComboLBox 45 131802 .NET-BroadcastEventWindow.4.0.0.0.d3a00f.0 46 328080 GDI+ Hook Window Class 47 131608 WindowsForms10.Window.0.app.0.141b42a_r34_ad1 48 131352 GDI+ Hook Window Class 49 197630 .NET-BroadcastEventWindow.4.0.0.0.141b42a.0 50 459726 ATL:00A9A850 51 66490 GDI+ Hook Window Class 52 66502 VSyncHelper-000001EE4DD3B2A0-235bd58 53 66506 VSyncHelper-000001EE4DD3B240-235c065 54 66508 VSyncHelper-000001EE4DD3B1E0-235c1ac 55 66504 VSyncHelper-000001EE4DD3B180-235c013 56 66360 GadgetHostListener 57 66354 8GadgetPackHelper 58 66350 BasicWindow 59 66346 GDI+ Hook Window Class 60 197044 EVERYTHING_TASKBAR_NOTIFICATION 61 131546 WindowsForms10.Window.0.app.0.14a43c5_r6_ad1 62 131544 .NET-BroadcastEventWindow.4.0.0.0.14a43c5.0 63 66208 HwndWrapper[SmartAudio3.exe;;666cf6d2-fb24-4259-95a1-8873a2d0dd06] 64 66200 HwndWrapper[SmartAudio3.exe;;498f853c-6c9e-4451-92fc-be6461d8dd95] 65 131732 HwndWrapper[SmartAudio3.exe;;ea92a926-afef-45ac-b7bf-165f90465a8d] 66 197240 ATL:00007FF848D17D50 67 131206 SynTPEnhTrayWndClass 68 66106 CTouchPadSynchronizer 69 66104 SynTPEnhWndClass 70 66100 ScrollerooWindowClass 71 66096 WorkerW 72 66048 WorkerW 73 66050 OleDdeWndClass 74 65930 TabletModeCoverWindow 75 66066 WorkerW 76 66068 WorkerW 77 65912 DummyDWMListenerWindow 78 65906 EdgeUiInputTopWndClass 79 65870 OleDdeWndClass 80 65858 WorkerW 81 65854 ClassicStartMenu.CStartHookWindow 82 65844 WorkerW 83 65842 WorkerW 84 65822 WorkerW 85 65820 WorkerW 86 131716 AfxFrameOrView140su 87 197210 WorkerW 88 131710 BluetoothNotificationAreaIconWindowClass 89 262754 QLBCONTROLLER 90 131190 MS_WebcheckMonitor 91 65712 #32770 92 65686 DDEMLEvent 93 65682 DDEMLMom 94 131104 PushNotificationsPowerManagement 95 131106 COMTASKSWINDOWCLASS 96 65620 Dwm 97 131110 CicLoaderWndClass 98 263244 tooltips_class32 99 131652 ESET Client Frame 100 66438 SideBar_HTMLHostWindow 101 66426 BasicWindow 102 66440 SideBar_HTMLHostWindow 103 66428 BasicWindow 104 66466 SideBar_HTMLHostWindow 105 66462 BasicWindow 106 9962252 WorkerW 107 65828 Progman 108 66134 MSCTFIME UI 109 66102 IME 110 131142 IME 111 1507496 MSCTFIME UI 112 65924 IME 113 65814 MSCTFIME UI 114 65716 IME 115 66090 IME 116 15401362 IME 117 328526 MSCTFIME UI 118 459756 IME 119 1311580 MSCTFIME UI 120 65860 IME 121 66456 MSCTFIME UI 122 66436 IME 123 394056 IME 124 525300 MSCTFIME UI 125 459580 IME 126 262562 IME 127 131354 IME 128 197248 IME 129 132062 IME 130 66492 IME 131 66356 IME 132 66352 IME 133 66348 IME 134 196986 IME 135 131734 IME 136 131706 IME 137 66098 IME 138 65856 IME 139 65830 MSCTFIME UI 140 65824 IME 141 66182 IME 142 66178 IME 143 66152 IME 144 65718 IME 145 131102 IME 146 197230 MSCTFIME UI 147 131578 IME 148 66452 MSCTFIME UI 149 66434 IME 150 66454 MSCTFIME UI 151 66432 IME 152 66474 MSCTFIME UI 153 66464 IME 154 65850 MSCTFIME UI 155 65684 IME ARRAY[155] Find Text = HandlesHbWin('VLC iptv viewer.', , .T.) ARRAY[155] 1 131138 .T. t = -> <- '' 2 131180 .T. t = -> <- '' 3 131202 .T. t = -> <- Forcepad driver tray window 4 131140 .T. t = -> <- '' 5 65922 .T. t = -> <- '' 6 65872 .T. t = -> <- '' 7 65754 .T. t = -> <- '' 8 65782 .T. t = -> <- '' 9 65776 .T. t = -> <- '' 10 65772 .T. t = -> <- '' 11 65746 .T. t = -> <- '' 12 131336 .T. t = -> <- '' 13 65796 .T. t = -> <- '' 14 65792 .T. t = -> <- '' 15 65950 .T. t = -> <- CiceroUIWndFrame 16 65714 .T. t = -> <- '' 17 131338 .T. t = -> <- '' 18 65794 .T. t = -> <- '' 19 65756 .T. t = -> <- '' 20 66056 .T. t = -> <- Battery Meter 21 66088 .T. t = -> <- '' 22 66114 .T. t = -> <- Network Flyout 23 66112 .T. t = -> <- '' 24 66480 .T. t = -> <- '' 25 66478 .T. t = -> <- '' 26 66476 .T. t = -> <- '' 27 66468 .T. t = -> <- '' 28 65942 .T. t = -> <- '' 29 65888 .T. t = -> <- CiceroUIWndFrame 30 65886 .T. t = -> <- TF_FloatingLangBar_WndTitle 31 65836 .T. t = -> <- '' 32 15008680 .T. t = ->
| В последней версии не unicode - все работает
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 3750
Зарегистрирован: 17.02.12
|
|
Отправлено: 31.05.21 20:39. Заголовок: PS восстановил пред...
PS восстановил пред. версию hmg-21.03-unicode, снятия нет, строка получается в лог такая (с бяками) 32 5244084 GDI+ Hook Window Class Geꆐ䮀;
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 1866
Зарегистрирован: 11.02.10
|
|
Отправлено: 31.05.21 21:47. Заголовок: SergKis пишет: не п..
SergKis пишет: цитата: | не помогло. Убрал GetWndowText(), вывод только класса - работает, на запросе текста валится |
| Проверял работу Вашего примера под Windows 7 и Windows 10 - проблем не было. На всякий случай привожу текущую реализацию функции GetWindowText() Скрытый текст
HB_FUNC( GETWINDOWTEXT ) { #ifdef UNICODE LPSTR pStr; #endif HWND hWnd = ( HWND ) HB_PARNL( 1 ); int iLen = GetWindowTextLength( hWnd ); LPTSTR szText = ( TCHAR * ) hb_xgrab( ( iLen + 1 ) * sizeof( TCHAR ) ); #ifndef UNICODE iLen = GetWindowText( hWnd, szText, iLen + 1 ); hb_retclen( szText, iLen ); #else GetWindowText( hWnd, szText, iLen + 1 ); pStr = WideToAnsi( szText ); hb_retc( pStr ); hb_xfree( pStr ); #endif hb_xfree( szText );
|
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 3751
Зарегистрирован: 17.02.12
|
|
Отправлено: 01.06.21 10:56. Заголовок: gfilatov2002 пишет Н..
gfilatov2002 пишет цитата: | На всякий случай привожу текущую реализацию функции GetWindowText() |
| Ф-ии отличаются, у меня вариант в zip такой Скрытый текст
HB_FUNC( GETWINDOWTEXT ) { #ifdef UNICODE LPSTR pStr; #endif HWND hWnd = ( HWND ) HB_PARNL( 1 ); int iLen = GetWindowTextLength( hWnd ); LPTSTR szText = ( TCHAR * ) hb_xgrab( ( iLen + 1 ) * sizeof( TCHAR ) ); #ifndef UNICODE iLen = GetWindowText( hWnd, szText, iLen + 1 ); hb_retclen( szText, iLen ); #else GetWindowText( hWnd, szText, ( iLen + 1 ) * sizeof( TCHAR ) ); pStr = WideToAnsi( szText ); hb_retc( pStr ); hb_xfree( pStr ); #endif hb_xfree( szText ); }
| сделал правку, но сборка не удалась, много warning-ов и в итоге не собирается пример PS в своей версии unicode строка 32 15008680 GDI+ Hook Window Class выглядит так 37 22086474 GDI+ Hook Window Class G
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 1867
Зарегистрирован: 11.02.10
|
|
Отправлено: 01.06.21 11:25. Заголовок: SergKis пишет: сбор..
SergKis пишет: Я уже обновил архив Unicode сборки, адрес прежний
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 3752
Зарегистрирован: 17.02.12
|
|
Отправлено: 01.06.21 12:47. Заголовок: gfilatov2002 пишет о..
gfilatov2002 пишет цитата: | обновил архив Unicode сборки |
| Работает пример на этой сборке, но смущает строка с бяками (в файле бяки визуально ? в квадратике) 32 86835678 GDI+ Hook Window Class G用眠眎; в нашей сборке кракозябликов нет
|
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 1868
Зарегистрирован: 11.02.10
|
|
Отправлено: 02.06.21 13:06. Заголовок: Dima пишет: если ..
Dima пишет: цитата: | если "сломали" работающую функцию FindWindowEx в уникодной версии , то надо бы починить. |
| Поправил работу функции FindWindowEx в уникодной версии Залил Unicode архив с исправлением как 1-й апдейт версии 21.05
|
|
|
rvu
|
| |
Пост N: 327
Зарегистрирован: 05.11.05
|
|
Отправлено: 02.06.21 17:32. Заголовок: gfilatov2002 пишет: ..
gfilatov2002 пишет: цитата: | Поправил работу функции FindWindowEx в уникодной версии Залил Unicode архив с исправлением как 1-й апдейт версии 21.05 |
| Большое спасибо!
|
|
|
rvu
|
| |
Пост N: 328
Зарегистрирован: 05.11.05
|
|
Отправлено: 02.06.21 20:41. Заголовок: Использую HPDFPRINT...
Использую HPDFPRINT. А какую кодировку писать для уникода в SET HPDFDOC ENCODING TO? И работает ли это вообще с уникодом?
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 6963
Зарегистрирован: 12.09.06
|
|
Отправлено: 07.06.21 01:03. Заголовок: Искал для себя приме..
Искал для себя пример, нашёл вылет БЕЗ ПОКАЗА ОКНА ОШИБКИ в примере BASIC\Tooltip\TrackingToolTips Что править не разбирался. Подскажите как можно сделать типа Show Balloon для окна расположенного в Панели задач ? Для трея примеры нашёл, а для Панели задачи нет. Можно ли сделать Show Balloon чтобы располагался в правом верхнем углу рабочего стола на 10-20 секунд ?
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 1869
Зарегистрирован: 11.02.10
|
|
Отправлено: 07.06.21 10:53. Заголовок: Andrey пишет: нашёл..
Andrey пишет: цитата: | нашёл вылет БЕЗ ПОКАЗА ОКНА ОШИБКИ в примере BASIC\Tooltip\TrackingToolTips |
| Поправил в первом апдейте сборки 21.05 Благодарю за помощь
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 1870
Зарегистрирован: 11.02.10
|
|
Отправлено: 07.06.21 10:56. Заголовок: Всем кому это интересно
|
|
|
i3t4j6
|
| |
Пост N: 139
Зарегистрирован: 12.06.06
|
|
Отправлено: 08.06.21 08:08. Заголовок: gfilatov2002 пишет: ..
gfilatov2002 пишет: цитата: | Выложил майскую ANSI сборку 21.05 с учетом всех последних изменений |
| Нельзя ли предусмотреть возможность переключения на старый добрый вариант вывода информации в ErrorLog file (без анимации) ?
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 1871
Зарегистрирован: 11.02.10
|
|
Отправлено: 08.06.21 10:56. Заголовок: i3t4j6 пишет: вариа..
i3t4j6 пишет: цитата: | вариант вывода информации в ErrorLog file (без анимации |
| Просматриваю файл ErrorLog по клавише F3 в Total Commanderе - никакой анимации там нет. Другой вариант - собственный обработчик ошибок, образцы есть в примерах
|
|
|
i3t4j6
|
| |
Пост N: 140
Зарегистрирован: 12.06.06
|
|
Отправлено: 08.06.21 12:22. Заголовок: Program Error -вывод..
Program Error -вывод ошибки на экран - обыкновенный текст на белом фоне, а не желтое на красном и на весь экран !
|
|
|
Ответов - 300
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
All
[только новые]
|
|