Что нового

Взаимодействие скрипта с другими приложениями

zelich

Новичок
Сообщения
149
Репутация
0
Возможно ли указать, чтоб мой скрипт не работал, когда активен Total Commander?

У меня скрипт "делает" горячие клавиши, а в Total'e они не нужны...
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
скрипт "делает" горячие клавиши, а в Total'e они не нужны...
Код:
HotKeySet('^+q', '_Exit_Hotkey')

While 1
    Sleep(10)
WEnd

Func _Exit_Hotkey()
    If WinActive('Total Commander') Then ;Тут нужно проверить верный заголовок окна, я не использую ТС.
        HotKeySet(@HotKeyPressed)
        Send(@HotKeyPressed)
        HotKeySet(@HotKeyPressed, '_Exit_Hotkey')
        
        Return
    EndIf
    
    Exit
EndFunc
 
Автор
zelich

zelich

Новичок
Сообщения
149
Репутация
0
Спасибо! Но я наверно неправильно сформулировал свой вопрос...
Вот мой скрипт:
Код:
#include <GuiConstants.au3>
#include <WinAPISys.au3>
#include <WindowsConstants.au3>
#include <Misc.au3>

HotKeySet('{F6}', 'Inpute')
HotKeySet('{F7}', 'Up')
HotKeySet('{F8}', 'Down')
HotKeySet('+{Esc}', '_Exit')
MsgBox(4096, 'Where', "F6  ====>Input"&@CRLF&"F7  ====>Up"&@CRLF&"F8  ====>Down", 3)

$Label = 0
$i = 0
$time = 50


$hWnd = GUICreate("")
GUIRegisterMsg($WM_HOTKEY, 'WM_HOTKEY')

$GUI = GUICreate("", 150, 30, 1875, 20, $WS_POPUP, BitOR($WS_EX_TOPMOST, $WS_EX_TOOLWINDOW, $WS_EX_TRANSPARENT, $WS_EX_LAYERED))
GUISetBkColor(0xFF1000)
_WinAPI_SetLayeredWindowAttributes($GUI, 0xFF1000, 0, $LWA_COLORKEY)
GUICtrlCreateLabel($Label, 0, 0, 60, 30, BitOR($SS_CENTER, $SS_CENTERIMAGE))
GUICtrlSetColor(-1, 0x000000)
GUICtrlSetFont(-1, 20)
GUISetState()

While 1
    Sleep(10)
WEnd

Func Inpute()
   $t = $time
   $time = InputBox('Koli4estvo', "Кол-во раз:", '', '', 150, 120)
   if $time = '' Then ;-от пустого Input
   $time = $t
   EndIf
EndFunc

Func Up()
   $i = 0
   While $i < $time
   Send("{UP}")
   $i = $i + 1

   $Label = $Label - 1

   If Mod($Label , 10) = 0 Or $i = $time Then
   GUICtrlCreateLabel($Label, 0, 0, 30, 30, BitOR($SS_CENTER, $SS_CENTERIMAGE))
   GUICtrlSetFont(-1, 20)
   EndIf
   WEnd
EndFunc

Func Down()
   $i = 0
   While $i < $time
   Send("{DOWN}")
   $i = $i + 1

   $Label = $Label + 1

   If Mod($Label , 10) = 0 Or $i = $time Then
   GUICtrlCreateLabel($Label, 0, 0, 30, 30, BitOR($SS_CENTER, $SS_CENTERIMAGE))
   GUICtrlSetColor(-1, 0000000)
   GUICtrlSetFont(-1, 20)
   EndIf
   WEnd
EndFunc


Func _Exit()
    Exit
 EndFunc

Я не знаю, как сделать чтоб F6-F8 в Total Commander'e работали в "штатном" режиме
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
я наверно неправильно сформулировал свой вопрос
Всё правильно...

как сделать чтоб F6-F8 в Total Commander'e работали в "штатном" режиме
Применить способ показанный выше:
Код:
...

Func Inpute()
    If Not _Check_TC_HK() Then
        Return
    EndIf
    
    ...
EndFunc

Func Up()
    If Not _Check_TC_HK() Then
        Return
    EndIf
    
    ...
EndFunc

Func Down()
    If Not _Check_TC_HK() Then
        Return
    EndIf
    
    ...
EndFunc

Func _Check_TC_HK()
    If WinActive('Total Commander') Then ;Тут нужно проверить верный заголовок окна, я не использую ТС.
        HotKeySet(@HotKeyPressed)
        Send(@HotKeyPressed)
        HotKeySet(@HotKeyPressed, '_Exit_Hotkey')
        
        Return 0
    EndIf
    
    Return 1
EndFunc

...
 
Верх