![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум 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 | Цитировать Цитата Iska:
|
|
Отправлено: 11:43, 15-09-2013 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 156
|
Профиль | Отправить PM | Цитировать Прямо мистика. В regexp (программа) регулярное выражение работает, выдает ту строку, что надо. а в скрипте - нет
|
Отправлено: 14:50, 15-09-2013 | #12 |
Старожил Сообщения: 156
|
Профиль | Отправить PM | Цитировать Если кому интересно, то решил вопрос такой заменой строк. Функция
Согласен, регулярные выражения далеки от идеала, но как же я был рад, когда увидел, что они работают |
Отправлено: 16:24, 15-09-2013 | #13 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата eus_deus:
Другими словами, лучше предотвратить подобную запись, чем потом её исправлять: ... Func _ConvertBarFile($sMenuHeader = 'MENUITEM', $sDelim = '#!#', $sInStrCond = 'wcmicons.dll') Local $sRead = GUICtrlRead($iBarIn_Edit) 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 If $aItem[$j] <> '' Then If $j > 0 And $aItem[$j - 1] <> '' Then $sLine &= $sDelim & $aItem[$j] Else $sLine &= $aItem[$j] EndIf EndIf Next If $sLine = $sMenuHeader & ' ' Or Not StringInStr($sLine, $sDelim) Then ContinueLoop EndIf $sItems &= $sLine & @CRLF Next Return $sItems EndFunc |
|
------- Отправлено: 21:36, 15-09-2013 | #14 |
Старожил Сообщения: 156
|
Профиль | Отправить PM | Цитировать Цитата Creat0R:
|
|
Отправлено: 17:43, 16-09-2013 | #15 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата eus_deus:
Цитата eus_deus:
|
||
------- Отправлено: 19:10, 16-09-2013 | #16 |
Старожил Сообщения: 156
|
Профиль | Отправить PM | Цитировать Creat0R, я никаких претензий не имею.Вообще благодарен тебе в частности и форуму в общем, что даете мне ответы на мои иногда бредовые вопросы
Цитата Creat0R:
|
|
Отправлено: 20:23, 16-09-2013 | #17 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата eus_deus:
![]() |
|
------- Отправлено: 23:59, 16-09-2013 | #18 |
Старожил Сообщения: 156
|
Профиль | Отправить PM | Цитировать вынужден возобновить данный вопрос. не все гладко с некоторыми панелями. вот пример
[Buttonbar] Buttoncount=20 button1=%COMMANDER_PATH%\Wcmicons.dll,977 cmd1=%COMMANDER_PATH%\Programs\Internet\The_Bat!\TheBatPortable.exe iconic1=0 menu1=Почтовый клиент TheBat button2=%COMMANDER_PATH%\Wcmicons.dll,896 cmd2=%COMMANDER_PATH%\Programs\Internet\MirandaIM\Miranda32.exe iconic2=0 menu2=Miranda button3=%COMMANDER_PATH%\Wcmicons.dll,767 cmd3=%COMMANDER_PATH%\Programs\Internet\Opera_AC\OperaLauncher.exe iconic3=0 menu3=Opera AC CTRL+SHIFT+ALT+O button4=%COMMANDER_PATH%\Wcmicons.dll,768 cmd4=%COMMANDER_PATH%\Programs\Internet\Firefox\FirefoxPortable.exe iconic4=0 menu4=Mozilla Firefox button5=%COMMANDER_PATH%\Wcmicons.dll,487 cmd5=%COMMANDER_PATH%\Programs\Internet\GoogleEarth\GoogleEarthPortable.exe iconic5=0 menu5=Планета Земля в GoogleEarth button6=%COMMANDER_PATH%\Games\SolSuite\SolSuite 2012 12.6 + Graphics Pack 12.6.exe cmd6=""%COMMANDER_PATH%\Games\SolSuite\SolSuite 2012 12.6 + Graphics Pack 12.6.exe"" path6=%COMMANDER_PATH%\Games\SolSuite\ iconic6=0 menu6=SolSuite 2012 12.6 + Graphics Pack 12.6 button7= iconic7=0 button8=%COMMANDER_PATH%\Programs\Audio\Adobe Audition CS6\AuditionPortable.exe cmd8=""%COMMANDER_PATH%\Programs\Audio\Adobe Audition CS6\AuditionPortable.exe"" path8=%COMMANDER_PATH%\Programs\Audio\Adobe Audition CS6\ iconic8=0 menu8=AuditionPortable button9=%COMMANDER_PATH%\Programs\Audio\Adobe Audition CS6\App\Au\Adobe Audition CS6.exe cmd9=""%COMMANDER_PATH%\Programs\Audio\Adobe Audition CS6\App\Au\Adobe Audition CS6.exe"" param9=%P%S path9=%COMMANDER_PATH%\Programs\Audio\Adobe Audition CS6\App\Au\ iconic9=0 menu9=Открыть выделенные файлы в Adobe Audition CS6 button10=%COMMANDER_PATH%\Wcmicons.dll,779 cmd10=%COMMANDER_PATH%\Scripts\RunStopRestart.vbs param10=""%%COMMANDER_PATH%%\Programs\Text\Punto_Switcher\Punto.exe" 3" iconic10=-1 menu10=Автопереключение клавиатуры с Punto Switcher: Вкл./Выкл. button11=%COMMANDER_PATH%\Wcmicons.dll,1878 cmd11=AkelPad.exe iconic11=0 menu11=Открыть редактор AkelPad button12=%COMMANDER_PATH%\Programs\Others\Cabinet\cabinet.exe cmd12=""%COMMANDER_PATH%\Programs\Others\Cabinet\cabinet.exe"" path12=%COMMANDER_PATH%\Programs\Others\Cabinet\ iconic12=-1 menu12=Cabinet нумизмата button13=%COMMANDER_PATH%\Programs\Players\AIMP3\AIMP3.exe cmd13=%COMMANDER_PATH%\Programs\Players\AIMP3\AIMP3.exe D:\Musik\Musik.m3u path13=D:\Musik\ menu13=Musik button14=%COMMANDER_PATH%\Utilities\Scripting\AutoIt\CV\CV.exe cmd14=%COMMANDER_PATH%\Utilities\Scripting\AutoIt\CV\CV.exe path14=%COMMANDER_PATH%\Utilities\Scripting\AutoIt\CV\ iconic14=0 menu14=CV button15= iconic15=0 button16=%COMMANDER_PATH%\Wcmicons.dll,431 cmd16=%COMMANDER_PATH%\TCIMG.exe param16=moves=%L||[input=BOX33]!!1 iconic16=-1 menu16=Перемещает выделенные объекты в активную панель - в создаваемую папку с вводом имени папки, заменяя имеющиеся объекты button17=%COMMANDER_PATH%\Wcmicons.dll,1744 cmd17=%COMMANDER_PATH%\TCIMG.exe param17=copys=%L||[input=BOX33]!!1 iconic17=-1 menu17=Копирует выделенные объекты в активную панель - в создаваемую папку с вводом имени папки, заменяя имеющиеся объекты button18= iconic18=0 button19=%COMMANDER_PATH%\Wcmicons.dll,431 cmd19=%COMMANDER_PATH%\TCIMG.exe param19=moves=%L||"%p[INPUT=BOX35]\"!!3!!(.*\\)(([^\\]*\\){1})(.+)\\?!!$1$4 iconic19=-1 menu19=Перемещает выделенные объекты на уровень вверх в создаваемую папку, заменяя имеющиеся объекты button20=%COMMANDER_PATH%\Wcmicons.dll,1744 cmd20=%COMMANDER_PATH%\TCIMG.exe param20=copys=%L||"%p[INPUT=BOX35]\"!!3!!(.*\\)(([^\\]*\\){1})(.+)\\?!!$1$4 iconic20=-1 menu20=Копирует выделенные объекты на уровень вверх в создаваемую папку, заменяя имеющиеся объекты button16=%COMMANDER_PATH%\Wcmicons.dll,431 cmd16=%COMMANDER_PATH%\TCIMG.exe param16=moves=%L||[input=BOX33]!!1 iconic16=-1 menu16=Перемещает выделенные объекты в активную панель - в создаваемую папку с вводом имени папки, заменяя имеющиеся объекты button17=%COMMANDER_PATH%\Wcmicons.dll,1744 cmd17=%COMMANDER_PATH%\TCIMG.exe param17=copys=%L||[input=BOX33]!!1 iconic17=-1 menu17=Копирует выделенные объекты в активную панель - в создаваемую папку с вводом имени папки, заменяя имеющиеся объекты button18= iconic18=0 button19=%COMMANDER_PATH%\Wcmicons.dll,431 cmd19=%COMMANDER_PATH%\TCIMG.exe param19=moves=%L||"%p[INPUT=BOX35]\"!!3!!(.*\\)(([^\\]*\\){1})(.+)\\?!!$1$4 iconic19=-1 menu19=Перемещает выделенные объекты на уровень вверх в создаваемую папку, заменяя имеющиеся объекты button20=%COMMANDER_PATH%\Wcmicons.dll,1744 cmd20=%COMMANDER_PATH%\TCIMG.exe param20=copys=%L||"%p[INPUT=BOX35]\"!!3!!(.*\\)(([^\\]*\\){1})(.+)\\?!!$1$4 iconic20=-1 menu20=Копирует выделенные объекты на уровень вверх в создаваемую папку, заменяя имеющиеся объекты |
Отправлено: 22:27, 26-09-2013 | #19 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата eus_deus:
Нужно в ней заменить все вхождения [\n|\r] на [\n\r]. |
|
------- Отправлено: 08:21, 29-09-2013 | #20 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
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 |
|