3

Я хочу, чтобы файлы, заканчивающиеся на .fw.png открывались в Adobe Fireworks, но я хочу, чтобы обычные файлы .png открывались в моей стандартной программе просмотра изображений.

Это возможно?

1 ответ1

7

Используя скрипт AutoIt, следующее должно выполнить то, что вы хотите:

$FIREWORKS = "C:/Program Files/Fireworks.exe"
$NORMALVWR = "C:/WindowsPictureViewer.exe"

If $CmdLine[0] > 0 Then
    $toRun = ""
    $fExt = StringRight($CmdLine[1], 7)

    ; First, we set $toRun as the proper target program to run.
    If StringLen($CmdLine[1]) >= 7                  And _
       StringRight($fExt, 4) = ".png"               And _
       StringLeft(StringRight($fExt, 7), 3) = ".fw" Then
        $toRun = $FIREWORKS
    Else
        $toRun = $NORMALVWR 
    EndIf

    ; Next, we append all command line arguments (with a space before each one).
    For $i = 1 To $CmdLine[0]
        $toRun &= ' "' & $CmdLine[$i] & '"'   ; We surround each with quotation marks.
    Next

    ; Finally, run the command in the current working directory.
    Run($toRun, @WorkingDir)
    ; Since the Run() function is asynchronous, this program should close right after.
EndIf

Чтобы это работало в вашем случае, вам нужно изменить эти константы вверху на соответствующие исполняемые файлы, которые вы хотите запустить. Затем установите AutoIt и скомпилируйте скрипт в.EXE-файл Поместите его в монастырское место и откройте Windows.PNG файлы с этим исполняемым файлом.

Я еще не тестировал этот код, но, похоже, он должен работать нормально. Для справки, скомпилированная программа сделает следующее:

  1. Проверьте, заканчивается ли первый аргумент (если он существует) в .fw.png (предполагается, что вы запускаете исполняемый файл только с.PNG для начала). Если это так, запускается исполняемый файл Fireworks, в противном случае запускается обычный просмотрщик.

  2. Все аргументы командной строки затем снова добавляются в качестве аргументов в соответствующее приложение.

  3. Приложение вызывается через функцию AutoIt Run() в текущем рабочем каталоге.


Если заинтересованным людям достаточно, я могу создать полную программу для любого произвольного набора (вложенных) расширений файлов.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .