| View previous topic :: View next topic |
| Author |
Message |
FallenAngel
Joined: 30 Dec 2025 Posts: 29
|
(Separately) Posted: Tue Mar 10, 2026 15:35 Post subject: |
|
|
Я поддержу идею, что нужно делать nSleep 1.
Без него "белый квадрат" при старте не очень смотрится.
Или есть возможно избежать появления НагСкрина вообще? |
|
| Back to top |
|
 |
AkulaBig
Joined: 03 Dec 2008 Posts: 502
|
(Separately) Posted: Tue Mar 10, 2026 17:40 Post subject: |
|
|
| FallenAngel wrote: |
Или есть возможно избежать появления НагСкрина вообще? |
Раз автокликеры научились полностью скрывать наг-скрин, скорей всего и здесь можно. Но боюсь как-раз это приведет к глюкам на определенных видюхах и драйверах, как у автокликеров. |
|
| Back to top |
|
 |
Orion9

Joined: 01 Jan 2024 Posts: 1035
|
(Separately) Posted: Tue Mar 10, 2026 20:10 Post subject: |
|
|
AkulaBig
А какие глюки у автокликеров на видюхах и драйверах ? Я просто не пользовался, не сталкивался с таким.
| FallenAngel wrote: | | Или есть возможно избежать появления НагСкрина вообще? |
Видимо, да, раз AkulaBig говорит. Да вы и сами пользовались автокликером - видели, наверное.
Вообще-то, было бы интересно узнать, что за техника используется. Возможно и получится сделать то же самое на Autorun при помощи Loopback, разумеется.
Кстати, как-то я не сразу сообразил, но раз уж вы пользуетесь AutoHotkey на постоянной основе, то можно через него провернуть Shift + ЛКМ по заголовку листера, как вы хотели. Правда придется em_ команду создать в usercmd.ini. Простая посылка кода 60045 не работает почему-то, хотя я думал, что будет работать.
| Code: | [em_alight_lister]
cmd=60045 |
 Hidden text | Code: | #Requires AutoHotkey v2.0
+LButton::
{
if WinGetClass("A") = "TLister"
CheckMouseTitleArea()
}
Esc::ExitApp()
CheckMouseTitleArea()
{
CoordMode("Mouse", "Screen")
MouseGetPos(&x, &y, &hwnd)
try {
result := SendMessage(0x84, 0, (x & 0xFFFF) | ((y & 0xFFFF) << 16),, "ahk_id " hwnd)
} catch {
result := 0
}
IsInTitle := (result = 2) ; 2 = HTCAPTION (Title Bar)
if IsInTitle
SendTCUserCommand("em_alight_lister")
;SendMessage(1075, 60045, 0, , "ahk_class TTOTAL_CMD")
}
SendTCUserCommand(userCommand) {
static EM := 19781, WM_COPYDATA := 0x4A
ansiBuf := Buffer(StrPut(userCommand, 'CP0'))
StrPut(userCommand, ansiBuf, 'CP0')
COPYDATASTRUCT := Buffer(A_PtrSize * 3)
NumPut('Ptr', EM, 'Ptr', ansiBuf.size, 'Ptr', ansiBuf.ptr, COPYDATASTRUCT)
SendMessage WM_COPYDATA,, COPYDATASTRUCT,, 'ahk_class TTOTAL_CMD'
} |
В .aucfg файле, соответственно, нужно зарегистрировать код 60045
| Code: | RegisterCommand 60045 "AlignListerWindow"
SetHotkeyAction /K:C /H:0 /DM "AlignListerWindow"
Func AlignListerWindow()
If IniRead("~/R", COMMANDER_INI, "Lister", "Maximized", 0) = 0 Then
WinGetPos("x", "y", "w", "h")
IniWrite("~/R", COMMANDER_INI, "Lister", "x", x)
IniWrite("~/R", COMMANDER_INI, "Lister", "y", y)
IniWrite("~/R", COMMANDER_INI, "Lister", "dx", w)
IniWrite("~/R", COMMANDER_INI, "Lister", "dy", h)
Local hWnd = WinFind(0, "TLister")
If hWnd = 0 Then Return ShowHint("Окно листера не найдено")
WinSetPos(x, y, w, h, "", hWnd)
WinSetState(23, hWnd)
EndIf
EndFunc |
Вроде работает. Болван электронный помог, кстати. Без него я бы долго в справке возился  |
|
| Back to top |
|
 |
AkulaBig
Joined: 03 Dec 2008 Posts: 502
|
(Separately) Posted: Tue Mar 10, 2026 20:17 Post subject: |
|
|
| Orion9 wrote: | | А какие глюки у автокликеров на видюхах и драйверах ? |
Лично я ловил глюк на встроенной видюхе. И до обновления драйвера до последней версии. Другие пару человек тоже примерно на таком-же железе. ТС 64 мелькает, как было у меня, когда я не проверял установленный язык, а на каждый тик менял его. При этом нажать на меню или еще на что невозможно. И так ведут себя все кликеры. И я практически уверен, что это из-за функции скрытия окна наг-скрина.
Добавлено спустя 2 часа 54 минуты:
Orion9
А вы знали, что надо писать вот так?
| Code: |
Func FieldET(FileName, FieldIndex, UnitIndex)
pipe = ProcessExecGetOutput(util_ET, '"' & FileName & '"')
EndFunc
|
Теперь надо проверять, только для ProcessExecGetOutput или вообще. |
|
| Back to top |
|
 |
Orion9

Joined: 01 Jan 2024 Posts: 1035
|
(Separately) Posted: Wed Mar 11, 2026 00:31 Post subject: |
|
|
Поставил StartupScreen=0 и понял о чем речь. Тут не то что Gillette с тройным лезвием, тут целая газонокосилка проходится
В общем, при таком раскладе, да - лучше запаузить немного - смотрится намного лучше. Может Loopback подскажет что, но сейчас от мелькания окна вряд ли получится избавиться. Autorun просто за ним не успевает. Наверное, если подключать алгоритм как отдельную dll, шансов отловить окно до повления гораздо больше (что, собственно, наверное и происходит с autoclick.dll, при условии, что там используется примерно такой же алгоритм)
| AkulaBig wrote: | | При этом нажать на меню или еще на что невозможно. |
Ну да. Очень похоже, что окно триала скрывается, но клик по кнопке не срабатывает. А поскольку это окно модальное, то и тотал со своим основным окном становится недоступным. Такого же эффекта можно добиться на Autorun. Правда сейчас там и стоит откат на случай подобного казуса.
| Code: | Sleep(500)
If WinGetState(1, hWnd) Then WinSetState(1, hWnd) |
| AkulaBig wrote: | | А вы знали, что надо писать вот так? |
Если вы о кавычках, то да - они, конечно, нужны. Я это как-то упустил.
FallenAngel
У вас случайно не используется что-то типа (сейчас об этом вспомнил)
https://forum.wincmd.ru/viewpost.php?p=139933
А то вдруг это и вызывает конфликт при правом клике по колонкам. |
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|