|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Работа с файлами панелей инструментов тотал коммндера |
|
[решено] Работа с файлами панелей инструментов тотал коммндера
|
Старожил Сообщения: 156 |
Привет участникам форума!
Имеются файлы примерно такого содержания: [Buttonbar] Buttoncount=15 button1=Wcmicons.dll,385 cmd1=%COMMANDER_PATH%\Programs\Players\VLC\Vlc.exe iconic1=0 menu1=Открыть файлы/папки в VLC param1=%P%S button2=Wcmicons.dll,391 cmd2=%COMMANDER_PATH%\Programs\Players\Media_Player_Classic\MPlayerc.exe iconic2=0 menu2=Открыть файл в MPlayer Classic param2=%P%N button3= iconic3=0 button4=Wcmicons.dll,388 cmd4=%COMMANDER_PATH%\Programs\Players\Light_Alloy\LA.exe iconic4=0 menu4=Открыть файлы/папки в Light Alloy param4=%P%S button5=Wcmicons.dll,389 cmd5=%COMMANDER_PATH%\Programs\Players\JetAudio\JetAudioPortable.exe iconic5=0 menu5=Открыть файл/папку в JetAudio param5=%P%N button6=Wcmicons.dll,1757 cmd6=%COMMANDER_PATH%\Plugins\wlx\AmpView\AmpView.exe iconic6=0 menu6=Открыть файлы в AmpView param6=%P%S button7=Wcmicons.dll,1742 iconic7=0 iconic8=0 button9=Wcmicons.dll,395 cmd9=%COMMANDER_PATH%\Programs\Players\Flash_Movie_Player\fmp.exe menu9=Открыть файл в Flash Movie Player param9=%P%N button10=Wcmicons.dll,1283 cmd10=%COMMANDER_PATH%\Programs\Players\FlashPlayer\FlashPlayer.exe menu10=Открыть файл в Flash Player param10=%P%N button11=Wcmicons.dll,1284 cmd11=%COMMANDER_PATH%\Programs\Players\Flash_Player_Pro\Flash_Player_Pro.exe menu11=Открыть файл в Flash Player Pro param11=%P%N button12=Wcmicons.dll,402 cmd12=%COMMANDER_PATH%\Programs\Graphics\IrfanView\Plugins\IV_Player.exe iconic12=0 menu12=Открыть файл в плеере IrfanView param12=%P%N button13=Wcmicons.dll,398 cmd13=%COMMANDER_PATH%\Programs\Graphics\XnView\xnview.exe menu13=Открыть файл в плеере Xn View param13=%P%N button14=Wcmicons.dll,979 cmd14=%COMMANDER_PATH%\Programs\Players\KMPlayer\KMPlayerPortable.exe menu14=Открыть файлы в KMPlayer param14=%P%S button15=Wcmicons.dll,396 cmd15=%COMMANDER_PATH%\Programs\Audio\Teen_Spirit\jaangle.exe param15=%P%N menu15=Открыть файл в плеере TeenSpirit iconic15=0 iconic13=0 iconic9=0 cmd7=%COMMANDER_PATH%\Programs\Players\Ubi\UbiquitousPlayer.exe param7= path7= menu7=Плеер Ubiquitous То есть на выходе надо получить такую же строку, как я писал в этой теме http://forum.oszone.net/thread-267794.html То есть Button1 - зависит от условия, есть ли в строке wcmicons.dll Рабочий пример #include <ButtonConstants.au3> #include <EditConstants.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #include <GuiEdit.au3> #Region ### START Koda GUI section ### $Form1 = GUICreate("Form1", 813, 453, 435, 124) $Edit1 = GUICtrlCreateEdit("", 8, 8, 409, 401) GUICtrlSetData(-1, "") $Edit2 = GUICtrlCreateEdit("", 424, 8, 385, 401) GUICtrlSetData(-1, "") $Button1 = GUICtrlCreateButton("Button1", 8, 424, 113, 25) $Button2 = GUICtrlCreateButton("Button2", 320, 424, 193, 25) GUISetState(@SW_SHOW) #EndRegion ### END Koda GUI section ### While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $Button1 _FileOpen() Case $Button2 _Convert() EndSwitch WEnd Func _FileOpen() $h_file=FileOpenDialog ( "Открыть bar файл", @ScriptDir, "Файлы панелей Total Commander (*.bar)") $h_fileread=FileRead($h_file) GUICtrlSetData ($Edit1,$h_fileread) EndFunc Func _Convert() EndFunc |
|
Отправлено: 15:22, 14-09-2013 |
Старожил Сообщения: 156
|
Профиль | Отправить PM | Цитировать Creat0R, после замены все ок!
|
Отправлено: 18:52, 29-09-2013 | #21 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 156
|
Профиль | Отправить PM | Цитировать Выручайте, обнаружился мой косяк. Нужно еще одно условие к данной функции. Итак , вкратце. Отрезок функции такой
Func _ConvertBarFile() If GUICtrlRead($Edit1)='' Then MsgBox(262144+48, "Ошибка", "В текстовом поле нет кода для конвертирования") Return EndIf $Config = Int(IniRead($INICONV, 'Setting', 'Config', 1)) Local $sMenuHeader="M" If $Config=1 Then $sMenuHeader="MENUITEM" EndIf Local $sInStrCond="Wcmicons.dll" Local $sRead = GUICtrlRead($Edit1) Local $iCount = Int(_IniString_Read($sRead, 'Buttonbar', 'buttoncount', 0)) Local $sItems = '' For $i = 1 To $iCount Dim $aItem[4] = _ [ _ _IniString_Read($sRead, 'Buttonbar', 'menu' & $i, ''), _ ;Menu _IniString_Read($sRead, 'Buttonbar', 'button' & $i, ''), _ ;Button _IniString_Read($sRead, 'Buttonbar', 'cmd' & $i, ''), _ ;Cmd _IniString_Read($sRead, 'Buttonbar', 'param' & $i, '') _ ;Param ] $sLine = $sMenuHeader & ' ' For $j = 0 To 3 If $j = 1 And StringInStr($aItem[$j], $sInStrCond) Then $aItem[$j] = StringRegExpReplace($aItem[$j], '.*?(-?\d+)', '\1') Endif Если в строке нет wcmicons.dll , то строка должна браться полностью. Но есть проблема - в этом случае в конец строки надо добавить ",0" ( запятую с нулем, без кавычек) Пробовал так, получается чепуха - он к номеру дописывает еще запятую с нулем For $j = 0 To 3 If $j = 1 And StringInStr($aItem[$j], $sInStrCond) Then $aItem[$j] = StringRegExpReplace($aItem[$j], '.*?(-?\d+)', '\1') Else $aItem[$j] = $aItem[$j]&",0" EndIf -если строка с путем к файлу иконки содержит wcmicons.dll, то брать только номер иконки -если эта же строка с путем не содержит wcmicons.dll, то брать путь полностью, дописывая ",0" в конце этой строки |
Отправлено: 20:03, 04-10-2013 | #22 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать |
------- Отправлено: 21:47, 05-10-2013 | #23 |
Старожил Сообщения: 156
|
Профиль | Отправить PM | Цитировать Цитата Creat0R:
а если другой exe,icl,dll - то писать полное имя с добавлением ",0" |
|
Отправлено: 21:52, 05-10-2013 | #24 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата eus_deus:
Цитирую ещё раз: Цитата eus_deus:
|
||
------- Отправлено: 22:20, 05-10-2013 | #25 |
Старожил Сообщения: 156
|
Профиль | Отправить PM | Цитировать |
Отправлено: 22:49, 05-10-2013 | #26 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата eus_deus:
|
|
------- Отправлено: 23:38, 05-10-2013 | #27 |
Старожил Сообщения: 156
|
Профиль | Отправить PM | Цитировать Цитата Creat0R:
Цитата eus_deus:
MENUITEM Просмотр эскизов - открывается файл под курсором,0#!#1317#!#%COMMANDER_PATH%\BAR\044_Viiewers.bar,0#!#,0 MENUITEM ,0#!#,0#!#,0#!#,0 MENUITEM Панель специальных инструментов TC Image,0#!#1243#!#%COMMANDER_PATH%\Bar\028_Additional_Tools.bar,0#!#,0 MENUITEM Инструменты для работы с фото,0#!#1395#!#%COMMANDER_PATH%\Bar\258_Photoinstrument.bar,0#!#,0 MENUITEM Мои инструменты,0#!#2#!#%COMMANDER_PATH%\MENUIMG.exe,0#!#%Z%%COMMANDER_PATH%%\BAR\260_my_bar.bar||#podarok||$Мои~~инструменты||&v_podarok!!Частые~~программы,0 MENUITEM Программирование,0#!#53#!#%COMMANDER_PATH%\MENUIMG.exe,0#!#%Z%%COMMANDER_PATH%%\BAR\261_programming.bar||#RED||$Программирование,0 MENUITEM Запуск моих программ,0#!#%COMMANDER_PATH%\TCIMG.exe,0#!#%COMMANDER_PATH%\TCIMG.exe,0#!#tcimg=$tmtm_StartMyPrograms,0 MENUITEM Закачать по ссылке с буфера,0#!#891#!#%COMMANDER_PATH%\TCIMG.exe,0#!#downl="C:\Users\asmadeus\Downloads\Total\"!!1||cliplist,0 MENUITEM ,0#!#,0#!#-2,0#!#,0 MENUITEM Панель редактирования треков,0#!#2232#!#%COMMANDER_PATH%\BAR\229_Edit_Tracks.bar,0#!#,0 MENUITEM ,0#!#,0#!#,0#!#,0 MENUITEM Информация о медиофайлах и Настройка кодеков,0#!#41#!#%COMMANDER_PATH%\BAR\130_Audio_1.bar,0#!#,0 MENUITEM Редактирование тегов и Аудио утилиты,0#!#42#!#%COMMANDER_PATH%\BAR\131_Audio_2.bar,0#!#,0 MENUITEM Аудио Редакторы,0#!#605#!#%COMMANDER_PATH%\BAR\132_Audio_3.bar,0#!#,0 MENUITEM Регулировка системного звука,0#!#1611#!#%COMMANDER_PATH%\BAR\133_Audio_4.bar,0#!#,0 MENUITEM Программы для просмотра телевидения и прослушивания радио,0#!#406#!#%COMMANDER_PATH%\BAR\009_TV.bar,0#!#,0 MENUITEM ,0#!#,0#!#,0#!#,0 |
||
Отправлено: 20:32, 06-10-2013 | #28 |
Старожил Сообщения: 156
|
Профиль | Отправить PM | Цитировать надеюсь, вопрос снят окончательно. методом проб и ошибок заработало так ( участок, который правился):
|
Отправлено: 21:00, 06-10-2013 | #29 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата eus_deus:
![]() Только во втором условии And Not... не нужно, достаточно просто проверять что $j = 1. А ещё лучше, сделать так: |
|
------- Отправлено: 21:49, 06-10-2013 | #30 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
C/C++ - Работа с файлами | D@n1k007 | Программирование и базы данных | 2 | 19-06-2010 16:06 | |
Система - Встраивание кнопок или панелей инструментов в Проводник (Explorer) | greenzed | Программное обеспечение Windows | 1 | 12-01-2009 12:00 | |
Интерфейс - Пропала одна из панелей инструментов, что находитса на панели задач | Gensun | Microsoft Windows 2000/XP | 9 | 15-02-2008 17:11 | |
Работа с файлами | ramo | Программирование в *nix | 5 | 23-04-2007 12:33 | |
[решено] GPO - Запрет закрытия панелей инструментов | molen | Microsoft Windows NT/2000/2003 | 2 | 24-11-2005 10:19 |
|