Orion9

|
Posted: Wed Dec 25, 2024 18:06 Post subject: |
|
|
AkulaBig wrote: | Я в инете никого и ничего не боюсь. Тут все смелые  |
Как я уже говорил, после написания своих плагинов, скрипты на Autorun вам будут казаться семечками.) Поэтому говоря "если вас это не пугает", я имел в виду саму идею, что будет крутиться отдельный поток, проверять что-то каждую секунду в фоне, ресурсы жрать нехилые и мешать нормальной работе ТС
С последними оконными функциями Loopback, конечно, добавил адской мощи плагину. Можно, например, сделать вот так:
 Hidden text Code: | Global LANG_THREAD = 1
RegisterCommand 60008 "WatchLangSwitch"
SetHotkeyAction /K:A /H:F1 WatchLangSwitch 0
RunThread ThreadWatchLang
Func WatchLangSwitch(lParam)
If LANG_THREAD > 0 Then
LANG_THREAD = 0
Else
LANG_THREAD = 1
RunThread ThreadWatchLang
EndIf
EndFunc
Func ThreadWatchLang()
Local h = WinFind(AUTORUN_TCHANDLE, "TMyPanel", 5), txt, lng
Static c = 0
If c > 0 Then Return
c += 1
While LANG_THREAD > 0
txt = WinGetText(h)
If DetectLang(txt) <> lng Then ShowHint("Язык: " & DetectLang(txt))
OutputDebugString("Autorun: TMyPanel = " & txt)
lng = DetectLang(txt)
OutputDebugString("Autorun: Language = " & lng)
Sleep(1000)
Wend
c = 0
LANG_THREAD = 0
ShowHint("Поток остановлен")
EndFunc
Func DetectLang(Text)
Local Lang
If StrPos(Text, "файл") Then
Lang = "Русский"
ElseIf StrPos(Text, "file") Then
Lang = "English"
Else
Lang = "???"
EndIf
Return Lang
EndFunc |
Проверяется строка состояния каждую секунду и смотрится на каком языке написан текст. Делал на скорую руку и без комментариев, но, думаю, вы спокойно разберетесь и переделаете все под себя, если такая фишка действительно будет нужна.
Что касается ресурсов, то у меня сейчас, включая этот, четыре потока крутятся - загрузка ЦПУ от totalcmd.exe в пределах погрешности
 Кнопка TOTALCMD#BAR#DATA
60008
%COMMANDER_EXE%
Отслеживать смену языка
60008
Включить или отключить можно также по ALT+F1. По умолчанию при запуске ТС поток включен. |
|