Переключиться в последнее использовавшееся окно - как?

Обсуждение программ nnCron и nnCron LITE

Переключиться в последнее использовавшееся окно - как?

Postby Raistlin » Thu, 07 Mar 2013, 00:41

То есть получить тот же результат, что при нажатии Alt-Tab. Посылка сочетания через SEND-KEYS не подойдет.
Windows XP SP3 Corp. + MUI, nnCron 1.93.1125.14, nnBackup 3.02b3 Build 147

Magically yours
Raistlin
User avatar
Raistlin
 
Posts: 159
Joined: Wed, 03 Nov 2004, 12:42

Re: Переключиться в последнее использовавшееся окно - как?

Postby AlikasS » Thu, 07 Mar 2013, 07:41

Raistlin wrote:То есть получить тот же результат, что при нажатии Alt-Tab. Посылка сочетания через SEND-KEYS не подойдет.

Code: Select all
<%
0 VALUE my_bufferW
0 VALUE old_my_bufferW
%>

#( предактивное_окно
\ NoActive
NoLog
SingleInstance
MonitorResponseTime
50 TO MonitorResponseTime
WatchWinActivate: "*"
TO MonitorResponseTime 
Action:
my_bufferW TO old_my_bufferW
GetForegroundWindow TO my_bufferW
)#

#( перекл_в_предактивное_окно
WatchHotKey: "{0x73}" \ 'F4'
NoLog
Action:
old_my_bufferW  N>S WIN-ACTIVATE
)#
только слова Watch начинают по моему работать в начале минуты , а не сразу после перечитывания кронтаба.
и после этого необходимо по крайней мере 2 раза переключиться между окнами что бы крон запомнил их
User avatar
AlikasS
 
Posts: 1434
Joined: Wed, 28 Jun 2006, 05:39
Location: Khabarovsk

Re: Переключиться в последнее использовавшееся окно - как?

Postby Wyz » Mon, 11 Mar 2013, 13:54

Code: Select all
#( emulate_alt_tab
NoActive
SingleInstance
2 CONSTANT GW_HWNDNEXT
3 CONSTANT GW_HWNDPREV
9 CONSTANT SW_RESTORE
WINAPI: GetWindow USER32.DLL
WINAPI: SwitchToThisWindow USER32.DLL
VARIABLE emulate_alt_tab_next_window
Action:

GetForegroundWindow emulate_alt_tab_next_window !
100 0 DO
   GW_HWNDNEXT emulate_alt_tab_next_window @ GetWindow
   DUP emulate_alt_tab_next_window !
   IsWindowVisible IF LEAVE THEN
LOOP

emulate_alt_tab_next_window @ >R

R@ SetForegroundWindow DROP
FALSE R@ SwitchToThisWindow DROP
R@ BringWindowToTop DROP
R@ SetForegroundWindow DROP
RDROP

)#
Last edited by Wyz on Tue, 12 Mar 2013, 19:02, edited 2 times in total.
Wyz
 
Posts: 389
Joined: Tue, 11 Dec 2007, 01:42

Re: Переключиться в последнее использовавшееся окно - как?

Postby Raistlin » Tue, 12 Mar 2013, 12:05

Вариант AlikasS работает, правда, стабильность не 100% (на окне RDC, для чего и затевалось). А суть варианта Wyz не понял - на какое событие он реагирует? Или это только пример?
Windows XP SP3 Corp. + MUI, nnCron 1.93.1125.14, nnBackup 3.02b3 Build 147

Magically yours
Raistlin
User avatar
Raistlin
 
Posts: 159
Joined: Wed, 03 Nov 2004, 12:42

Re: Переключиться в последнее использовавшееся окно - как?

Postby Wyz » Tue, 12 Mar 2013, 14:58

Добавь событие :-)
Wyz
 
Posts: 389
Joined: Tue, 11 Dec 2007, 01:42

Re: Переключиться в последнее использовавшееся окно - как?

Postby Raistlin » Tue, 12 Mar 2013, 17:02

Ругается на GetWindow и SwitchToThisWindow.
Windows XP SP3 Corp. + MUI, nnCron 1.93.1125.14, nnBackup 3.02b3 Build 147

Magically yours
Raistlin
User avatar
Raistlin
 
Posts: 159
Joined: Wed, 03 Nov 2004, 12:42

Re: Переключиться в последнее использовавшееся окно - как?

Postby Wyz » Tue, 12 Mar 2013, 18:26

Code: Select all
WINAPI: GetWindow USER32.DLL
WINAPI: SwitchToThisWindow USER32.DLL
Wyz
 
Posts: 389
Joined: Tue, 11 Dec 2007, 01:42

Re: Переключиться в последнее использовавшееся окно - как?

Postby Raistlin » Tue, 12 Mar 2013, 18:46

Работает, но выдает Stack error.
Я правильно понимаю, что будет корректно работать, если открыто не более 100 окон?
Windows XP SP3 Corp. + MUI, nnCron 1.93.1125.14, nnBackup 3.02b3 Build 147

Magically yours
Raistlin
User avatar
Raistlin
 
Posts: 159
Joined: Wed, 03 Nov 2004, 12:42

Re: Переключиться в последнее использовавшееся окно - как?

Postby Wyz » Tue, 12 Mar 2013, 19:02

Надо убрать 1 DROP:
Code: Select all
FALSE R@ SwitchToThisWindow DROP


Raistlin wrote:не более 100 окон?

Нет, просто на всякий случай ограничил поиск следующего видимого окна...
Wyz
 
Posts: 389
Joined: Tue, 11 Dec 2007, 01:42

Re: Переключиться в последнее использовавшееся окно - как?

Postby Raistlin » Tue, 12 Mar 2013, 19:10

Из окна The Bat! переключиться не получается. Вариант AlikasS - работает.
Это для информации. Так-то - спасибо и вам, и AlikasS: где надо - работает.
Windows XP SP3 Corp. + MUI, nnCron 1.93.1125.14, nnBackup 3.02b3 Build 147

Magically yours
Raistlin
User avatar
Raistlin
 
Posts: 159
Joined: Wed, 03 Nov 2004, 12:42


Return to nnCron forum (Russian)

Who is online

Users browsing this forum: No registered users and 3 guests