User's plugins
by Ilya » Mon, 30 Jun 2008, 01:20
Графический интерфейс и т.п.
Last edited by Ilya on Mon, 30 Jun 2008, 01:30, edited 1 time in total.
-
Ilya
-
- Posts: 445
- Joined: Mon, 07 Aug 2006, 09:51
- Location: Санкт-Петербург
-
by Ilya » Tue, 29 Jul 2008, 20:26
Прислал г-н AlikasS- Code: Select all
\ File: menu_click.spf \ 21 декабря 2004 г., 20:05:06 в эхо-конференции \ Vadim Belko писал \ Hажатие пункта меню по названию окна и тексту меню/подменю \ тема на форуме "Можно ли средствами nncron скрыть/показать системное меню?" \ http://nncron.ru/forums/viewtopic.php?f=5&t=396 \ примеры \ WIN-MENU-CLICK: "окно" "пункт меню 1" "подпункт меню 2..n" до конца стpоки \ WIN-MENU-CLICK: "LOG.txt - Блокнот" "&Файл" "Сохранить &как..."
WINAPI: GetMenu USER32.DLL WINAPI: GetSubMenu USER32.DLL WINAPI: GetMenuStringA USER32.DLL WINAPI: GetMenuItemCount USER32.DLL WINAPI: GetMenuItemID USER32.DLL WINAPI: GetMenuState USER32.DLL WINAPI: IsMenu USER32.DLL
USER-CREATE MenuStrBuf 256 USER-ALLOT 1024 CONSTANT MF_BYPOSITION 273 CONSTANT WM_COMMAND
: ?string, ( -- ?) get-string ?DUP IF POSTPONE XSLITERAL TRUE ELSE DROP FALSE THEN ; : ?eval-string, ( -- ?) ?string, DUP IF POSTPONE EVAL-SUBST THEN ;
: n2DROP ( n -- ) ?DUP IF DUP 0> IF 0 DO 2DROP LOOP ELSE DROP ." n2DROP: Error- n<0" CR THEN THEN ; : hmenu-click { itempos hmenu hwnd -- } MF_BYPOSITION itempos hmenu GetMenuState 3 ( MF_DISABLED MF_GRAYED OR) AND 0= IF \ на всякий случай - не тpогать отключеннные пункты меню itempos hmenu GetMenuItemID ( id) 0 SWAP WM_COMMAND hwnd PostMessageA DROP THEN ; : WalkSubMenu ( a* u* I hSubMenu cnt0 -- a** u** cnt ) { hSubMenu cnt0 \ cnt -- cnt } \ a* u* - стpоки на стеке в количестве cnt0 \ I-номеp, hSubMenu-handle пpосматpиваемого подменю (в случае главного меню окна: -1 hmenu) \ a** u** - оставшиеся стpоки на стеке в количестве cnt cnt0 TO cnt ( I) DUP 0< IF DROP ELSE ( I) hSubMenu GetSubMenu TO hSubMenu THEN hSubMenu IsMenu 0= IF ." 1WalkSubMenu: не найдено меню - '" 2DUP TYPE ." '" CR cnt EXIT THEN hSubMenu GetMenuItemCount DUP 0> IF ( itemcount) 0 DO \ цикл по item-ам 2DUP ( a u) \ заданный текст пункта меню MF_BYPOSITION 254 MenuStrBuf 1+ I hSubMenu GetMenuStringA MenuStrBuf C! MenuStrBuf COUNT ( 2DUP TYPE CR ) \ полученный текст 2SWAP WC-COMPARE IF \ пункт найден cnt 1- TO cnt 2DROP cnt 1 < IF I hSubMenu WIN-HWND hmenu-click ELSE I hSubMenu cnt RECURSE TO cnt THEN LEAVE THEN LOOP ELSE DROP THEN cnt cnt0 = IF ." WalkSubMenu: не найден пункт меню - '" 2DUP TYPE ." '" CR THEN cnt \ количество стpок, оставшихся на стеке ;
: WIN-MENU-CLICK ( -1 a* u* -- ) { \ cnt -- } \ смена поpядка стpок на стеке с подсчетом их количества 2 TO cnt \ в цикле счетчик количества стpок - удвоенный BEGIN DUP -1 <> WHILE cnt ROLL DUP -1 <> IF cnt 1+ ROLL SWAP THEN cnt 2+ TO cnt REPEAT DROP cnt 2/ 1- TO cnt cnt 2 < IF cnt n2DROP EXIT THEN
cnt 1- TO cnt WIN-EXIST? NOT IF cnt n2DROP ( ." WIN-MENU-CLICK: нет окна" CR ) EXIT THEN \ WIN-ACTIVATE: "%WIN-HWND%" \ для активирования окна -1 WIN-HWND GetMenu cnt WalkSubMenu n2DROP \ pекуpсивный пpосмотp подменю ; : WIN-MENU-CLICK: POSTPONE -1 BEGIN ?eval-string, NOT UNTIL POSTPONE WIN-MENU-CLICK ; IMMEDIATE
-
Ilya
-
- Posts: 445
- Joined: Mon, 07 Aug 2006, 09:51
- Location: Санкт-Петербург
-
by Ilya » Wed, 22 Oct 2008, 00:54
Ссылка на источник- Code: Select all
\ Переключает по Win-T Radeon-ы с тв-выходом с монитора на телек и по той же комбинации обратно. Возможно придётся подправить задержки. #( Monitor-TV-Monitor NoLog WatchHotKey: "$t" Action: ShowNormal NormalPriority START-APP: rundll32 shell32,Control_RunDLL desk.cpl 110 PAUSE 4 0 DO SEND-KEYS: "^{TAB}" LOOP 250 PAUSE WIN-CLICK: "Свойства: Экран" "Допо&лнительно" 5 0 DO SEND-KEYS: "^{TAB}" LOOP 3 0 DO SEND-KEYS: "{TAB}" LOOP SEND-KEYS: " " SEND-KEYS: "{ENTER}" WIN-CLICK: "Свойства: Экран" "ОК" )#
-
Ilya
-
- Posts: 445
- Joined: Mon, 07 Aug 2006, 09:51
- Location: Санкт-Петербург
-
by Ilya » Thu, 30 Apr 2009, 22:32
Поскольку пока сильная запарка (а я обещал), то пока просто тупые ссылки. Попозже собираюсь создать небольшой мануал с примерами. Всё (архив) нужное для подключения: forguiplugins.zip
-
Ilya
-
- Posts: 445
- Joined: Mon, 07 Aug 2006, 09:51
- Location: Санкт-Петербург
-
by VoidVolker » Sun, 23 Aug 2015, 20:43
Генератор менюОбсуждениеСкачать menu.spfПример: - Code: Select all
<%
Menu: MyMenu
Item: Item 1 ." Item 1 run" CR ;Item
Item: Item 2 ." Item 2 run" CR ;Item
----
SubMenu(
Item: Item 3 ." Item 3 run" CR ;Item
Item: Item 4 ." Item 4 run" CR ;Item
)SubMenu: Submenu
;Menu
%>
#( Show_my_menu \ NoActive SingleInstance WatchHotKey: "{F3}" Action: MyMenu MenuShowAtCursor )#
#( Show_my_menu \ NoActive SingleInstance WatchHotKey: "{F4}" Action: MyMenu MenuShow )#
#( Show_my_menu \ NoActive SingleInstance WatchHotKey: "{F5}" Action: 100 100 MyMenu MenuXY! MyMenu MenuShow )#
-

VoidVolker
- Site Admin
-
- Posts: 2907
- Joined: Tue, 25 Apr 2006, 17:56
Return to Plugins
Who is online
Users browsing this forum: No registered users and 0 guests
|
|