Faça a extensão .fw.png abrir em um programa diferente para .png?

3

Eu quero que os arquivos que terminem em .fw.png sejam abertos no Adobe Fireworks, mas quero que os arquivos .png regulares sejam abertos no meu programa de visualizador de imagens padrão.

Isso é possível?

    
por firefusion 13.12.2011 / 13:20

1 resposta

7

Usando um script AutoIt , o seguinte deve executar o que você deseja:

$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

Para que isso funcione no seu caso, você precisará alterar essas constantes na parte superior para os executáveis corretos que deseja iniciar. Em seguida, instale o AutoIt e compile o script para um arquivo .exe. Coloque-o em um local do convento e configure o Windows para abrir arquivos .PNG com esse executável.

Ainda não testei esse código, mas parece que ele deve funcionar bem. Apenas para sua referência, o programa compilado fará o seguinte:

  1. Verifique se o primeiro argumento (se existir) termina em .fw.png (presume-se que você só execute o executável com um .PNG para começar). Nesse caso, o executável do Fireworks é iniciado, caso contrário, o visualizador normal é iniciado.

  2. Todos os argumentos da linha de comando são adicionados novamente como argumentos à respectiva aplicação.

  3. O aplicativo é chamado por meio da função AutoIt Run() , no diretório de trabalho atual.

Se pessoas suficientes estiverem interessadas, posso criar um programa completo para fazer isso com qualquer conjunto arbitrário de extensões de arquivos (aninhadas).

    
por 13.12.2011 / 13:52