Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое
Goto page Previous  1, 2, 3 ... 126, 127, 128
 
Post new topic   Reply to topic    Total Commander Forum Index -> Плагины Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
lz57005



Joined: 05 Mar 2020
Posts: 5
Location: Беларусь

Post (Separately) Posted: Thu Nov 19, 2020 16:32    Post subject: Reply with quote

Теперь вопрос: можно ли нажать кнопку в окне используя msg, sendmsg вместо того чтобы посылать нажатие клавиш через send?
В TCFS2.core.ini есть пример взаимодействия с выпадающим списком:
Code:
; Выбрать в выпадающем списке элемент, начинающийся с заданного текста. Параметры: текст, дескриптор окна, режим поиска (0 - точное совпадение, 1 - начало)
select=sendmsg(#2, $014E, sendmsg(#2, if(#3-0, $014C, $0158), 0, #1))

Предполагаю аналогичным образом можно взаимодействовать с любым контролом окна. Но непонятно как определить код самого сообщения.
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4787
Location: Ростов-Дон

Post (Separately) Posted: Mon Nov 23, 2020 12:49    Post subject: Reply with quote

Теоретически можно послать окну WM_COMMAND с идентификатором кнопки, и в классических окнах Windows идентификаторы зашиваются в ресурсы и, как правило, неизменны. Но на практике это весьма проблематично, т.к. тотал унаследовал от Delphi динамическое назначение идентификаторов оконных элементов.
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
lz57005



Joined: 05 Mar 2020
Posts: 5
Location: Беларусь

Post (Separately) Posted: Mon Nov 23, 2020 15:45    Post subject: Reply with quote

Если рассмотреть конкретный пример?
Файл - Внутренние ассоциации (только в TC)...
TDlgCustomColors, Handle кнопки ОК при каждом запуске totalcmd.exe - разный. Класс TButton, Caption OK. Но эта кнопка имеет модальный результат 1.
Code:

    object Button3: TButton
      Tag = 4001
      Left = 4
      Top = 120
      Width = 110
      Height = 23
      Caption = 'OK'
      Default = True
      ModalResult = 1
      TabOrder = 4
      OnClick = Button3Click
    end

Может возможно послать ModalResult 1, вместо нажатия ОК, если handle кнопки нельзя найти?
Ну или кто-нибудь знает как завставить TC перечитать секцию Association в wincmd.ini и повешать это действие на шорткат, чтобы клавиши модификаторы не мешали посылать TAB+SPACE или ENTER.
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4787
Location: Ростов-Дон

Post (Separately) Posted: Wed Nov 25, 2020 11:50    Post subject: Reply with quote

ModalResult - это выдумка Delphi, с ними нельзя работать через Windows API.

Дескриптор кнопки найти можно, для этого есть функция findwnd. Искать можно по комбинации класса и текста (но в связи с тем, что у разных пользователей могут быть разные языки, по тексту окна в общем случае искать не очень надёжно) или по комбинации класса и порядкового номера кнопки в окне (но это не гарантирует результат, если надо пользоваться несколькими версиями тотала, т.к. в разных версиях номер кнопки может быть разный).

А потом найденной кнопке по идее можно послать какое-нибудь сообщение о нажатии кнопки или клике мыши.
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
sa



Joined: 29 Apr 2009
Posts: 2344

Post (Separately) Posted: Wed Nov 25, 2020 17:21    Post subject: Reply with quote

lz57005 wrote:
как завставить TC перечитать секцию Association в wincmd.ini

Может, здесь что-то полезное найдётся...
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Плагины Total Commander All times are GMT + 4 Hours
Goto page Previous  1, 2, 3 ... 126, 127, 128
Page 128 of 128

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group