Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: Zets on March 24, 2014, 11:55:22 PM
-
Т.е. после HGET как это окно поместить на передний план?
-
если нужно поверх всех окон то я пользуюсь сторонним софтом
если просто развернуть
внимательно читаем хелп
WNDSTATE (hwnd, state) - сворачивает (разворачивает) окно
Параметры
hwnd - HWND окна
state - состояние {0 - свернуто, 1 - развернуто}
по идее
wndstate(hwnd ,0)
wndstate(hwnd ,1)
должно поместить окно на передний план
-
если нужно поверх всех окон то я пользуюсь сторонним софтом
Каким например?
если просто развернуть
внимательно читаем хелп
WNDSTATE (hwnd, state) - сворачивает (разворачивает) окно
Параметры
hwnd - HWND окна
state - состояние {0 - свернуто, 1 - развернуто}
по идее
wndstate(hwnd ,0)
wndstate(hwnd ,1)
должно поместить окно на передний план
да, кажется помогает. Спс
-
Т.е. после HGET как это окно поместить на передний план?
Правда насколько я понимаю чтобы повторно сделать окно активным его надо сначала свернуть, потом развернуть))
-
Почему то после открывания экселя браузер не выходит на передний план =\
Следующее разворачивание нормальное. Из за чего может быть?
[spoiler]execute("excel")
wait(2)
$HWnd = WNDFIND ("Microsoft Excel")
WndPos ($HWnd, 200, 200)
wndstate($HWnd, 0)
wndstate($HWnd, 1)
WaitMS(1500)
$HWnd = WNDFIND ("Федеральная")
WndPos ($HWnd, 0, 0)
wndstate($HWnd, 0)
wndstate($HWnd, 1)
WaitMS(1500)
$HWnd = WNDFIND ("Microsoft Excel")
wndstate($HWnd, 0)
wndstate($HWnd, 1)
WaitMS(1500)
$HWnd = WNDFIND ("Федеральная")
wndstate($HWnd, 0)
wndstate($HWnd, 1)
WaitMS(1500)
halt
[/spoiler]
-
Т.е. после HGET как это окно поместить на передний план?
Почему то не удалось присвоить значения HWND окон переменным. Вернее, такая переменная в скрипте, обрабатывается как то не корректно. Или я что то не так делал.
Вместо $hwnd_excel = wndfind("Excel") // Значение HWND окна Exscel присваеваем переменной "hwnd_excel", постоянно приходится вызывать функцию (WNDFIND("Excel").
Вот что у меня получилось. Немного усложнил и добавил в сценарий ожидание запуска Excel и браузера.
(Windows 7 SP1 x64; Excel 2013; Mozilla Firefox 27.0.1)
[spoiler]
//========================= Microsoft Excel
IF(WNDFIND("Excel") = 0)// Проверяем, есть ли окно Exscel, если нет, то запускаем Exscel
EXECUTE("Excel") // Запускаем Exscel (можно попробовать задать параметры запуска или запускать ярлык с параметрами в самом ярлыке)
//--------------------------------
$t = $_ms // Засекаем время
WHILE( ($excel_window_exist = 0) & (($t + 10000) > $_ms) ) // Ожидание загрузки Exscel (10000 милисекунд)
IF(WNDFIND("Excel") ! 0)
$excel_window_exist = 1 // Окно Exscel найдено
END_IF
WAITMS(50) // Частота поиска окна Exscel (слишком маленькое значение замедлит запуск Exscel)
END_CYC
//--------------------------------
// Проверяем, запустился ли Exscel, если нет, то останавливаем сценарий
IF($excel_window_exist = 1) // Если окно Exscel найдено
WNDSTATE(WNDFIND("Excel"), 0) // Сворачиваем окно Exscel
ELSE
HINTPOPUP("Время ожидания истекло.", "Окно Microsoft Excel не найдено.") // Если окно Exscel НЕ найдено
HALT
END_IF
END_IF
//========================= Mozilla Firefox
IF(WNDFIND("firefox") = 0)// Проверяем, есть ли окно Mozilla Firefox, если нет, то запускаем Mozilla Firefox
EXECUTE("firefox", "http://crapware.aidf.org/") // Запускаем браузер
//--------------------------------
$t = $_ms // Засекаем время
WHILE( ($firefox_window_exist = 0) & (($t + 10000) > $_ms) ) // Ожидание загрузки Firefox (10000 милисекунд)
IF(WNDFIND("Firefox") ! 0)
$firefox_window_exist = 1 // Окно Firefox найдено
END_IF
WAITMS(50) // Частота поиска окна Firefox (слишком маленькое значение замедлит запуск Firefox)
END_CYC
//--------------------------------
// Проверяем, запустился ли Firefox, если нет, то останавливаем сценарий
IF($firefox_window_exist = 1) // Если окно Firefox найдено
WNDSTATE(WNDFIND("Firefox"), 0) // Сворачиваем окно Firefox
ELSE
HINTPOPUP("Время ожидания истекло.", "Окно браузера не найдено.") // Если окно Firefox НЕ найдено
HALT
END_IF
END_IF
//========================= Управление статусом окон Microsoft Excel и Mozilla Firefox
// Теперь окна Microsoft Excel и Mozilla Firefox существуют и свёрнуты
WAITMS(2000) // Через пару секунд сменим их статус
WNDSTATE(WNDFIND("Excel"), 0) // Сворачиваем окно Exscel
WAITMS(50)
WNDSTATE(WNDFIND("Firefox"), 1) // Разорачиваем окно Firefox
WAITMS(5000) // И, через 5 секунд, наоборот
WNDSTATE(WNDFIND("Firefox"), 0) // Сворачиваем окно Firefox
WAITMS(500)
WNDSTATE(WNDFIND("Excel"), 1) // Разорачиваем окно Exscel
//--------------------------------
WAITMS(1500)
WAITMS(50)
WNDSIZE(WNDFIND("Excel"), 700,500) // Теперь можно задать размер
WAITMS(50)
WNDPOS(WNDFIND("Excel"), 100,100) // и расположение активного окна
WAITMS(1500)
WNDPOS(WNDFIND("Excel"), 0,0) // Или так
WAITMS(500)
WNDSIZE(WNDFIND("Excel"), $_xmax,$_ymax)
// Можно делать проверку текущего HWND (системная переменная "$_hwnd")
HALT
[/spoiler]
-
Ну не знаю вполне нормально работает.
//========================= Microsoft Excel
$hwn_Excel = WNDFIND("Excel")
IF($hwn_Excel = 0)// Проверяем, есть ли окно Exscel, если нет, то запускаем Exscel
EXECUTE("Excel") // Запускаем Exscel (можно попробовать задать параметры запуска или запускать ярлык с параметрами в самом ярлыке)
//--------------------------------
$t = $_time_t + 10 // Засекаем время
WHILE(($excel_window_exist = 0) & ($t > $_time_t)) // Ожидание загрузки Exscel (10000 милисекунд)
IF(WNDFIND("Excel") ! 0)
$excel_window_exist = 1 // Окно Exscel найдено
ELSE
WAITMS(50) // Частота поиска окна Exscel (слишком маленькое значение замедлит запуск Exscel)
END_IF
END_CYC
//--------------------------------
// Проверяем, запустился ли Exscel, если нет, то останавливаем сценарий
IF($excel_window_exist = 1) // Если окно Exscel найдено
WNDSTATE($hwn_Excel, 0) // Сворачиваем окно Exscel
ELSE
HINTPOPUP("Время ожидания истекло.", "Окно Microsoft Excel не найдено.") // Если окно Exscel НЕ найдено
HALT
END_IF
END_IF
//========================= Mozilla Firefox
$hwn_firefox = WNDFIND("firefox")
IF($hwn_firefox = 0)// Проверяем, есть ли окно Mozilla Firefox, если нет, то запускаем Mozilla Firefox
EXECUTE("firefox", "http://crapware.aidf.org/") // Запускаем браузер
//--------------------------------
$t = $_time_t + 10 // Засекаем время
WHILE(($firefox_window_exist = 0) & ($t > $_time_t)) // Ожидание загрузки Firefox (10000 милисекунд)
IF(WNDFIND("Firefox") ! 0)
$firefox_window_exist = 1 // Окно Firefox найдено
ELSE
WAITMS(50) // Частота поиска окна Firefox (слишком маленькое значение замедлит запуск Firefox)
END_IF
END_CYC
//--------------------------------
// Проверяем, запустился ли Firefox, если нет, то останавливаем сценарий
IF($firefox_window_exist = 1) // Если окно Firefox найдено
WNDSTATE($hwn_firefox, 0) // Сворачиваем окно Firefox
ELSE
HINTPOPUP("Время ожидания истекло.", "Окно браузера не найдено.") // Если окно Firefox НЕ найдено
HALT
END_IF
END_IF
//========================= Управление статусом окон Microsoft Excel и Mozilla Firefox
// Теперь окна Microsoft Excel и Mozilla Firefox существуют и свёрнуты
WAIT(2) // Через пару секунд сменим их статус
WNDSTATE($hwn_Excel, 0) // Сворачиваем окно Exscel
WAITMS(50)
WNDSTATE($hwn_firefox, 1) // Разорачиваем окно Firefox
WAIT(5) // И, через 5 секунд, наоборот
WNDSTATE($hwn_firefox, 0) // Сворачиваем окно Firefox
WAITMS(500)
WNDSTATE($hwn_Excel, 1) // Разорачиваем окно Exscel
//--------------------------------
WAITMS(1500)
WAITMS(50)
WNDSIZE($hwn_Excel, 700,500) // Теперь можно задать размер
WAITMS(50)
WNDPOS($hwn_Excel, 100,100) // и расположение активного окна
WAITMS(1500)
WNDPOS($hwn_Excel, 0,0) // Или так
WAITMS(500)
WNDSIZE($hwn_Excel, $_xmax,$_ymax-43)
// Можно делать проверку текущего HWND (системная переменная "$_hwnd")
HALT
-
если нужно поверх всех окон то я пользуюсь сторонним софтом
Каким например?
забыл название щас посмотрел как называется прога
deskpins закрепляет любое окно
-
если нужно поверх всех окон то я пользуюсь сторонним софтом
Каким например?
забыл название щас посмотрел как называется прога
deskpins закрепляет любое окно
Спасибо!)
Заметил что на разных компах по разно себя ведет команда сворачивания разворачивания. На стационаре все без проблем, на ноуте в основном нормально, но иногда если окно не свернуто, то когда его сворачивает и разворачивает браузер заглючивает.
-
Сейчас и на стационаре, цикле на 20-м, после того как окно хрома развернулось-свернулось больше развернуться не смогло.
Возможно проблема в хроме, но в чем именно?! =\
Если кто то захочет помочь, выкладываю код, он объемный правда.
Ну и заодно если кто то осилит, можно комментарии по поводу кода))
[spoiler]
#name "COPYPASTER"
//======= Переменные
$HWnd = 0
$URL = 0
$COUNT1 = 0
$COUNT2 = 0
$PAGE_PREFIX = "XXXXXX"
$PAGE_REGION = "XXXXXXX"
$PAGE_MIDFIX = "XXXXXXXX"
$PAGE_SECTION = "XXXXXXX"
$PAGE_ENDFIX = "&page="
$PAGE_NUM = 0
$i = 0
$k = 0
$x1 = 0
$y1 = 0
// подпрограмма CTRL+L
SUB(CTRL_L)
KEYDOWN (#CTRL)
WAITMS (50)
KEYDOWN (#L)
WAITMS (50)
KEYUP (#L)
KEYUP (#CTRL)
END_SUB
// подпрограмма CTRL+C
SUB(CTRL_C)
KEYDOWN (#CTRL)
WAITMS (50)
KEYDOWN (#C)
WAITMS (50)
KEYUP (#C)
KEYUP (#CTRL)
END_SUB
// подпрограмма CTRL+V
SUB(CTRL_V)
KEYDOWN (#CTRL)
WAITMS (50)
KEYDOWN (#V)
WAITMS (50)
KEYUP (#V)
KEYUP (#CTRL)
END_SUB
// подпрограмма тройного клика
SUB(CLICK_3)
LCLICK($x1,$y1)
WaitMs(100)
LCLICK($x1,$y1)
WaitMs(100)
LCLICK($x1,$y1)
WaitMs(100)
END_SUB
// подпрограмма открытия браузера
SUB(OPEN_BROWSER)
$HWnd = WNDFIND ("Федеральная")
wndstate($HWnd, 0)
wndstate($HWnd, 1)
WaitMS(500)
LCLICK(20,ROUND($_ymax/2,0))
WaitMS(500)
END_SUB
// подпрограмма открытия экселя
SUB(OPEN_EXCEL)
$HWnd = WNDFIND ("Microsoft Excel")
wndstate($HWnd, 0)
wndstate($HWnd, 1)
WaitMS(500)
END_SUB
// подпрограмма активизаации экселя
SUB(ACTIVATE_CELL)
LCLICK(200,200)
WaitMS(500)
END_SUB
// подпрограмма вставки буфера в эксель
SUB(PASTE_TABLE_EXCEL)
CTRL_V()
END_SUB
// подпрограмма изменения URL браузера
SUB(CHANGE_URL_BROWSER)
$PAGE_NUM = $i+1
$URL = StrConcat($PAGE_PREFIX,$PAGE_REGION,$PAGE_MIDFIX,$PAGE_SECTION,$PAGE_ENDFIX,$PAGE_NUM)
TOCLIP($URL)
WAITMS(100)
INC($i)
END_SUB
// подпрограмма вставки URL браузера
SUB(SET_URL_BROWSER)
CTRL_L()
WAITMS (100)
CTRL_V()
WAITMS (100)
KEYPRESS(#ENTER)
END_SUB
// подпрограмма проверки последней страницы
SUB(CHECK_LAST_PAGE)
GETSCREEN
$COUNT2 = PXLCOUNT ($_return1,$_return2, $_return1+300, $_return2+300, 0)
IF($COUNT2 > 300)
LOGWRITE("pixels: ", $COUNT2)
ELSE
HINTPOPUP("Это была последняя страница", "Ошибка")
LOGWRITE("Это была последняя страница")
halt
END_IF
END_SUB
// подпрограмма проверки открытия страницы браузера и копирования таблицы
SUB(CHECK_BROWSER_PAGE)
KEYPRESS(#PAGEDOWN)
WAITMS (100)
GETSCREEN
IF_PICTURE_IN (50,50, 300, $_ymax, "textures\request_button.bmp")
$x1 = $_return1-50
$y1 = $_return2+100
LOGWRITE ($_return1)
LOGWRITE ($_return2)
ELSE
HINTPOPUP("Не найдена кнопка ЗАПРОС", "Ошибка")
LOGWRITE("Не найдена кнопка ЗАПРОС")
$COUNT1 = PXLCOUNT (0,0, $_xmax,$_ymax, 13274746)
IF($COUNT1 > 10)
LOGWRITE("pixels: ", $COUNT1)
CHECK_LAST_PAGE()
END_IF
END_IF
WAITMS(100)
END_SUB
// подпрограмма удаления заголовка таблицы
SUB(DELETE_HEADLINE)
KEYPRESS(#DOWN)
WAITMS (50)
KEYPRESS(#UP)
WAITMS (50)
KEYDOWN (#SHIFT)
WAITMS (50)
KEYPRESS(#RIGHT)
WAITMS (50)
KEYPRESS(#RIGHT)
WAITMS (50)
KEYUP (#SHIFT)
WAITMS (100)
KEYDOWN (#CTRL)
WAITMS (50)
KEYDOWN (189)
WAITMS (50)
KEYUP (189)
KEYUP (#CTRL)
WAITMS (50)
KEYPRESS(#ENTER)
WAITMS (50)
KEYPRESS(#DOWN)
WAITMS (50)
END_SUB
// подпрограмма перехода к последней вставленной строке таблицы
SUB(LAST_ROW)
KEYPRESS(#DOWN)
WAITMS (50)
KEYPRESS(#DOWN)
WAITMS (50)
KEYPRESS(#DOWN)
WAITMS (50)
KEYPRESS(#DOWN)
WAITMS (50)
KEYPRESS(#DOWN)
WAITMS (50)
END_SUB
// подпрограмма открытия браузера и перехода на следующую страницу
SUB(START_BROWSER)
OPEN_BROWSER()
CHANGE_URL_BROWSER()
SET_URL_BROWSER()
END_SUB
// подпрограмма копирования таблицы
SUB(COPY_TABLE)
CHECK_BROWSER_PAGE()
CHECK_LAST_PAGE()
CLICK_3()
CTRL_C()
WaitMS(500)
END_SUB
// Диалоговое окно задания кода XXXXX и XXXX
SUB(DIALOG_SECTION)
$DIALOG_ANSWER = (DIALOGBOX("Ввести коды XXXXX и XXXXX", 3, 2))
SWITCH($DIALOG_ANSWER)
CASE(6)
$PAGE_SECTION = INT(INPUTBOX("Введите код XXXXXXX", $PAGE_SECTION, 20))
$PAGE_REGION = INT(INPUTBOX("Введите код XXXXXX", $PAGE_REGION, 20))
CASE(7)
HINTPOPUP ("Приняты значения по умолчанию" , "ВНИМАНИЕ")
DEFAULT
HINTPOPUP ("Не определен режим работы" , "ОШИБКА")
HALT
END_SWITCH
END_SUB
//======= НАЧАЛО ПРОГРАММЫ ====================================
LOGCLEAR
LOGSHOW (1, 1500,900)
DIALOG_SECTION()
execute("excel")
wait(2)
$HWnd = WNDFIND ("Microsoft Excel")
WndPos ($HWnd, 200, 200)
wndstate($HWnd, 0)
wndstate($HWnd, 1)
WaitMS(500)
$HWnd = WNDFIND ("Федеральная")
WndPos ($HWnd, 0, 0)
wndstate($HWnd, 0)
wndstate($HWnd, 1)
WaitMS(500)
WHILE($k<1)
START_BROWSER()
WAIT(8)
COPY_TABLE()
OPEN_EXCEL()
WAIT(1)
ACTIVATE_CELL()
PASTE_TABLE_EXCEL()
WAITMS(500)
DELETE_HEADLINE()
LAST_ROW()
WAITMS(500)
END_CYC
halt
[/spoiler]