Orion9

|
Posted: Thu Jul 16, 2026 00:39 Post subject: |
|
|
Классную лазейку вы нашли, спасибо!
Тестировал где-то час, вроде работает!
Попробовал как с включеннной кнопкой истории, так и выключенной. Разные операции на панели с 500 кнопками! На которой, к тому же, куча разрывов и разделителей.
Вообще, час пролетел незаметно: прикольно кнопки туда сюда гонять
Сделал дополнительное меню для открытия временной панели через OPENBAR. В usercmd.ini нужна команда
| Code: | [em_open_bar_path]
cmd=OPENBAR
param=%A0 |
Толком не протестировал, но, кажется, есть какие-то проблемы. Меню вызывается через Shift+ ПКМ
| Code: | # правый клик с удержанием Shift
ControlSetMouseAction /R /K:S 28 "HBarShowOpenMenu" |
 Hidden text | Code: | Func HBarShowOpenMenu()
ShowPopupMenu /D /F /I:0 "HBarOpenBarMenu"
EndFunc
Func HBarOpenBarMenu()
Local sBars = FileFind(COMMANDER_PATH, "*.bar", -1, 1)
Local text
gHBarBars.Count = 0
gHBarBars.Text = sBars
For i = 0 To gHBarBars.Count - 1
text = text & 'MENUITEM "' & gHBarBars[i] & '", em_aucmd -1 HBarOpenBar ' & i & auCRLF
Next
Return text
EndFunc
Func HBarOpenBar(FileIndex)
Local bar = gHBarBars[FileIndex]
c = IniRead(bar, "Buttonbar", "Buttoncount", 0)
If c = 0 Then
MsgBox("Файл не содержит данных о кнопках" & auCRLF & auCRLF & bar, "Autorun", 0+48)
Return
EndIf
If gHBarWndProc > 0 Then
DllCall("SetWindowLong" & (auX64 ? "PtrW" : "W"), _
"hwnd", hBarWnd, "int", -4, "long_ptr", gHBarWndProc, "ptr")
hBarWnd = 0
EndIf
CommandExec("em_open_bar_path", bar)
EndFunc |
Надо будет его еще потестировать хорошенько. Вроде удобно. |
|