Platforms to show: All Mac Windows Linux Cross-Platform
Required plugins for this example: MBS MacOSX Plugin, MBS Util Plugin
You find this example project in your Plugins Download as a Xojo project file within the examples folder: /Util/Restart App on Mac
This example is the version from Fri, 25th Jun 2015.
Project "Restart App on Mac.xojo_binary_project"
Class App Inherits Application
Const kEditClear = "&Löschen"
Const kFileQuit = "Beenden"
Const kFileQuitShortcut = ""
End Class
Class Window1 Inherits Window
Control BevelButton1 Inherits BevelButton
ControlInstance BevelButton1 Inherits BevelButton
EventHandler Sub Action()
// this is for Mac where we detect app by Bundle ID
const BundleID = "com.apple.Safari"
// step 1, quit Safari
dim found as Boolean = false
dim p as new ProcessMBS
p.GetFirstProcess
do
if p.BundleID = BundleID then
found = true
call p.QuitProcess
exit
end if
loop until not p.GetNextProcess
if found then
// step 2, wait for Safari to quit
do
found = false
p.GetFirstProcess
do
if p.BundleID = BundleID then
found = true
end if
loop until not p.GetNextProcess
if not found then
// wait some time
DelayMBS 0.1
end if
loop until found = false
end if
// step 3, start again
// requires also Mac plugin
dim file as FolderItem = LaunchServicesFindApplicationForInfoMBS("", BundleID, "")
// LaunchServicesFindApplicationForInfoMBS is in MacOSX plugin
if file<>Nil then
file.Launch
end if
End EventHandler
End Control
End Class
MenuBar MenuBar1
MenuItem FileMenu = "&Ablage"
MenuItem FileQuit = "#App.kFileQuit"
MenuItem EditMenu = "&Bearbeiten"
MenuItem EditUndo = "&Rückgängig"
MenuItem UntitledMenu1 = "-"
MenuItem EditCut = "&Ausschneiden"
MenuItem EditCopy = "&Kopieren"
MenuItem EditPaste = "&Einfügen"
MenuItem EditClear = "#App.kEditClear"
MenuItem UntitledMenu0 = "-"
MenuItem EditSelectAll = "&Alles auswählen"
End MenuBar
End Project
The items on this page are in the following plugins: MBS Util Plugin.