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 

Активация окна Total Commander движением мыши
Goto page Previous  1, 2, 3, 4  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
Loopback



Joined: 07 Sep 2009
Posts: 1291

Post (Separately) Posted: Thu Oct 08, 2009 09:43    Post subject: Reply with quote

В коммандере таких классов точно нет, это похоже на программу созданную с применением MFC.

Для случая таких классов, как верно было сказано, можно использовать регулярные выражения. Для случая выше должно быть примерно так:
Code:

WinList("[REGEXPCLASS:Afx:400000:8:10003:0:\H+]")
Back to top
View user's profile Send private message
Владимир М



Joined: 16 Sep 2009
Posts: 78

Post (Separately) Posted: Thu Oct 08, 2009 10:51    Post subject: Reply with quote

Samwatas wrote:
Если речь идет о скрипте АвтоИТ

да о нём
D1P wrote:
Это вобще на имя класса не похоже, тем более на имя класса любого окна TC

действительно это не ТС
Моторокер wrote:
многие программы позволяют задать нужную программу не только по классу или заголовку, но и по имени файла

пробовал, не вышло
Loopback wrote:
Для случая выше должно быть примерно так:

к сожалению не работает

p.s. так как эта программа ни коим образом не связана с ТС сорри за оффтоп и прошу закрыть обсуждение
_________________
Windows7 x64 TC 7.55a
Back to top
View user's profile Send private message
sa



Joined: 29 Apr 2009
Posts: 2571

Post (Separately) Posted: Sun Mar 21, 2010 00:13    Post subject: Reply with quote

По вопросу в личке по поводу скрипта
Flasher wrote:
Не хочет работать. В параметрах ничего писать не надо?
Кнопка такая:
TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Utils\AutoIt\AutoIt3.exe %COMMANDER_PATH%\Scripts\AutoIt\Scripts\Зафиксить_Панель_задач.au3

Я его на кнопку не вешал. У меня он в автозагрузке. Параметры не нужны.
Скрипт позволяет мышкой активировать (выводить на передний план) окно TC и (независимо от TC) панель задач Windows.
Окно TC тоже не активируется, если загнать мышку в правый нижний угол экрана?
Back to top
View user's profile Send private message
Flasher



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

Post (Separately) Posted: Sun Mar 21, 2010 00:47    Post subject: Reply with quote

sa wrote:
Я его на кнопку не вешал. У меня он в автозагрузке.
А, понял, запустил.
sa wrote:
Окно TC тоже не активируется, если загнать мышку в правый нижний угол экрана?
Нет, ничего такого не происходит при снятом флаге "Автоматически скрывать панель задач" и показе его поверх всех окон.
Back to top
View user's profile Send private message
sa



Joined: 29 Apr 2009
Posts: 2571

Post (Separately) Posted: Sun Mar 21, 2010 01:07    Post subject: Reply with quote

Flasher wrote:
Нет, ничего такого не происходит при снятом флаге "Автоматически скрывать панель задач" и показе его поверх всех окон.
Забудем пока о панели задач. Вопрос был только об активации окна TC. При нахождении в окне какой-либо программы (не TC), если загнать мышку в правый нижний угол экрана, окно TC активируется или нет?
Back to top
View user's profile Send private message
Flasher



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

Post (Separately) Posted: Sun Mar 21, 2010 01:26    Post subject: Reply with quote

sa wrote:
ри нахождении в окне какой-либо программы (не TC), если загнать мышку в правый нижний угол экрана, окно TC активируется или нет?
Да, если в самый угол подвинуть. Но это же совсем не то, о чём я писал. Мне-то нужно, чтобы любая программа была поверх панели задач в полностью развёрнутом виде. А у меня не ТС, не любая другая так не выглядит.
Back to top
View user's profile Send private message
sa



Joined: 29 Apr 2009
Posts: 2571

Post (Separately) Posted: Sun Mar 21, 2010 01:40    Post subject: Reply with quote

Теперь по панели задач Windows. Обе опции: "Автоматически скрывать панель задач" и "Отображать панель задач поверх остальных окон" должны быть отключены. Панель задач активируется при необходимости подведеним мышки примерно в область часов в правом нижнем углу экрана (а TC активируется ещё чуть правее).
Back to top
View user's profile Send private message
Flasher



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

Post (Separately) Posted: Sun Mar 21, 2010 01:55    Post subject: Reply with quote

sa wrote:
"Отображать панель задач поверх остальных окон" должны быть отключены.
Сделал. Работает. Только как-то неудобно ловить область для появления Панели задач, так как она не захватывает область всех часов полностью. Хотелось бы увеличить диапазон ловушки для фокуса.
Back to top
View user's profile Send private message
sa



Joined: 29 Apr 2009
Posts: 2571

Post (Separately) Posted: Sun Mar 21, 2010 02:10    Post subject: Reply with quote

Flasher wrote:
неудобно ловить область для появления Панели задач
Можно поиграться размерами "мышиной норы" по X:
Code:
If ($mpos[0] >= @DesktopWidth - 60) And ($mpos[0] < @DesktopWidth - 10)
Здесь числа 60 и 10 задают отступ от правой границы экрана.
Back to top
View user's profile Send private message
Flasher



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

Post (Separately) Posted: Sun Mar 21, 2010 02:42    Post subject: Reply with quote

