|
|
|
Меню окна, подскажите плз!, Как работать с главным меню программы? |
|
|
for2 |
6.12.2020, 16:19
|
Neophyte
Сообщений: 25
Регистрация: 4.12.2020 Группа: Пользователи Наличность: 0
Пользователь №: 19.817
Возраст: 17
|
Цитата(cirus @ 5.12.2020, 19:24) Код --lua wait(3000) -- пауза 3 секунды (можно убрать) local name_active_window = getwindowtext(getwindow(0)) -- получить имя активного окна clipboard (name_active_window) -- скопировать в буфер обмена hint (name_active_window) -- подсказка в левом нижнем углу (можно убрать) Для добавления звукового сигнала добавил в конец кода, без параметров Alarm - выдает ошибку hint (name_active_window) - Попытался увеличить шрифт, всяко разно дописывал цифры и со скобками и без согласно в описанию - выдает ошибку Вообще не въезжаю в синтаксис?? Подскажите как правильно, пжл
|
|
|
|
cirus |
6.12.2020, 16:44
|
Elder
Сообщений: 3.480
Регистрация: 18.8.2014 Группа: Пользователи Наличность: 26702
Пользователь №: 16.971
Возраст: 29
|
Цитата Alarm - выдает ошибку
Код Цитата Попытался увеличить шрифт Это работает только в старом синтаксисе. В луа нет. Можно использовать такой вариант: Код --lua -- тут какой-то код луа
--endlua
// тут используется старый синтаксис пилота hint (24 clRed 500 500 -1 -1 (Готово))
--lua -- дальше снова код на языке луа -- какой-то код луа Но, я бы не стал так делать, скорее всего никто не тестил насколько корректно будет работать такой скрипт. Цитата Вообще не въезжаю в синтаксис?? Не путайте старый синтаксис пилота и луа. Список функций, которые работают в луа без проблем: https://uopilot.uokit.com/wiki/index.php?ti...к_функций_(Lua)Смотрите примеры именно тут.
|
|
|
|
for2 |
6.12.2020, 17:30
|
Neophyte
Сообщений: 25
Регистрация: 4.12.2020 Группа: Пользователи Наличность: 0
Пользователь №: 19.817
Возраст: 17
|
Цитата(cirus @ 6.12.2020, 16:44) Не путайте старый синтаксис пилота и луа. Список функций, которые работают в луа без проблем: https://uopilot.uokit.com/wiki/index.php?ti...к_функций_(Lua)Смотрите примеры именно тут. Хорошо, спасибо. Ещё вопрос (IMG: https://s8.hostingkartinok.com/uploads/images/2020/12/27abce1e63782a5a67ebb3249b5f4558.png) Речь идет о всё той же программе Quik. Я могу рисовать в ней простые геометрические объекты и удалять их. Вопрос, видите ли вы возможность через код работать с графическими объектами? Т.е. в коде, который вы мне писали происходит поиск поиск кнопок, отправка сообщений. Может ли это работать с простыми графическими объектами? (вообще эта прога Quik поддерживает работу со скриптами Lua) или постановка задачи слишком туманна, чтобы внятно ответить? )
|
|
|
|
for2 |
6.12.2020, 19:46
|
Neophyte
Сообщений: 25
Регистрация: 4.12.2020 Группа: Пользователи Наличность: 0
Пользователь №: 19.817
Возраст: 17
|
Цитата(cirus @ 6.12.2020, 17:56) Пожалуй, да.
Хорошо, можно ли организовать ввод с клавиатуры: - после нажатия горячей клавиши скрипт ждет ввода с клавы - ввожу ключевые буквы названия окна, Enter - т.е. последовательность букв будет уникальна для каждого окна - скрипт ищет и делает это окно активным, т.е. если свёрнуто или под другими окнами - раскрывается/вылезает вперед Можно ли так сделать? Суть в том, что - сортировки по виртуальным столам - нету, т.е. после перезагрузки вся куча всё равно - на столе-1 - программа (Quik) работает корректно только со столом-1 ?? (IMG: style_emoticons/default/rolleyes.gif)
|
|
|
|
Fors1k |
7.12.2020, 18:21
|
Journeyman
Сообщений: 497
Регистрация: 19.12.2017 Группа: Пользователи Наличность: 2398
Пользователь №: 18.746
|
Цитата(for2 @ 6.12.2020, 6:09) И ещё такая просьба, На сколько сложно реализовать сортировку окон по рабочим столам, т.к. после перезагрузки получается свалка на столе №1. Например, есть 6 рабочих столов. Код должен сканировать все рабочие столы и сортировать окна по конкретным столам. Вот правила перемещения окон на рабочие столы: (IMG: https://s8.hostingkartinok.com/uploads/images/2020/12/0690545a03a2c52df6f0df1ae2dfafb8.png) Если можете, помогине пожалуйста с кодом Снять галочку
Код --lua require"luaposh";log "clear";log "mode compact" PScode('return',{[[#} # $windows = @{#} "Калькулятор" = 2 "wordpad" = 3 "paint" = 4 }
$windows.GetEnumerator()|ForEach{#} Move-WindowToDesktop (Find-Window $_.Key) $_.Value } # ]]}) Move-WindowToDesktop третий параметр можно не указывать (по умолчанию 200). Если будет некорректно работать, то указывайте его с увеличением: 250;300;350;... , пока не найдете подходящий.
--------------------
Для связи
|
|
|
|
for2 |
8.12.2020, 16:51
|
Neophyte
Сообщений: 25
Регистрация: 4.12.2020 Группа: Пользователи Наличность: 0
Пользователь №: 19.817
Возраст: 17
|
Цитата(cirus @ 6.12.2020, 20:22) А не проще вызывать нужное окно при нажатии комбинации клавиш. Примерно так:
Спасибо большое, но проблема в том, что открытых окон 40 шт (IMG: style_emoticons/default/blink.gif) и это не предел (IMG: style_emoticons/default/smile.gif) При этом могут происходить изменения в наборе окон, перестановки. Поэтому адекватно и оперативно работать с окнами я могу только вызывая их по ключевым буквам (имени окна)
|
|
|
|
for2 |
8.12.2020, 17:28
|
Neophyte
Сообщений: 25
Регистрация: 4.12.2020 Группа: Пользователи Наличность: 0
Пользователь №: 19.817
Возраст: 17
|
Цитата(cirus @ 6.12.2020, 20:22) А не проще вызывать нужное окно при нажатии комбинации клавиш. Примерно так:
А вообще лучше было бы плавающее окно поверх других такого вида (IMG: https://s8.hostingkartinok.com/uploads/images/2020/12/69148f25fbc8b0c5e9d6bd29965bedab.png) Каждая клетка - это кнопка. Нажимаю SR (или Si, GZ, YN) + 1' (или 5', 30', D, W) что дает такие сочетания: SR1' или SRD или GZ5' и т.д. А SR1' (или SRD или GZ5' и т.д.) - это и есть название окна (часть названия). Т.о. активируется необходимое окно. Такой графический интерфейс сложно сделать? Цитата(Fors1k @ 7.12.2020, 18:21) Move-WindowToDesktop третий параметр можно не указывать (по умолчанию 200). Если будет некорректно работать, то указывайте его с увеличением: 250;300;350;... , пока не найдете подходящий.
Интересно, но я выяснил, что мои окна нормально работают только на рабочем столе №1, на остальных - глючат. Поэтому пусть будет свалка окон на столе-1, но чтобы я мог оперативно активировать любое нужное окно по его названию
|
|
|
|
Fors1k |
8.12.2020, 20:02
|
Journeyman
Сообщений: 497
Регистрация: 19.12.2017 Группа: Пользователи Наличность: 2398
Пользователь №: 18.746
|
Цитата(for2 @ 6.12.2020, 19:46) - после нажатия горячей клавиши скрипт ждет ввода с клавы - ввожу ключевые буквы названия окна, Enter - т.е. последовательность букв будет уникальна для каждого окна - скрипт ищет и делает это окно активным, т.е. если свёрнуто или под другими окнами - раскрывается/вылезает вперед
Код set hotkeystart @{F1} --lua require"luaposh";log"clear";log"mode compact" window=PScode('return',{[[$return=text_prompt]]}) showwindow(findwindow(window)[1][1], 'top') - hotkey: Alt+F1. - Вводить имя окна с учетом регистра, например: WordPad.
--------------------
Для связи
|
|
|
|
cirus |
9.12.2020, 2:26
|
Elder
Сообщений: 3.480
Регистрация: 18.8.2014 Группа: Пользователи Наличность: 26702
Пользователь №: 16.971
Возраст: 29
|
Цитата Такой графический интерфейс сложно сделать? Скачать архив LuaWindow.zip из этой темы: https://forum.uokit.com/index.php?showtopic=70165, распаковать в папку с exe пилота. код
Код --lua package.path = "LuaWindow\\winapi\\?.lua;" .. package.path package.path = "LuaWindow\\events\\?.lua;" .. package.path package.path = "LuaWindow\\?.lua;" .. package.path setfenv(1, require'winapi') require'ansi_utf' require'winapi' require'winapi.windowclass' require'winapi.buttonclass'
-- создание окна и контролов local win = Window{w = 290, h = 170, x = 200, y = 100, title = utf('Диалог'), topmost = true} local buttonSR = Button{parent = win, x = 10, y = 10, w = 60, h = 20, text = utf('SR')} local buttonSi = Button{parent = win, x = 10, y = 35, w = 60, h = 20, text = utf('Si')} local buttonGZ = Button{parent = win, x = 10, y = 60, w = 60, h = 20, text = utf('GZ')} local buttonYN = Button{parent = win, x = 10, y = 85, w = 60, h = 20, text = utf('YN')} local button1 = Button{parent = win, x = 80, y = 10, w = 30, h = 95, text = utf('1')} local button5 = Button{parent = win, x = 115, y = 10, w = 30, h = 95, text = utf('5')} local button30 = Button{parent = win, x = 150, y = 10, w = 30, h = 95, text = utf('30')} local buttonD = Button{parent = win, x = 185, y = 10, w = 30, h = 95, text = utf('D')} local buttonW = Button{parent = win, x = 220, y = 10, w = 30, h = 95, text = utf('W')}
local window_name = ''
-- флаги local flag_close = 0 local flag_buttonSR, flag_buttonSi, flag_buttonGZ, flag_buttonYN = 0, 0, 0, 0 local flag_button1, flag_button5, flag_button30, flag_buttonD, flag_buttonW = 0, 0, 0, 0, 0
function activate_window(window_name) if #window_name < 3 then return end local h = findwindow(window_name) if h then showwindow(h[1][1], 'TOP') -- или RESTORE else hint('Окно с именем: ' .. window_name .. ' Не найдено') end window_name = '' end
-- функции сообщений function buttonSR:on_click() flag_buttonSR = 1 end function buttonSi:on_click() flag_buttonSi = 1 end function buttonGZ:on_click() flag_buttonGZ = 1 end function buttonYN:on_click() flag_buttonYN = 1 end function button1:on_click() flag_button1 = 1 end function button5:on_click() flag_button5 = 1 end function button30:on_click() flag_button30 = 1 end function buttonD:on_click() flag_buttonD = 1 end function buttonW:on_click() flag_buttonW = 1 end function win:on_close() flag_close = bit.bxor(flag_close, 1) end
win:show()
while flag_close == 0 do while ProcessNextMessage() do wait (1) end
if flag_buttonSR == 1 then flag_buttonSR = 0 window_name='SR' end if flag_buttonSi == 1 then flag_buttonSi = 0 window_name='Si' end if flag_buttonGZ == 1 then flag_buttonGZ = 0 window_name='GZ' end if flag_buttonYN == 1 then flag_buttonYN = 0 window_name='YN' end
if flag_button1 == 1 then flag_button1 = 0 activate_window(window_name .. '1') window_name='' end if flag_button5 == 1 then flag_button5 = 0 activate_window(window_name .. '5') window_name='' end if flag_button30 == 1 then flag_button30 = 0 activate_window(window_name .. '30') window_name='' end if flag_buttonD == 1 then flag_buttonD = 0 activate_window(window_name .. 'D') window_name='' end if flag_buttonW == 1 then flag_buttonW = 0 activate_window(window_name .. 'W') window_name='' end
wait(10) end Закрывать окно можно только через крестик, а не остановкой скрипта.
|
|
|
|
for2 |
9.12.2020, 16:51
|
Neophyte
Сообщений: 25
Регистрация: 4.12.2020 Группа: Пользователи Наличность: 0
Пользователь №: 19.817
Возраст: 17
|
Цитата(Fors1k @ 8.12.2020, 20:02) - Вводить имя окна с учетом регистра, например: WordPad.
Очень интересно, надо пробовать (IMG: style_emoticons/default/smile.gif) Цитата(cirus @ 9.12.2020, 2:26) Скачать архив LuaWindow.zip из этой темы: [url=https://forum.uokit.com/index.php?
Оооочень круто, буду тестить временем удобство и скорость и поведение системы Ещё напишу (IMG: style_emoticons/default/smile.gif)
|
|
|
|
cirus |
9.1.2021, 23:50
|
Elder
Сообщений: 3.480
Регистрация: 18.8.2014 Группа: Пользователи Наличность: 26702
Пользователь №: 16.971
Возраст: 29
|
Цитата Можно ли в интерфейс вашего кода добавить "галочку"? - я ставлю галку и для принтера ставится галка "Приостановить печать" - убираю галку и галка с "Приостановить печать" - убирается Как-то так: код
Код --lua local WM_COMMAND = 0x0111 local ffi = require("ffi") ffi.cdef[[ unsigned int GetMenuItemID(int hMenu, int nPos); int PostMessageA(int hWnd, unsigned int Msg, unsigned int wParam, long lParam); ]]
package.path = "LuaWindow\\winapi\\?.lua;" .. package.path package.path = "LuaWindow\\events\\?.lua;" .. package.path package.path = "LuaWindow\\?.lua;" .. package.path setfenv(1, require'winapi') require'ansi_utf' require'winapi' require'winapi.windowclass' require'winapi.buttonclass' require'winapi.checkboxclass'
-- создание окна и контролов local win = Window{w = 290, h = 200, x = 200, y = 100, title = utf('Диалог'), topmost = true} local buttonSR = Button{parent = win, x = 10, y = 10, w = 60, h = 20, text = utf('SR')} local buttonSi = Button{parent = win, x = 10, y = 35, w = 60, h = 20, text = utf('Si')} local buttonGZ = Button{parent = win, x = 10, y = 60, w = 60, h = 20, text = utf('GZ')} local buttonYN = Button{parent = win, x = 10, y = 85, w = 60, h = 20, text = utf('YN')} local button1 = Button{parent = win, x = 80, y = 10, w = 30, h = 95, text = utf('1')} local button5 = Button{parent = win, x = 115, y = 10, w = 30, h = 95, text = utf('5')} local button30 = Button{parent = win, x = 150, y = 10, w = 30, h = 95, text = utf('30')} local buttonD = Button{parent = win, x = 185, y = 10, w = 30, h = 95, text = utf('D')} local buttonW = Button{parent = win, x = 220, y = 10, w = 30, h = 95, text = utf('W')}
local check1 = CheckBox{parent = win, x = 10, y = 120, w = 80, h = 20, text = 'Check1', checked = false}
local window_name = ''
-- флаги local flag_close = 0 local flag_buttonSR, flag_buttonSi, flag_buttonGZ, flag_buttonYN = 0, 0, 0, 0 local flag_button1, flag_button5, flag_button30, flag_buttonD, flag_buttonW = 0, 0, 0, 0, 0
function activate_window(window_name) if #window_name < 3 then return end local h = findwindow(window_name) if h then showwindow(h[1][1], 'TOP') -- или RESTORE else hint('Окно с именем: ' .. window_name .. ' Не найдено') end window_name = '' end
-- функции сообщений function buttonSR:on_click() flag_buttonSR = 1 end function buttonSi:on_click() flag_buttonSi = 1 end function buttonGZ:on_click() flag_buttonGZ = 1 end function buttonYN:on_click() flag_buttonYN = 1 end function button1:on_click() flag_button1 = 1 end function button5:on_click() flag_button5 = 1 end function button30:on_click() flag_button30 = 1 end function buttonD:on_click() flag_buttonD = 1 end function buttonW:on_click() flag_buttonW = 1 end function win:on_close() flag_close = bit.bxor(flag_close, 1) end
function check1:on_click() -- если был клик по галке local menuiteminfo = ffi.new('MENUITEMINFOW', {ffi.sizeof('MENUITEMINFOW'), MIIM_STATE }) local handle = findwindow('Canon iP2700') -- имя окна очереди печати if handle then local h_menu = ffi.C.GetMenu(ffi.cast('HWND', handle[1][1])) if h_menu then local h_submenu = ffi.C.GetSubMenu(h_menu, 0) -- 0 - Принтер local id_item = ffi.C.GetMenuItemID(ffi.cast('int', h_submenu), 6) -- 6 - Приостановить печать if check1.checked then menuiteminfo.fState = MFS_CHECKED else menuiteminfo.fState = MFS_UNCHECKED end ffi.C.SetMenuItemInfoW(h_submenu, id_item, false, menuiteminfo) -- установить галку на пункт меню -- ffi.C.PostMessageA(handle[1][1], WM_COMMAND, id_item, 0) -- может надо, может нет end else log ('Окно очереди печати не найдено') end end
win:show()
while flag_close == 0 do while ProcessNextMessage() do wait (1) end
if flag_buttonSR == 1 then flag_buttonSR = 0 window_name='SR' end if flag_buttonSi == 1 then flag_buttonSi = 0 window_name='Si' end if flag_buttonGZ == 1 then flag_buttonGZ = 0 window_name='GZ' end if flag_buttonYN == 1 then flag_buttonYN = 0 window_name='YN' end
if flag_button1 == 1 then flag_button1 = 0 activate_window(window_name .. '1') window_name='' end if flag_button5 == 1 then flag_button5 = 0 activate_window(window_name .. '5') window_name='' end if flag_button30 == 1 then flag_button30 = 0 activate_window(window_name .. '30') window_name='' end if flag_buttonD == 1 then flag_buttonD = 0 activate_window(window_name .. 'D') window_name='' end if flag_buttonW == 1 then flag_buttonW = 0 activate_window(window_name .. 'W') window_name='' end
wait(10) end
|
|
|
|
for2 |
13.2.2021, 11:13
|
Neophyte
Сообщений: 25
Регистрация: 4.12.2020 Группа: Пользователи Наличность: 0
Пользователь №: 19.817
Возраст: 17
|
Цитата(cirus @ 9.1.2021, 23:50) Как-то так: код
Код --lua local WM_COMMAND = 0x0111 local ffi = require("ffi") ffi.cdef[[ unsigned int GetMenuItemID(int hMenu, int nPos); int PostMessageA(int hWnd, unsigned int Msg, unsigned int wParam, long lParam); ]]
package.path = "LuaWindow\\winapi\\?.lua;" .. package.path package.path = "LuaWindow\\events\\?.lua;" .. package.path package.path = "LuaWindow\\?.lua;" .. package.path setfenv(1, require'winapi') require'ansi_utf' require'winapi' require'winapi.windowclass' require'winapi.buttonclass' require'winapi.checkboxclass' -- создание окна и контролов local win = Window{w = 290, h = 200, x = 200, y = 100, title = utf('Диалог'), topmost = true} local buttonSR = Button{parent = win, x = 10, y = 10, w = 60, h = 20, text = utf('SR')} local buttonSi = Button{parent = win, x = 10, y = 35, w = 60, h = 20, text = utf('Si')} local buttonGZ = Button{parent = win, x = 10, y = 60, w = 60, h = 20, text = utf('GZ')} local buttonYN = Button{parent = win, x = 10, y = 85, w = 60, h = 20, text = utf('YN')} local button1 = Button{parent = win, x = 80, y = 10, w = 30, h = 95, text = utf('1')} local button5 = Button{parent = win, x = 115, y = 10, w = 30, h = 95, text = utf('5')} local button30 = Button{parent = win, x = 150, y = 10, w = 30, h = 95, text = utf('30')} local buttonD = Button{parent = win, x = 185, y = 10, w = 30, h = 95, text = utf('D')} local buttonW = Button{parent = win, x = 220, y = 10, w = 30, h = 95, text = utf('W')}
local check1 = CheckBox{parent = win, x = 10, y = 120, w = 80, h = 20, text = 'Check1', checked = false}
local window_name = ''
-- флаги local flag_close = 0 local flag_buttonSR, flag_buttonSi, flag_buttonGZ, flag_buttonYN = 0, 0, 0, 0 local flag_button1, flag_button5, flag_button30, flag_buttonD, flag_buttonW = 0, 0, 0, 0, 0
function activate_window(window_name) if #window_name < 3 then return end local h = findwindow(window_name) if h then showwindow(h[1][1], 'TOP') -- или RESTORE else hint('Окно с именем: ' .. window_name .. ' Не найдено') end window_name = '' end
-- функции сообщений function buttonSR:on_click() flag_buttonSR = 1 end function buttonSi:on_click() flag_buttonSi = 1 end function buttonGZ:on_click() flag_buttonGZ = 1 end function buttonYN:on_click() flag_buttonYN = 1 end function button1:on_click() flag_button1 = 1 end function button5:on_click() flag_button5 = 1 end function button30:on_click() flag_button30 = 1 end function buttonD:on_click() flag_buttonD = 1 end function buttonW:on_click() flag_buttonW = 1 end function win:on_close() flag_close = bit.bxor(flag_close, 1) end function check1:on_click() -- если был клик по галке local menuiteminfo = ffi.new('MENUITEMINFOW', {ffi.sizeof('MENUITEMINFOW'), MIIM_STATE }) local handle = findwindow('Canon iP2700') -- имя окна очереди печати if handle then local h_menu = ffi.C.GetMenu(ffi.cast('HWND', handle[1][1])) if h_menu then local h_submenu = ffi.C.GetSubMenu(h_menu, 0) -- 0 - Принтер local id_item = ffi.C.GetMenuItemID(ffi.cast('int', h_submenu), 6) -- 6 - Приостановить печать if check1.checked then menuiteminfo.fState = MFS_CHECKED else menuiteminfo.fState = MFS_UNCHECKED end ffi.C.SetMenuItemInfoW(h_submenu, id_item, false, menuiteminfo) -- установить галку на пункт меню -- ffi.C.PostMessageA(handle[1][1], WM_COMMAND, id_item, 0) -- может надо, может нет end else log ('Окно очереди печати не найдено') end end win:show() while flag_close == 0 do while ProcessNextMessage() do wait (1) end
if flag_buttonSR == 1 then flag_buttonSR = 0 window_name='SR' end if flag_buttonSi == 1 then flag_buttonSi = 0 window_name='Si' end if flag_buttonGZ == 1 then flag_buttonGZ = 0 window_name='GZ' end if flag_buttonYN == 1 then flag_buttonYN = 0 window_name='YN' end
if flag_button1 == 1 then flag_button1 = 0 activate_window(window_name .. '1') window_name='' end if flag_button5 == 1 then flag_button5 = 0 activate_window(window_name .. '5') window_name='' end if flag_button30 == 1 then flag_button30 = 0 activate_window(window_name .. '30') window_name='' end if flag_buttonD == 1 then flag_buttonD = 0 activate_window(window_name .. 'D') window_name='' end if flag_buttonW == 1 then flag_buttonW = 0 activate_window(window_name .. 'W') window_name='' end
wait(10) end Добавьте, пожалуйста в код что-то (IMG: style_emoticons/default/rolleyes.gif) чтобы - при клике в чекбокс Окно очереди печати сначала делалось активным, а потом в него отправлялось сообщение снять/установить галку приостановки печати Т.к. когда Окно очереди печати не активно, то клик в чекбокс почему-то работает не всегда, делаю Окно очереди печати активным - тогда всё четко! (IMG: style_emoticons/default/smile.gif)
|
|
|
|
for2 |
13.2.2021, 11:47
|
Neophyte
Сообщений: 25
Регистрация: 4.12.2020 Группа: Пользователи Наличность: 0
Пользователь №: 19.817
Возраст: 17
|
Цитата(cirus @ 13.2.2021, 11:24) Код local handle = findwindow('Canon iP2700') if handle then showwindow(handle , 'TOP') -- добавить эту строку Почему-то окно не делается активным Строку вставил: код
Код function check1:on_click() -- если был клик по галке local menuiteminfo = ffi.new('MENUITEMINFOW', {ffi.sizeof('MENUITEMINFOW'), MIIM_STATE }) local handle = findwindow('Canon iP2700') -- имя окна очереди печати if handle then showwindow(handle , 'TOP') local h_menu = ffi.C.GetMenu(ffi.cast('HWND', handle[1][1])) if h_menu then local h_submenu = ffi.C.GetSubMenu(h_menu, 0) -- 0 - Принтер local id_item = ffi.C.GetMenuItemID(ffi.cast('int', h_submenu), 6) -- 6 - Приостановить печать if check1.checked then menuiteminfo.fState = MFS_CHECKED else menuiteminfo.fState = MFS_UNCHECKED end ffi.C.SetMenuItemInfoW(h_submenu, id_item, false, menuiteminfo) -- установить галку на пункт меню ffi.C.PostMessageA(handle[1][1], WM_COMMAND, id_item, 0) -- может надо, может нет end else log ('Окно очереди печати не найдено') end end
|
|
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|