Автокликер Clickermann :: Форум
Основной раздел => Использование => Topic started by: Axelenz on February 25, 2018, 11:41:20 PM
-
Кусок кода позволяет найти файлы (в папке загрузки) по одинаковому словосочетанию в названии, из них выбирается файл более новый, например: по дате (времени) в названии самого файла. С помощью горячих клавиш файл разблокируется (для Office 2016).
Работает для Windows 8.1, Office 2016.
//Закрыть окно Clickermann
WNDSTATE(WNDFIND("Редактор - C:\Clickermann\"), 0)
WAIT(1)
//------------------------- Начальные данные для поиска файла ------------------
$name = inputbox("Введи имя файла для поиска или используй по умолчанию:", "price_2018", 5)
HINTPOPUP($name, "Искать файл по имени:")
WAIT(2)
//Добавление "0" перед месяцем и датой, если они имеют длину в 1 знак
IF(STRLEN($_date_m) = 1)
$_date_m = STRCONCAT("0", $_date_m)
END_IF
IF(STRLEN($_date_d) = 1)
$_date_d = STRCONCAT("0", $_date_d)
END_IF
//Объединить в одну строку год, месяц, дату: "20180224"
$_date_ = STRCONCAT($_date_y, $_date_m, $_date_d)
HINTPOPUP($_date_, "Искать файл по дате:")
WAIT(2)
//------------------------- Цикл поиска нужного файла --------------------------
GETFILELIST($prices, "C:\Users\User\Downloads\*.xlsx")
$price = "Нет файлов с таким именем !"
FOR($n = 0, $n < ARRSIZE($prices))
$price = "Нет нового файла !"
//Поиск "однотипных" файлов, например: с одинаковым началом в названии
IF(STRPOS($prices[$n], $name) = 1)
//Поиск среди них "свежего" файла, например: по дате, по времени
IF(STRPOS($prices[$n], $_date_) > 0)
$price = $prices[$n]
$n = ARRSIZE($prices)
END_IF
END_IF
END_CYC
//Если искомого файла "Нет" - останов
SWITCH(STRPOS($price, "Нет"))
CASE(1)
HINTPOPUP($price, "Файл НЕ найден:")
WAIT(3)
HALT
DEFAULT
HINTPOPUP($price, "Файл найден:")
WAIT(2)
END_SWITCH
//------------------------- Разблокировть файл (Office 2016) -------------------
//------------------------- Работа в проводнике Windows
EXECUTE("C:\Windows\explorer.exe\")
WAIT(1)
WNDSETINFO(WNDFIND("Этот компьютер"), 0, 0, 1440, 862)
WAITMS(500)
//Переключение языка на RU
SETKBLAYOUT(WNDFIND("Этот компьютер"), 1049)
WAIT(1)
//Папка загрузки
KEYDOWN(#F4)
WAITMS(100)
KEYDOWN(#CTRL)
WAITMS(50)
KEYPRESS(#A)
WAITMS(50)
KEYUP(#CTRL)
WAITMS(100)
//Вставить путь к папке. Имя пользователя: "User"
TOCLIP("C:\Users\User\Downloads\")
KEYDOWN(#CTRL)
WAITMS(50)
KEYPRESS(#V)
WAITMS(50)
KEYUP(#CTRL)
WAITMS(300)
KEYPRESS(#ENTER)
WAIT(1)
//Окно поиска
KEYDOWN(#CTRL)
WAITMS(50)
KEYPRESS(#F)
WAITMS(50)
KEYUP(#CTRL)
WAITMS(500)
//Вставить имя найденного файла
TOCLIP($price)
KEYDOWN(#CTRL)
WAITMS(50)
KEYPRESS(#V)
WAITMS(50)
KEYUP(#CTRL)
WAIT(1)
KEYPRESS(#ENTER)
WAIT(1)
//------------------------- перейти к файлу и разблокировать
KEYPRESS(#DOWN)
WAIT(1)
KEYDOWN(#CTRL)
WAITMS(50)
KEYPRESS(#A)
WAITMS(50)
KEYUP(#CTRL)
WAIT(1)
KEYDOWN(#ALT)
WAITMS(50)
KEYPRESS(#ENTER)
WAITMS(50)
KEYUP(#ALT)
WAIT(1)
//Разблокировать: "З" (RU)
KEYPRESS(80)
WAITMS(100)
KEYPRESS(#ENTER)
WAIT(1)
//Закрыть проводник
KEYDOWN(#CTRL)
WAITMS(50)
KEYPRESS(#W)
WAITMS(50)
KEYUP(#CTRL)
WAIT(2)
Если покороче и без горячих клавиш, то разблокировать файл можно так (путь к PowerShell указан для 32-разрядной системы):
//------------------------- Разблокировть файл (Office 2016) -------------------
EXECUTE("C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe")
WAITMS(100)
KEYSTRING(STRCONCAT(" unblock-file -path C:\Users\User\Downloads\", $price))
KEYPRESS(#ENTER)
WAITMS(100)
KEYSTRING("exit")
KEYPRESS(#ENTER)
WAITMS(100)
-
Как вариант:
//Подпрограмма вставить данные из буфера в PS (нажать/отпустить правую клавишу мышки)
SUB(down_up)
POSTMESSAGE($hwnd, 0x0204, 0, 0)
WAITMS(50)
POSTMESSAGE($hwnd, 0x0205, 0, 0)
WAITMS(50)
POSTMESSAGE($hwnd, 0x0100, 0x0D, 0)
WAITMS(500)
END_SUB
$dir_file = STRCONCAT("C:\Users\User\Downloads\", $price)
$dir_date = STRCONCAT("D:\Price\", $_date_)
$dir_date_file = STRCONCAT($dir_date, "\price.xlsx")
EXECUTE("C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe")
WAITMS(200)
$hwnd = WNDFIND("Windows PowerShell")
WNDPOS($hwnd, 0, 0)
WAITMS(200)
//Разблокировать файл
TOCLIP(STRCONCAT("Unblock-File -Path '", $dir_file, "'"))
down_up()
//Создать каталог
TOCLIP(STRCONCAT("New-Item -Path '", $dir_date, "' -ItemType 'directory'"))
down_up()
//Переместить файл в новый каталог и переименовать
TOCLIP(STRCONCAT("Move-Item -Path '", $dir_file, "' -Destination '", $dir_date_file, "'"))
down_up()
//Закрыть PowerShell
TOCLIP("exit")
down_up()