Return to Snippet

Revision: 1404
at October 3, 2006 08:21 by kray


Updated Code
Sub SetDockIconVisibility(TheApp as FolderItem, Visibility as Boolean)

   dim rf as resourceFork
   dim s as String
   dim HideIconString as String = "<key>NSUIElement</key>" + chr(13) + _
   "<string>1</string>" + chr(13)
   dim iInsertBefore as Integer

   if TheApp = nil or (not TheApp.exists) or TheApp.MacType <> "APPL"  then
     MsgBox "Application Error." + EndOfLine + EndofLine + _
     "Sorry, there was an error accessing the application."
     return
   end if

   rf = TheApp.OpenResourceFork
   if rf <> nil then
     s = rf.GetResource("plst", 0)
   else
     MsgBox "Error opening resource." + EndOfLine + EndofLine + _
     "The application may be running."
     rf.Close
     return
   end if

   if InStr(s, HideIconString) <> 0 and Visibility = true then
     s = ReplaceAll(s, HideIconString, "") // get rid of the line that hides the dock icon
     rf.AddResource(s, "plst", 0, "")
   elseif InStr(s, HideIconString) = 0 and Visibility = false then
     iInsertBefore = InStr(s, "</dict>" + chr(13) + "</plist>")
     If iInsertBefore = 0 then
       rf.Close
       MsgBox "Unexpected Error." + EndOfLine + EndofLine + _
       "Couldn't locate the end of the dictionary and the property  list."
       return
     end if
     s = left(s, iInsertBefore - 1) + HideIconString + mid(s, iInsertBefore)
     rf.AddResource(s, "plst", 0, "")
   end if

   rf.Close

   rf = TheApp.OpenResourceFork // see if we really wrote to it by closing and reopening it
   if rf <> nil then
     if rf.GetResource("plst", 0) <> s then
       MsgBox "Error saving resource." + EndOfLine + EndofLine + _
       "The application may be running."
       rf.Close
       return
     end if
   end if
   rf.close

End Sub

Revision: 1403
at October 3, 2006 08:20 by kray


Initial Code
Sub SetDockIconVisibility(TheApp as FolderItem, Visibility as Boolean)

   dim rf as resourceFork
   dim s as String
   dim HideIconString as String = "<key>NSUIElement</key>" + chr(13) + _
   "<string>1</string>" + chr(13)
   dim iInsertBefore as Integer

   if TheApp = nil or (not TheApp.exists) or TheApp.MacType <> "APPL"  then
     MsgBox "Application Error." + EndOfLine + EndofLine + _
     "Sorry, there was an error accessing the application."
     return
   end if

   rf = TheApp.OpenResourceFork
   if rf <> nil then
     s = rf.GetResource("plst", 0)
   else
     MsgBox "Error opening resource." + EndOfLine + EndofLine + _
     "The application may be running."
     rf.Close
     return
   end if

   if InStr(s, HideIconString) <> 0 and Visibility = true then
     s = ReplaceAll(s, HideIconString, "") // get rid of the line that hides the dock icon
     rf.AddResource(s, "plst", 0, "")
   elseif InStr(s, HideIconString) = 0 and Visibility = false then
     iInsertBefore = InStr(s, "</dict>" + chr(13) + "</plist>")
     If iInsertBefore = 0 then
       rf.Close
       MsgBox "Unexpected Error." + EndOfLine + EndofLine + _
       "Couldn't locate the end of the dictionary and the property  
list."
       return
     end if
     s = left(s, iInsertBefore - 1) + HideIconString + mid(s, iInsertBefore)
     rf.AddResource(s, "plst", 0, "")
   end if

   rf.Close

   rf = TheApp.OpenResourceFork // see if we really wrote to it by closing and reopening it
   if rf <> nil then
     if rf.GetResource("plst", 0) <> s then
       MsgBox "Error saving resource." + EndOfLine + EndofLine + _
       "The application may be running."
       rf.Close
       return
     end if
   end if
   rf.close

End Sub

Initial URL


Initial Description
Shows how to hide an icon in the Dock by manipulating the app's pList.

Initial Title
SetDockIconVisibility (RB)

Initial Tags


Initial Language
Other