Skif_off
Gold Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Реализован тот же принцип: запускается два окна просмоторщика. Взять Autoit3.exe из архива и положить в папку ТС, кнопка Код: TOTALCMD#BAR#DATA "%COMMANDER_PATH%\AutoIt3.exe" "%COMMANDER_PATH%\files.au3" %X%P%N %T%M "%COMMANDER_PATH%\AutoIt3.exe" Сравнить визуально пару картинок %COMMANDER_PATH%\ -1 | Скрипт скопировать, сохранить как files.au3 и положить в папку ТС: Код: #NoTrayIcon Opt("WinWaitDelay", 100) $aClientSize = WinGetClientSize("Program Manager") $sCOMMANDER_EXE = EnvGet('COMMANDER_EXE') $iPIDleft = Run('"' & $sCOMMANDER_EXE & '" /S=L "' & $CmdLine[1] & '"') $hWndLeft = _Process2Win($iPIDleft) WinMove($hWndLeft, '', 0, $aClientSize[1] / 5, $aClientSize[0] / 2, ($aClientSize[1] / 5) * 4) $iPIDright = Run('"' & $sCOMMANDER_EXE & '" /S=L "' & $CmdLine[2] & '"') $hWndRight = _Process2Win($iPIDright) WinMove($hWndRight, '', $aClientSize[0] / 2, $aClientSize[1] / 5, $aClientSize[0] / 2, ($aClientSize[1] / 5) * 4) AdlibRegister('__If_Ex', 500) While ProcessExists($iPIDleft) Sleep(200) WEnd Func _Process2Win($Pid) If IsString($Pid) Then $Pid = ProcessExists($Pid) If $Pid = 0 Then Return -1 ; $List = WinList() $List = WinList('[Class:TLister]') For $i = 1 To $List[0][0] If $List[$i][0] <> '' And BitAND(WinGetState($List[$i][1]), 2) Then $wPid = WinGetProcess($List[$i][1]) If $wPid = $Pid Then Return $List[$i][1] EndIf Next Return -1 EndFunc ;==>_Process2Win Func __If_Ex() If Not WinExists($hWndRight) Then WinClose($hWndLeft) EndFunc | Будет открыто два окна просмоторщика и подогнаны их расположение/размеры: слева будет файл с левой панели, справа - с правой. Для удобства добавлена функция, которая будет проверять существование правого окна каждые 500 мс, как только оно будет закрыто - скрипт сам закроет левое. Всё в теории: не знаток и пишу с телефона | Всего записей: 6487 | Зарегистр. 28-01-2008 | Отправлено: 23:07 13-01-2015 | Исправлено: Skif_off, 23:13 13-01-2015 |
|