Ок, переделал под себя. Левый верхний угол экрана - появление ТС, правый нижний (поле с часами).
Code:
While 1
    GUIGetMsg() ; разгрузка процессора
    $mpos = MouseGetPos()
    If ($mpos[0] <= @DesktopWidth - 1023) And ($mpos[1] < @DesktopHeight - 760) Then
        $list = WinList("[CLASS:TTOTAL_CMD]")
        If $list[0][0] > 0 Then WinActivate ($list[1][1])
    EndIf
    If ($mpos[0] >= @DesktopWidth - 200) And ($mpos[0] < @DesktopWidth - 2) And ($mpos[1] > @DesktopHeight - 30) Then
        $list = WinList("[CLASS:Shell_TrayWnd]")
        If $list[0][0] > 0 Then WinActivate ($list[1][1])
    EndIf
Wend
Спасибо за скрипт, вещь!

Last edited by Flasher on Sun Mar 21, 2010 13:41; edited 1 time in total
Back to top
View user's profile Send private message
MVV



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

Post (Separately) Posted: Sun Mar 21, 2010 04:14    Post subject: Reply with quote

Quote:
Code:
If ($mpos[0] <= @DesktopWidth - 1023) And ($mpos[1] < @DesktopHeight - 760) Then

Зачем так извращаться? Левый верхний угол экрана имеет координаты (0, 0), поэтому прямоугольник в нем при любых разрешениях элементарно ловится абсолютными размерами:
Code:
If ($mpos[0] < 2) And ($mpos[1] < 8) Then

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



Joined: 27 Dec 2004
Posts: 2584
Location: Большая деревня Москва

Post (Separately) Posted: Sun Mar 21, 2010 11:57    Post subject: Reply with quote

У меня в PowerPro на курсор в верхнем левом углу настроен запуск скринсейвера. Надо сказать, что это не всегда удобно: например, при попытке активизировать системное меню крысой система трактует это действие как помещение курсора в верхний левый угол экрана. Я-то уже привык, а сначала было неудобно. Верхний правый - кнопки управления окном, нижний левый - меню Start. Нижний правый наименее "посещаемый" угол - там у меня запрет сейвера, что приходится делать гораздо чаще.
Так или иначе, как сказал CaptainFlint, PowerPro для этих дел - оптимальная приблуда. Выбор движения курсора огромен, осталось лишь выбрать и привыкнуть.
_________________
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Back to top
View user's profile Send private message
Flasher



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

Post (Separately) Posted: Sun Mar 21, 2010 13:32    Post subject: Reply with quote

MVV wrote:
Левый верхний угол экрана имеет координаты (0, 0), поэтому прямоугольник в нем при любых разрешениях элементарно ловится абсолютными размерами:
А нижний правый?
Code:
If ($mpos[0] >= @DesktopWidth - 200) And ($mpos[0] < @DesktopWidth - 2) And ($mpos[1] > @DesktopHeight - 30) Then


Last edited by Flasher on Sun Mar 21, 2010 14:26; edited 1 time in total
Back to top
View user's profile Send private message
MVV



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

Post (Separately) Posted: Sun Mar 21, 2010 14:06    Post subject: Reply with quote

Вахмурка wrote:
У меня в PowerPro на курсор в верхнем левом углу настроен запуск скринсейвера. Надо сказать, что это не всегда удобно: например, при попытке активизировать системное меню крысой система трактует это действие как помещение курсора в верхний левый угол экрана.

Ну так модифицируй скрипт, чтобы он требовал передвижения мыши туда и задержки ее в том углу на некоторое время (пол или четверть секунды, например).
Вахмурка wrote:
Так или иначе, как сказал CaptainFlint, PowerPro для этих дел - оптимальная приблуда. Выбор движения курсора огромен, осталось лишь выбрать и привыкнуть.

Я бы замутил себе для таких целей простенькую (килобайта на 3) программку с хуком, висящую в автозагрузке и не требующую ничего кроме винды. Smile Хотя, с хуком - надо еще такую же маленькую DLL.

Flasher wrote:
MVV wrote:
Левый верхний угол экрана имеет координаты (0, 0), поэтому прямоугольник в нем при любых разрешениях элементарно ловится абсолютными размерами:
А нижний правый?
Code:
If ($mpos[0] >= @DesktopWidth - 200) And ($mpos[0] < @DesktopWidth - 30) And ($mpos[1] > @DesktopHeight - 2) Then

То, что ты написал - это когда мышь находится в интервале от 30 до 200 точек (т.е. больше @DesktopWidth - 200 и меньше @DesktopWidth - 30) от правого конца экрана по горизонтали, и в пределе двух нижних строк по вертикали (т.е. координата по вертикали больше @DesktopHeight - 2) - т.е. фактически это прямоугольничек 170х2 пикселей, расположенный внизу экрана в 30 точках от правой его границы.

Правый нижний имеет максимальные координаты, которые в вашей скриптовой системе судя по всему описываются в виде (@DesktopWidth, @DesktopHeight), поэтому для определения в нижнем правом углу чувствительного прямоугольника шириной CX точек и высотой CY точек нужно условие:
Code:
If ($mpos[0] > @DesktopWidth - CX) And ($mpos[1] > @DesktopHeight - CY) Then

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



Joined: 27 Dec 2004
Posts: 2584
Location: Большая деревня Москва

Post (Separately) Posted: Sun Mar 21, 2010 14:25    Post subject: Reply with quote

Quote:
Ну так модифицируй скрипт, чтобы он требовал передвижения мыши
В том-то и прелесть, что это не скрипт, а встроенная функция. Да я и привык уже не разгонять крысу сильно при движениях в этой области. "ТщательнЕе надо, ребята" ((С) Жванецкий). К тому же, ну запустится сейвер, ну и пес с ним. Как запустится, так и распустится.
_________________
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
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, 4  Next
Page 2 of 4

 
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