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 

Single Post  Topic: Handle окна 
Author Message
VinSmile



PostPosted: Fri Nov 02, 2007 13:49    Post subject: Reply with quote

Доброго всем времени суток. Тут уже довольно много написано о получении дескриптора окна Total Commander, но все же хочу спросить:
Есть несколько методов для получения этого дескриптора, каким из них предпочтительней пользоваться? Я приведу три из них, которые с моей точки зрения, "имеют смысл быть" Smile
1. Проще всего использовать функцию FindWindow( "TTOTAL_CMD", NULL ) в том месте где нужно получить дескриптор, это еще удобно тем, что не нужно использовать глобальные переменные (хотя в данном случае это не очень страшно, так как дескриптор будет один для всех ). Но!!! Но, поскольку эта функция ищет окна в их Z порядке начиная с верху, нужно быть точно уверенным что в данный момент "нужный" экземпляр Total Commander - а использовался последним среди всех, возможно, открытых!!!
2. Гораздо надежней использовать поиск окна по классу, в процессе в котором этот плагин запущен (Пример выше, в посте от Maximus с поправкой от VadiMGP)... Но метод на много более громоздкой, и подразумевает использование глобальных переменных ( эх... как без них сложно Sad )
3. Использовать параметр MainWin из функции FsExecuteFile()... Тут нужно немного уточнить... Почему то, при первом обращении к плагину (для каждой сессии Total Commander), она вызывается с пустой строкой в качестве параметра RemoteName. Я пытался найти описание этого случая в спецификации, но там ни слова... Если кто-то имеет более подробную спецификацию, отпишите пожалуйста!!! Так как это наиболее простой способ получить дескриптор окна!!!
View user's profile Send private message


Powered by phpBB © 2001, 2005 phpBB Group