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 

Autorun
Goto page Previous  1, 2, 3 ... 25, 26, 27 ... 131, 132, 133  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Плагины Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
MVV



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

Post (Separately) Posted: Thu Oct 06, 2011 17:55    Post subject: Reply with quote

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



Joined: 07 Sep 2009
Posts: 1279

Post (Separately) Posted: Fri Oct 07, 2011 13:57    Post subject: Reply with quote

Первая бета с поддержкой x64. Изменений в функционале нет, в целом вроде всё работает, только возникли непонятные косяки с получением координат Edit-контрола в 64-битной версии MoveButton. Поправил коррекцией координат, но нет уверенности, что оно останется одинаковым на всех системах - причина этого явления пока непонятна.

Чтобы было более очевидно с бета-версиями, решил пойти по пути Гислера и нумеровать версии как "beta 1", "beta 2" и т.д.

Скачать
Back to top
View user's profile Send private message
MVV



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

Post (Separately) Posted: Fri Oct 07, 2011 15:37    Post subject: Reply with quote

Вроде работает. Во всяком случае, мою TCFS2Tools грузитSmile

Всё-таки стоит добавить константу %AUTORUN_TCARCH%, которая будет в 32-битном плагине возвращать 32, а в 64-битном - 64.

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



Joined: 07 Sep 2009
Posts: 1279

Post (Separately) Posted: Fri Oct 07, 2011 16:17    Post subject: Reply with quote

MVV wrote:
Всё-таки стоит добавить константу %AUTORUN_TCARCH%, которая будет в 32-битном плагине возвращать 32, а в 64-битном - 64.

Добавлю, конечно, просто в первую версию не стал вносить добавлений относительно предыдущей, сначала надо потестировать.

MVV wrote:
В диалоге копирования надо чуть больше делать высоту окна - при сравнении 32-битной и 64-битной пространство под кнопками в 32-битной чуть больше.

Но в остальном нормально? Просто почему-то для верхнего Edit'а в 64-битной версии GetWindowRect возвращает неправильные координаты. Они действительно неправильные, даже проверил экранной линейкой Smile
Back to top
View user's profile Send private message
MVV



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

Post (Separately) Posted: Fri Oct 07, 2011 16:46    Post subject: Reply with quote

На вид нормально. На x64 кнопка у тебя на 1 пиксель левее, чем на x32.

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



Joined: 07 Sep 2009
Posts: 1279

Post (Separately) Posted: Fri Oct 07, 2011 20:10    Post subject: Reply with quote

MVV wrote:
А что с координатами у тебя, не понимаю, WinScan показывает абсолютно одинаковые координаты (и экранные, и клиентские) для обеих версий.

Вот и я не понимаю. Получаю с помощью Au3info, тупо меряю линейкой - координаты правильные. Но под 32-битной версией GetWindowRect возвращает верные координаты, а под 64 - нет. Причем только одного этого контрола.
Back to top
View user's profile Send private message
MVV



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

Post (Separately) Posted: Thu Oct 13, 2011 16:57    Post subject: Reply with quote

Гляжу сейчас, 2% процессора кушается всего, из них 1% кушается тоталом. Отключил автообновление, всё равно. Смотрю треды - 0.8% кушает MoveButton. Довольно приличное потребление, особенно если учесть, что она большую часть времени ничего не делает.

Думаю, имеет смысл попробовать переделать цикл на хук. Ставишь локальный хук вызовом SetWindowsHookEx(WH_CALLWNDPROC, @MoveWindowHookProc, nil, GetWindowThreadProcessId(hMainTcWnd)) (при выгрузке плагина снимаешь хук). В процедуре-обработчике обрабатываешь исключительно сообщения WM_SHOWWINDOW. Если пришло левое сообщение, процедура тут же вернет управление, а если сообщение нужное, и окно собирается показаться, делаешь своё чёрное дело по перемещению кнопки и изменению размера окна (если это окно копирования/перемещения) - так никто не будет видеть твоей деятельности, т.к. она будет выполняться, пока окно ещё невидимо. Замедление работы будет практически нулевым, т.к. твой код будет выполняться исключительно на единственное сообщение.
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
Loopback



Joined: 07 Sep 2009
Posts: 1279

Post (Separately) Posted: Thu Oct 13, 2011 23:11    Post subject: Reply with quote

MVV
Да, почти целый процент - явно многовато. Не помню, почему я тогда не стал делать с хуками. Может, косяки были?

Переписал, сейчас в покое не должна вообще ничего потреблять.

Скачать
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Thu Oct 13, 2011 23:21    Post subject: Reply with quote

Autorun_MoveButton.dll - 14 Кб
MoveButton.dll - 34,5 Кб
Question
Back to top
View user's profile Send private message
MVV



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

Post (Separately) Posted: Thu Oct 13, 2011 23:21    Post subject: Reply with quote

Ну дельфя даёт, поместить в секцию импорта 3 модуля kernel32.dll, каждый со своими функциями, часть повторяется. Very Happy

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



Joined: 07 Sep 2009
Posts: 1279

Post (Separately) Posted: Thu Oct 13, 2011 23:43    Post subject: Reply with quote

Flasher wrote:
Autorun_MoveButton.dll - 14 Кб
MoveButton.dll - 34,5 Кб

Ошибочка вышла, переименовать забыл. Нужно использовать бОльший файл. А больше почему стал - компилятор другой.

MVV wrote:
Ну дельфя даёт, поместить в секцию импорта 3 модуля kernel32.dll, каждый со своими функциями, часть повторяется.

Smile
Back to top
View user's profile Send private message
MVV



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

Post (Separately) Posted: Thu Oct 13, 2011 23:56    Post subject: Reply with quote

Loopback
Да нет, использовать нужно меньшийSmile а вообще, можно и оба. Но у меня это наблюдалось под TC8x32.

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



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Fri Oct 14, 2011 00:21    Post subject: Reply with quote

Loopback wrote:
Нужно использовать бОльший файл.
Больший из приведённых или меньший из новых для 32-бит?

У меня ругается:
Code:
Error in command at line [9]:
Unknown command: MoveOptionsButton
line [9]: MoveOptionsButton MOVE_LEGACY
Back to top
View user's profile Send private message
MVV



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

Post (Separately) Posted: Fri Oct 14, 2011 09:41    Post subject: Reply with quote

Loopback, теперь всё супер! Very Happy
Оба, 32-битный и 64-битный, на семёрке работают отлично. Ресурсов теперь не едят вообще.

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



Joined: 07 Sep 2009
Posts: 1279

Post (Separately) Posted: Fri Oct 14, 2011 09:48    Post subject: Reply with quote

Flasher wrote:
Больший из приведённых или меньший из новых для 32-бит?

Выложенные файлы - только для новой (1.6 бета 1) версии Autorun.

Поскольку все строки в новых версиях дельфи изначально юникодные, интерфейс плагинов автоматом поменялся. Поскольку его все равно надо менять и дополнять, пока не стал заморачиваться с совместимостью (а возможно, этого и не понадобится).

MVV wrote:
Ресурсов теперь не едят вообще.

Ага Smile Хороший был совет, да и код упростился.
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 ... 25, 26, 27 ... 131, 132, 133  Next
Page 26 of 133

 
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