|
|
|
Заголовки окон
|
|||
|---|---|---|---|
|
#18+
Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. Получаю заголовки окон, но откуда-то появляются дубликаты. Помогите убрать их. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2018, 17:29 |
|
||
|
Заголовки окон
|
|||
|---|---|---|---|
|
#18+
kameroоткуда-то появляются дубликаты почему ты считаешь, что не может быть окон с одинаковыми заголовками? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2018, 17:54 |
|
||
|
Заголовки окон
|
|||
|---|---|---|---|
|
#18+
kamero, Пример: открыто 5 программ, в каждой программе открытоа по три окна, в каждом окне есть кнопка OK Вот тебе и готово - 15 окон с одинаковым заголовком "OK". Кроме того учти, что если ты не видишь каких-то окон - это не значит что они не существуют, они могут существовать, но быть до поры невидимыми (скрытыми, закрытыми, называй как хочешь). В общем берешь программу типа Microsoft Spy++ или winSight32 и смотришь, что у тебя на компьютере с точки зрения Win32 GDI API ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2018, 18:01 |
|
||
|
Заголовки окон
|
|||
|---|---|---|---|
|
#18+
В том то и дело что они мне не нужны... Знаю я про то что окон может быть много. Но вот если их вытаскивать через GetWindowText в цикле. То на winXP, я их не получаю. А на 7ке они работают отлично. На мсдн, написано, что EnumWindows, работает лучше. Но что-то у меня не получается выдрать нормально эти заголовки, как вот этим кодом. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2018, 09:11 |
|
||
|
Заголовки окон
|
|||
|---|---|---|---|
|
#18+
Разобрался, теперь делает то что надо. Но есть еще 1 проблемка... LPARAM(ListBox1); <-- Что можно сюда передать? У меня приложение без формы. И соответственно, на ней нет ЛистБокса. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2018, 09:27 |
|
||
|
Заголовки окон
|
|||
|---|---|---|---|
|
#18+
Мне нужно, каждый title записать в БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2018, 09:33 |
|
||
|
Заголовки окон
|
|||
|---|---|---|---|
|
#18+
да что угодно передавай. Например, передавай класс, который пишет в БД, и в EnumWindowsProc используй его. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2018, 09:42 |
|
||
|
Заголовки окон
|
|||
|---|---|---|---|
|
#18+
Vizit0r, что не так делаю? Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2018, 09:56 |
|
||
|
Заголовки окон
|
|||
|---|---|---|---|
|
#18+
kameroVizit0r, что не так делаю?Передаете класс, а принимаете объект ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2018, 11:38 |
|
||
|
Заголовки окон
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_, Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. Сделал вот так, но теперь почему-то поток не циклится. Ииии заголовки не вытаскиваются( либо 1 от Delphi). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2018, 11:42 |
|
||
|
Заголовки окон
|
|||
|---|---|---|---|
|
#18+
kamero Код: pascal 1. Зачем передаешь ссылку на класс потока (даже не на экземпляр)? Попробуй это GetDesktopWindow . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2018, 11:51 |
|
||
|
Заголовки окон
|
|||
|---|---|---|---|
|
#18+
wadman, Я уже всё перетыкал... (Это служба, и в ней несколько потоков). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2018, 11:55 |
|
||
|
Заголовки окон
|
|||
|---|---|---|---|
|
#18+
kameroЭто службаКак Вы думаете, с каким десктопом работает служба и какие она видит окна? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2018, 12:02 |
|
||
|
Заголовки окон
|
|||
|---|---|---|---|
|
#18+
kameroЯ уже всё перетыкал..Не нужно перетыкивать. Нужно читать документацию и понимать, что делает каждая строчка кода ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2018, 12:03 |
|
||
|
Заголовки окон
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_, Я уже честно говорю уже перечитал всю документацию... Но хоть убей, не могу понять почему не работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2018, 12:27 |
|
||
|
Заголовки окон
|
|||
|---|---|---|---|
|
#18+
kameroЯ уже честно говорю уже перечитал всю документацию... Сила! Я вот не могу сказать про себя, что прочёл всю документацию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2018, 12:46 |
|
||
|
Заголовки окон
|
|||
|---|---|---|---|
|
#18+
21.02.2018 12:46, wadman пишет: > Сила! Я вот не могу сказать про себя, что прочёл _*всю*_ документацию. везёт вам, мужики. вы ЧИТАТЬ умеете... Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2018, 13:24 |
|
||
|
Заголовки окон
|
|||
|---|---|---|---|
|
#18+
kamero Код: pascal 1. А если там больше ? https://msdn.microsoft.com/ru-ru/library/windows/desktop/ms633521.aspx kamero Код: pascal 1. SIZEOF ??? Хочешь переполнение буфера получить? ну дело твоё. На старых Delphi это конечно работало, так уж совпало.... kamero Код: pascal 1. Зачем? TThread - это весьма не удобно.... http://docwiki.embarcadero.com/Libraries/Tokyo/en/System.Classes.TThread.CreateAnonymousThread https://stackoverflow.com/questions/34890222/createanonymousthread-with-parameters kameroМне нужно, каждый title записать в БД. 1) ну и зачем тебе вообще с потоками связываться? 2) если жизнь без потоков не мила - клади названия, прямо строками, в iOmniBlockingCollection А в основном окне по таймеру проверяй, если в коллекцию что-то нападало, то открывай транзакцию, срасывай в БД и коммить. Только нафиг тут потоки вообще не нужны ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2018, 14:09 |
|
||
|
Заголовки окон
|
|||
|---|---|---|---|
|
#18+
AriochSIZEOF ??? А что не так с SizeOf() *статического* массива? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2018, 16:20 |
|
||
|
Заголовки окон
|
|||
|---|---|---|---|
|
#18+
alekcvpAriochSIZEOF ??? А что не так с SizeOf() *статического* массива? Результат в байтах, а не в символах, которые могут быть и 2 байта. И больше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2018, 16:30 |
|
||
|
Заголовки окон
|
|||
|---|---|---|---|
|
#18+
21.02.2018 16:20, alekcvp пишет: > А что не так с SizeOf() *статического* массива? один чар не всегда равен одному байту Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2018, 16:31 |
|
||
|
Заголовки окон
|
|||
|---|---|---|---|
|
#18+
alekcvp, читаем описание функции SizeOf (что она возвращает) и описание функции GeetWindowsText (что она ожидает в третьем аргументе), потом сравниваем alekcvp*статического* массива? использование статического массива на стеке уже само по себе раскладывание граблей тем более при наличие в delphi весьма удобного типа string ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2018, 17:24 |
|
||
|
Заголовки окон
|
|||
|---|---|---|---|
|
#18+
Всё гораздо проще оказалось... Начиная с Windows Vista сервис не имеет доступа к десктопу. Поэтому не может ничего отловить. А для Windows-XP флаг Interactive в true необходимо поставить. Чтобы это работало и там и там, пришлось вернуться к циклу GetWindowText. А то что я кручу в потоках хэндлы. Чтобы отловить новые и записать в бд, без дублей. Поток живет отдельной жизнью, и время от времени кидает в основной что нашел. А то что свыше 255 символов, отбрасывается. (да и уже месяц проработала, и не было таких длинных заголовков). GetDesktopWindow, EnumWindowsProc и т.д. и т.п. Не будут работать в службе, в следствии того что я написал выше. Так что вот так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2018, 17:29 |
|
||
|
Заголовки окон
|
|||
|---|---|---|---|
|
#18+
kamero, Извини, сегодня как раз все телепаты разъехались. Они бы, конечно, точно узнали бы, что оказывается ты код запускаешь как сервис. Пиши сразу условия работы кода максимально, всем проще. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2018, 19:17 |
|
||
|
Заголовки окон
|
|||
|---|---|---|---|
|
#18+
makhaonИзвини, сегодня как раз все телепаты разъехались.Был один 21207489 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2018, 20:33 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39605379&tid=2041205]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
41ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
| others: | 221ms |
| total: | 337ms |

| 0 / 0 |
