打开DMG文件时,如何在窗口前打开它?


21

每当我下载.dmg文件然后打开它时(通常是从Chrome的下载栏中打开),它都会在后台打开。有什么办法让它在我的窗户前打开吗?

编辑

澄清一下:我希望DMG窗口作为活动窗口弹出。


当您说打开它时,您从哪里打开它?您的浏览器?发现者?
conorgriffin

1
我很确定他的意思是它“弹出”在活动窗口的后面。他希望它弹出在他活动窗口的前面。
Ryan Wersal

我的意思就是瑞安。
Epaga 2011年

通常,我是从浏览器中打开它的,但是我认为即使从Finder中,它也会在活动窗口的后面打开...
Epaga 2011年

您是否设法使我的解决方案生效了?如果没有,我可以进一步帮助您...
Asmus

Answers:


5

我在Applescript中创建了一个“文件夹操作”脚本,该脚本可以完成您想要的操作。将其复制并粘贴到新的Applescript中,然后将其作为应用程序保存(无需开始对话!)到“ / Library / Scripts / Folder Action Scripts /”中。然后,通过右键单击文件夹,然后从服务下拉菜单中选择“配置文件夹操作”,可以将其附加到任何文件夹(最可能是〜/ Downloads /文件夹)。激活文件夹操作,然后让脚本监视文件夹。

该脚本的基本作用是对放置在其附件所在的文件夹中的项目做出反应,如果放置的项目属于Kind:“ Image”,它将通过“ hdiutil”命令行工具将Image作为卷附加。

您可以通过在脚本中设置openWindow和makeFrontmost属性来配置其行为。将其另存为应用程序后,也可以通过双击该脚本来完成此操作-然后,它将在两次对话框中询问其标准行为。

我希望这有帮助,

阿斯姆斯

 property openWindow : true
 property makeFrontmost : true

 on run

    display dialog "Do you want to bring the Finder to the front after new items are added?" buttons {"Don't Activate", "Activate"} default button 2
    if the button returned of the result is "Don't Activate" then
        set makeFrontmost to false
    else
        set makeFrontmost to true
    end if


    display dialog "Open Folder after adding new files?" buttons {"Don't Open", "Open"} default button 2
    if the button returned of the result is "Don't Open" then
        set openWindow to false
    else
        set openWindow to true
    end if


 end run

 on adding folder items to thisFolder after receiving addedItems

    repeat with i from 1 to number of items in addedItems
        set itemKind to the kind of (info for item i of addedItems) as string

        if itemKind is "Disk Image" then
            set itemPath to (quoted form of POSIX path of item i of addedItems)
            try
                showImage(itemPath)
            end try
        end if

    end repeat

 end adding folder items to


 on showImage(itemPath)

    set volumeMountpointInfo to do shell script "/usr/bin/hdiutil  attach " & itemPath & " | grep Volumes"


    if (openWindow is true) then
        if (makeFrontmost is true) then
            tell application "Finder" to activate
        end if

       set currentDelim to text item delimiters
       set text item delimiters to tab

       set volumeMountpoint to POSIX file (text item 3 of volumeMountpointInfo)

       set text item delimiters to currentDelim

       tell application "Finder" to open folder volumeMountpoint

    end if

 end showImage

====

第二个Applescript确定放置到文件夹中的文件的类型

On adding folder items to thisFolder after receiving addedItems
repeat with i from 1 to number of items in addedItems
    set itemKind to the kind of (info for item i of addedItems) as string
    display dialog itemKind
end repeat
end adding folder items to

编辑后必须是“磁盘映像”,而不是“映像”


哇-非常酷 不幸的是,当我双击它时,显示“您无法打开应用程序,因为不再支持经典环境”。说什么??
Epaga 2011年

我在上面尝试了chmod a + x,但它仍然给我该错误消息。
Epaga 2011年

无需chmod这个脚本!让我为您提供更多详细信息:从/ Applications / Utilites /中打开applescript编辑器,并将我上面发布的代码粘贴到新窗口中。在“保存...”对话框中,选择“应用程序”作为文件格式,并确保未选中“选项”复选框。一旦将其保存到/ Library / Scripts / Folder Action Scripts /中,它将显示在“文件夹动作设置”菜单中。你能达到那点吗?
阿斯姆斯

感谢您的逐步操作。我可以做到这一点,并为下载文件夹启用该脚本。我双击脚本并可以将其设置为打开查找器。不幸的是,它似乎根本没有任何作用……从网上下载dmg文件时,甚至当我将dmg文件拖到文件夹中时,似乎都没有发生。很奇怪吧?
Epaga 2011年

您能否将上面发布的第二个Applescript保存为新的文件夹操作,并将其附加到新文件夹(类似于上面的操作)?
Asmus

3

据我所知,OS X将仅在磁盘映像为只读时自动显示其内容。当查看图像内容时,在Finder窗口左下方的铅笔通过斜线表示。

如果要更改磁盘映像以执行此操作,则可以使用“磁盘工具”将现有磁盘映像设置为只读。不幸的是,这不会改变您可能会从Internet下载的错误制作图像的行为。

  1. 挂载您要自动打开的磁盘映像。
  2. 通过使用Spotlight搜索打开磁盘实用程序。
  3. 在工具栏中选择“新图像”图标。
  4. 命名文件,然后在“图像格式”下选择“只读”。 新图像对话框
  5. 点击“保存”。挂载此新图像时,它将自动弹出以打开Finder窗口。

有趣,谢谢!但是正如您自己说的那样,从Internet上下载DMG确实没有真正解决我的实际问题...如果我做完所有这些,打开DMG然后将Cmd-Tab放到最前面会容易得多。 ...
Epaga 2011年

0

这可能也不能充分回答问题,但是...

如果按Command键并单击下载栏中的项目,它将在查找器中显示该项目。此时,只需按Command-O(或双击dmg文件)将安装它并在前台的新窗口中将其打开。


1
OP非常了解如何打开dmg文件。他(和许多其他人)正在寻找某种方法来覆盖Finder在显示dmg内容的窗口“弹出”下的行为。
Ryan Wersal 2011年

是的,vivek是对的,这些都不是真正解决问题的方法。op要求的是Safari的默认行为。我相信这是一个特别的问题。
user5583 2011年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.