让扩展名 .fw.png 在与 .png 不同的程序中打开吗?

让扩展名 .fw.png 在与 .png 不同的程序中打开吗?

我希望以 结尾的文件.fw.png在 Adob​​e Fireworks 中打开,但我希望常规.png文件在标准图像查看器程序中打开。

这可能吗?

答案1

使用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. Run()该应用程序通过 AutoIt函数在当前工作目录中调用。


如果有足够多的人感兴趣,我可以创建一个完整的程序来针对任意一组(嵌套的)文件扩展名执行此操作。

相关内容