View previous topic :: View next topic |
Author |
Message |
MVV
Joined: 15 Oct 2009 Posts: 4811 Location: Ростов-Дон
|
|
Back to top |
|
|
Loopback
Joined: 07 Sep 2009 Posts: 1293
|
(Separately) Posted: Fri Oct 07, 2011 13:57 Post subject: |
|
|
Первая бета с поддержкой x64. Изменений в функционале нет, в целом вроде всё работает, только возникли непонятные косяки с получением координат Edit-контрола в 64-битной версии MoveButton. Поправил коррекцией координат, но нет уверенности, что оно останется одинаковым на всех системах - причина этого явления пока непонятна.
Чтобы было более очевидно с бета-версиями, решил пойти по пути Гислера и нумеровать версии как "beta 1", "beta 2" и т.д.
Скачать |
|
Back to top |
|
|
MVV
Joined: 15 Oct 2009 Posts: 4811 Location: Ростов-Дон
|
|
Back to top |
|
|
Loopback
Joined: 07 Sep 2009 Posts: 1293
|
(Separately) Posted: Fri Oct 07, 2011 16:17 Post subject: |
|
|
MVV wrote: | Всё-таки стоит добавить константу %AUTORUN_TCARCH%, которая будет в 32-битном плагине возвращать 32, а в 64-битном - 64. |
Добавлю, конечно, просто в первую версию не стал вносить добавлений относительно предыдущей, сначала надо потестировать.
MVV wrote: | В диалоге копирования надо чуть больше делать высоту окна - при сравнении 32-битной и 64-битной пространство под кнопками в 32-битной чуть больше. |
Но в остальном нормально? Просто почему-то для верхнего Edit'а в 64-битной версии GetWindowRect возвращает неправильные координаты. Они действительно неправильные, даже проверил экранной линейкой |
|
Back to top |
|
|
MVV
Joined: 15 Oct 2009 Posts: 4811 Location: Ростов-Дон
|
|
Back to top |
|
|
Loopback
Joined: 07 Sep 2009 Posts: 1293
|
(Separately) Posted: Fri Oct 07, 2011 20:10 Post subject: |
|
|
MVV wrote: | А что с координатами у тебя, не понимаю, WinScan показывает абсолютно одинаковые координаты (и экранные, и клиентские) для обеих версий. |
Вот и я не понимаю. Получаю с помощью Au3info, тупо меряю линейкой - координаты правильные. Но под 32-битной версией GetWindowRect возвращает верные координаты, а под 64 - нет. Причем только одного этого контрола. |
|
Back to top |
|
|
MVV
Joined: 15 Oct 2009 Posts: 4811 Location: Ростов-Дон
|
(Separately) Posted: Thu Oct 13, 2011 16:57 Post subject: |
|
|
Гляжу сейчас, 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 |
|
|
Loopback
Joined: 07 Sep 2009 Posts: 1293
|
(Separately) Posted: Thu Oct 13, 2011 23:11 Post subject: |
|
|
MVV
Да, почти целый процент - явно многовато. Не помню, почему я тогда не стал делать с хуками. Может, косяки были?
Переписал, сейчас в покое не должна вообще ничего потреблять.
Скачать |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Thu Oct 13, 2011 23:21 Post subject: |
|
|
Autorun_MoveButton.dll - 14 Кб
MoveButton.dll - 34,5 Кб
|
|
Back to top |
|
|
MVV
Joined: 15 Oct 2009 Posts: 4811 Location: Ростов-Дон
|
|
Back to top |
|
|
Loopback
Joined: 07 Sep 2009 Posts: 1293
|
(Separately) Posted: Thu Oct 13, 2011 23:43 Post subject: |
|
|
Flasher wrote: | Autorun_MoveButton.dll - 14 Кб
MoveButton.dll - 34,5 Кб |
Ошибочка вышла, переименовать забыл. Нужно использовать бОльший файл. А больше почему стал - компилятор другой.
MVV wrote: | Ну дельфя даёт, поместить в секцию импорта 3 модуля kernel32.dll, каждый со своими функциями, часть повторяется. |
|
|
Back to top |
|
|
MVV
Joined: 15 Oct 2009 Posts: 4811 Location: Ростов-Дон
|
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Fri Oct 14, 2011 00:21 Post subject: |
|
|
Loopback wrote: | Нужно использовать бОльший файл. | Больший из приведённых или меньший из новых для 32-бит?
У меня ругается:
Code: | Error in command at line [9]:
Unknown command: MoveOptionsButton | line [9]: MoveOptionsButton MOVE_LEGACY |
|
Back to top |
|
|
MVV
Joined: 15 Oct 2009 Posts: 4811 Location: Ростов-Дон
|
(Separately) Posted: Fri Oct 14, 2011 09:41 Post subject: |
|
|
Loopback, теперь всё супер!
Оба, 32-битный и 64-битный, на семёрке работают отлично. Ресурсов теперь не едят вообще.
Flasher, плагин точно загружает модули? Пути к файлам указаны верно? Такое может быть, если плагин не находит модули. _________________ TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel… |
|
Back to top |
|
|
Loopback
Joined: 07 Sep 2009 Posts: 1293
|
(Separately) Posted: Fri Oct 14, 2011 09:48 Post subject: |
|
|
Flasher wrote: | Больший из приведённых или меньший из новых для 32-бит? |
Выложенные файлы - только для новой (1.6 бета 1) версии Autorun.
Поскольку все строки в новых версиях дельфи изначально юникодные, интерфейс плагинов автоматом поменялся. Поскольку его все равно надо менять и дополнять, пока не стал заморачиваться с совместимостью (а возможно, этого и не понадобится).
MVV wrote: | Ресурсов теперь не едят вообще. |
Ага Хороший был совет, да и код упростился. |
|
Back to top |
|
|
|
|
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
|