Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Single Post  Topic: Autorun 
Author Message
AkulaBig



PostPosted: Fri Feb 13, 2026 12:25    Post subject: Reply with quote

Orion9
Вы у нас единственный остались на замену автору Smile Кстати, не в курсе, куда он так надолго исчез?
Решил побаловаться с наг-скрином ТС. Но не получается получить хэндл кнопки с цифрами.
Code:

hNagScreen = WinFind(WinFind(WinFind(WinFind(WinFind(0, 'TNASTYNAGSCREEN'), _
   auX64 ? "Window" : "TNotebook"), _
   auX64 ? "Window" : "TPage"), _
   auX64 ? "Window" : "TPanel"), _
   auX64 ? "Window" : "TPanel")
hButton = DllCall("GetNextWindow", "hwnd", hNagScreen, "int", 2, "hwnd")

И вот не знаю, как в Autorun реализовать функцию GetNextWindow. Решил через DllCall. Как всегда у меня DllCall не работает.
Можете посмотреть, что не так с DllCall?
А может можно следующее окно найти средствами Autorun?
Конечно с удовольствием услышу совет от любого форумчанина, а не только от Orion9
Додумался сам:
Code:

Local hButton = DllCall("GetWindow", "hwnd", hNagScreen, "uint", 2, "hwnd")

Вопрос с вариантом через Autorun остается. Но у вас тождественные функции тоже через DllCall решены. Так что, видимо, решения нет.

Добавлено спустя 1 час 40 минут:

Закрываем наг-скрин.
Может кому-то пригодится.
Code:

# Находим окно наг-скрина
# Find the nagscreen window
hNagScreen = WinFind(WinFind(WinFind(WinFind(WinFind(0, 'TNASTYNAGSCREEN'), _
   auX64 ? "Window" : "TNotebook"), _
   auX64 ? "Window" : "TPage"), _
   auX64 ? "Window" : "TPanel"), _
   auX64 ? "Window" : "TPanel")

# Определяем хэндлы кнопок для закрытия окна наг-скрина
# Define button handles for closing the naked screen window
hButton3 = DllCall("GetWindow", "hwnd", hNagScreen, "uint", 2, "hwnd")
hButton2 = DllCall("GetWindow", "hwnd", hButton3, "uint", 2, "hwnd")
hButton1 = DllCall("GetWindow", "hwnd", hButton2, "uint", 2, "hwnd")

# Имитация клика ЛКМ
# Simulate LMB click
BM_CLICK = 245

# Нажимаем кнопку для закрытия окна наг-скрина
# Press the button to close the naked screen window
Switch WinGetText(hNagScreen)
   Case '3'
      
      SendMessage(hButton3, BM_CLICK, 0, 0)
   Case '2'
      SendMessage(hButton2, BM_CLICK, 0, 0)
   Case '1'
      SendMessage(hButton1, BM_CLICK, 0, 0)
EndSwitch
View user's profile Send private message


Powered by phpBB © 2001, 2005 phpBB Group