AkulaBig писал(а):Что значит не сталкивался? Никогда не нажимали на звездочку с правой стороны панели ТС?
Нажимал, конечно

Не сталкивался - чтобы стили меню отличались. Но если у вас есть такая проблема, надо разобраться в чем причина, если, конечно, оно вам еще нужно, после успешного прикручивания MENUIMG.
AkulaBig писал(а):Закрадываются у меня сомнения, что встроенная обработка секций инишника тоже будет не быстрой. Ведь меню через au3 работает очень быстро, а работа с секциями занимает какое-то время.
Попробуйте на vbs реализовать. У меня сейчас нет возможности проверить, но там вроде ничего сложного. Вот пример смены секций из сборки PowerUser, можете взять за основу и переделать под себя:
[cut]
Код: Выделить всё
Dim WSH
Set WSH = CreateObject("WScript.Shell")
Str1 = "[+Associations]"
Str2 = "[-Associations]"
INI = WSH.ExpandEnvironmentStrings("%COMMANDER_PATH%\install\User\Associations.ini")
Text = CreateObject("Scripting.FileSystemObject").OpenTextFile(INI, 1, False, -1).ReadAll
If InStr(1, Text, Str1, 1) > 0 Then
Text = Replace(Text, Str1, Str2, 1, 1, 1)
Else
Text = Replace(Text, Str2, Str1, 1, 1, 1)
End If
With CreateObject("Scripting.FileSystemObject")
.OpenTextFile(INI, 2, False, -1).Write Text
.OpenTextFile(INI, 1, False, -1).Close
End With
Str1 = "[Associations]"
Str2 = "[-Associations]"
INI = WSH.ExpandEnvironmentStrings("%COMMANDER_PATH%\install\User\Associations.ini")
Text = CreateObject("Scripting.FileSystemObject").OpenTextFile(INI, 1, False, -1).ReadAll
If InStr(1, Text, Str1, 1) > 0 Then
Text = Replace(Text, Str1, Str2, 1, 1, 1)
Else
Text = Replace(Text, Str2, Str1, 1, 1, 1)
End If
With CreateObject("Scripting.FileSystemObject")
.OpenTextFile(INI, 2, False, -1).Write Text
.OpenTextFile(INI, 1, False, -1).Close
End With
Str1 = "[Associations]"
Str2 = "[+Associations]"
INI = WSH.ExpandEnvironmentStrings("%COMMANDER_PATH%\install\User\Associations.ini")
Text = CreateObject("Scripting.FileSystemObject").OpenTextFile(INI, 1, False, -1).ReadAll
If InStr(1, Text, Str1, 1) > 0 Then
Text = Replace(Text, Str1, Str2, 1, 1, 1)
Else
Text = Replace(Text, Str2, Str1, 1, 1, 1)
End If
With CreateObject("Scripting.FileSystemObject")
.OpenTextFile(INI, 2, False, -1).Write Text
.OpenTextFile(INI, 1, False, -1).Close
End With
Str1 = "%I%,54"
Str2 = "%I%,55"
INI = WSH.ExpandEnvironmentStrings("%COMMANDER_PATH%\install\Bars\tc.bar")
Text = CreateObject("Scripting.FileSystemObject").OpenTextFile(INI, 1, False, -1).ReadAll
If InStr(1, Text, Str1, 1) > 0 Then
Text = Replace(Text, Str1, Str2, 1, 1, 1)
Else
Text = Replace(Text, Str2, Str1, 1, 1, 1)
End If
With CreateObject("Scripting.FileSystemObject")
.OpenTextFile(INI, 2, False, -1).Write Text
.OpenTextFile(INI, 1, False, -1).Close
End With
Str1 = "%I%,54"
Str2 = "%I%,55"
INI = WSH.ExpandEnvironmentStrings("%COMMANDER_PATH%\install\Bars\vertical3.bar")
Text = CreateObject("Scripting.FileSystemObject").OpenTextFile(INI, 1, False, -1).ReadAll
If InStr(1, Text, Str1, 1) > 0 Then
Text = Replace(Text, Str1, Str2, 1, 1, 1)
Else
Text = Replace(Text, Str2, Str1, 1, 1, 1)
End If
With CreateObject("Scripting.FileSystemObject")
.OpenTextFile(INI, 2, False, -1).Write Text
.OpenTextFile(INI, 1, False, -1).Close
End With
WSH.Exec("Programm\TCFS2\TCFS2.exe /ef tcm(519)")
WScript.Sleep 50
WSH.SendKeys "~"
REM WSH.Exec("Programm\TCFS2\TCFS2.exe /ef tem(em_bar1_)")
Set WSH = Nothing
WScript.Quit
[/cut]
А вообще, на мой взгляд, тут и не нужна большая скорость. Вряд ли пользователь после смены языка сразу побежит в меню запуска делать там что-то.) Наоборот можно увеличить задержку в потоке на пару-тройку секунд и сократить, тем самым, количество обращений к ini.
AkulaBig писал(а):Если пользовательскую команду записывать вот в таком виде, то у кнопки появляется стрелка.
Не знал о таком. А это будет работать при отключении оверлея в панелях опцией PopupOverlay=0? Просто у меня как раз оверлей полностью отключен в wincmd.ini.
AkulaBig писал(а):Я правильно понимаю, что это для программистов? Стандартными средствами ТС я этот вызов в пользовательской команде принять не смогу?
Да вроде работает, если сделать все то же самое, но через em_:
AkulaBig писал(а):Осталась одна серьезная кнопка на TCIMG.
На Autorun, конечно, можно сделать многое, но ограничения все-таки есть.) Приведите код кнопки на TCIMG или напишите в двух словах, что нужно сделать, если будут какие-то мысли по этому поводу, то обязательно поделюсь. Но вы сами можете на
au3 все реализовать, включая диалоговые окна, на крайний случай.