- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
Func Terminate() ; Функция выключения скрипта так как он работает в бесконечном цикле
Exit 0
EndFunc
HotKeySet("{ESC}", "Terminate") ; Привязывает функцию выключения к клавиши ESC
FileChangeDir ("C:Program FilesQIPUsersXXXXXXXXXHistory"); Изменяет рабочую директорию
while 1 ; Начинает бесконечный цикл работы скрипта
$Search=FileFindFirstFile("*.txt") ; Ищет txt-файлы в рабочей директории и возвращаемое значение поиска заносим в переменную $Search
if $Search = -1 then ; Проверяет наличие файлов по содержимому переменной
Sleep(1000) ; Если файлов не найдено, ждет секунду и запускает цикл сначала
else ; Если найден txt-файл, то...
$File=FileFindNextFile($Search) ; Заносит название файла в перменную $File
$Log=FileRead ($File) ; Заносит содержимое файла в переменную $log
$Log=StringSplit ($Log, @LF) ; Так как в QIP'е одно сообщение состоит из трех строк (пометка сообщения как входящее или исходящее, имя автора/дата/время отправки сообщения и само сообщение), то делает из переменной массив, в котором каждый элемент равен одной строке
$Mess=$log[3] ; Само сообщение заносит в переменную $Mess
FileDelete($File) ; Удаляет файл истории
MsgBox ("0","", $Mess, 1) ; На секунду выводит на экран сообщение с командой, которую скрипт будет сейчас выполнять - это реализовано для отладки
WinActivate ('[REGEXPCLASS:(?i){97E27FAA-C0B3-4b8e-A693-ED7881E99FC1}]') ; Делает активным окно Foobar'a, реализовал посредством обращения к классу, так как заголовок плеера меняется в зависимости от исполняемой композиции
WinWaitActive ('[REGEXPCLASS:(?i){97E27FAA-C0B3-4b8e-A693-ED7881E99FC1}]') ; Ждет когда окно Foobar'a станет активным
$Check=StringInStr($Mess, "local") ; Проверяет вхождение слова "local" в текст сообщения
if $Check=1 then ; Если "local" находится в начале сообщения, то...
Send("^f") ; Отправляет нажатие сочетания клавиш CTRL+F