home *** CD-ROM | disk | FTP | other *** search
/ PC World 2008 October (DVD) / PCWorld_2008-10_DVD.iso / Virtualbox_Portable / source / Portable-VirtualBox.au3 < prev    next >
Encoding:
Text File  |  2008-06-17  |  17.3 KB  |  430 lines

  1. ; AutoIt Version: 3.2.12.0
  2. ; Language      : German / English
  3. ; Author        : michaelm_007
  4. ; Version       : 1.3.6
  5. ; Download      : http://www.german-nlite.de/index.php?showtopic=14306#
  6.  
  7. #include <GUIConstantsEx.au3>
  8. #include <Constants.au3>
  9. #NoTrayIcon
  10. #RequireAdmin
  11.  
  12. Opt ("TrayOnEventMode", 1)
  13. Opt ("GUIOnEventMode", 1)
  14. Opt ("TrayMenuMode", 1)
  15. Opt ("TrayAutoPause", 0)
  16.  
  17. TraySetClick (16)
  18.  
  19. HotKeySet ("^1", "ShowWindows_VM")
  20. HotKeySet ("^2", "HideWindows_VM")
  21. HotKeySet ("^3", "ShowWindows")
  22. HotKeySet ("^4", "HideWindows")
  23. HotKeySet ("^5", "UserHome")
  24. HotKeySet ("^6", "StartVM")
  25. HotKeySet ("^7", "ExitScript")
  26.  
  27. HotKeySet ("^{NUMPAD1}", "ShowWindows_VM")
  28. HotKeySet ("^{NUMPAD2}", "HideWindows_VM")
  29. HotKeySet ("^{NUMPAD3}", "ShowWindows")
  30. HotKeySet ("^{NUMPAD4}", "HideWindows")
  31. HotKeySet ("^{NUMPAD5}", "UserHome")
  32. HotKeySet ("^{NUMPAD6}", "StartVM")
  33. HotKeySet ("^{NUMPAD7}", "ExitScript")
  34.  
  35. Global $settings
  36.  
  37. If StringInStr ("0407, 0807, 0c07, 1007, 1407", @OSLANG) Then
  38.   TrayCreateItem ("Zeige VM                    (STRG+1)")
  39.   TrayItemSetOnEvent (-1, "ShowWindows_VM")
  40.   TrayCreateItem ("Verstecke VM             (STRG+2)")
  41.   TrayItemSetOnEvent (-1, "HideWindows_VM")
  42.   TrayCreateItem("")
  43.   TrayCreateItem ("Zeige VirtualBox        (STRG+3)")
  44.   TrayItemSetOnEvent (-1, "ShowWindows")
  45.   TrayCreateItem ("Verstecke VirtualBox (STRG+4)")
  46.   TrayItemSetOnEvent (-1, "HideWindows")
  47.   TrayCreateItem ("")
  48.   $settings = TrayCreateMenu ("VirtualBox Optionen")
  49.   TrayCreateItem ("Homeverzeichnis (STRG+5)", $settings)
  50.   TrayItemSetOnEvent (-1, "UserHome")
  51.   TrayCreateItem ("Starte mit VM      (STRG+6)", $settings)
  52.   TrayItemSetOnEvent (-1, "StartVM")
  53.   TrayCreateItem ("")
  54.   TrayCreateItem ("Beende VirtualBox     (STRG+7)")
  55.   TrayItemSetOnEvent (-1, "ExitScript")
  56. Else
  57.   TrayCreateItem ("Show VM                  (CTRL+1)")
  58.   TrayItemSetOnEvent (-1, "ShowWindows_VM")
  59.   TrayCreateItem ("Hide VM                   (CTRL+2)")
  60.   TrayItemSetOnEvent (-1, "HideWindows_VM")
  61.   TrayCreateItem("")
  62.   TrayCreateItem ("Show VirtualBox      (CTRL+3)")
  63.   TrayItemSetOnEvent (-1, "ShowWindows")
  64.   TrayCreateItem ("Hide VirtualBox       (CTRL+4)")
  65.   TrayItemSetOnEvent (-1, "HideWindows")
  66.   TrayCreateItem ("")
  67.   $settings = TrayCreateMenu ("VirtualBox Settings")
  68.   TrayCreateItem ("Homeroot         (STRG+5)", $settings)
  69.   TrayItemSetOnEvent (-1, "UserHome")
  70.   TrayCreateItem ("Starte with VM (STRG+6)", $settings)
  71.   TrayItemSetOnEvent (-1, "StartVM")
  72.   TrayCreateItem ("")
  73.   TrayCreateItem ("Exit VirtualBox        (CTRL+7)")
  74.   TrayItemSetOnEvent (-1, "ExitScript")
  75. EndIf
  76.  
  77. TraySetState ()
  78. TraySetToolTip ("Portable-VirtualBox")
  79.  
  80. If NOT ProcessExists ("VirtualBox.exe") Then
  81.   If FileExists (@ScriptDir&"\data\settings\SplashScreen.jpg") Then
  82.     SplashImageOn ("Portable-VirtualBox", @ScriptDir&"\data\settings\SplashScreen.jpg", 480, 360, -1, -1, 1)
  83.   Else 
  84.     SplashTextOn ("Portable-VirtualBox", "Start Portable-VirtualBox", 220, 18, -1, -1, 1, "arial", 12)
  85.   EndIf
  86.  
  87.   If FileExists (@ScriptDir&"\app\VirtualBox.exe") And (@ScriptDir&"\app\VBoxSVC.exe") And (@ScriptDir&"\app\VBoxC.dll") Then
  88.     RunWait ("cmd /c sc create VBoxDRV binpath= ""%CD%\app\drivers\VBoxDrv\VBoxDrv.sys"" type= kernel start= auto error= normal displayname= VBoxDRV", @ScriptDir, @SW_HIDE)
  89.     RunWait ("cmd /c sc create VBoxUSBMon binpath= ""%CD%\app\drivers\USB\filter\VBoxUSBMon.sys"" type= kernel start= auto error= normal displayname= VBoxUSBMon", @ScriptDir, @SW_HIDE)
  90.  
  91.     RunWait ("app\VBoxSVC.exe /reregserver", @ScriptDir, @SW_HIDE)
  92.     RunWait ("regsvr32.exe /S app\VBoxC.dll", @ScriptDir, @SW_HIDE)
  93.     ;RunWait ("rundll32.exe app\VBoxRT.dll, RTR3Init", @ScriptDir, @SW_HIDE)
  94.     DllCall ("app\VBoxRT.dll", "hwnd", "RTR3Init")
  95.  
  96.     RunWait ("cmd /c sc start VBoxDRV", @ScriptDir, @SW_HIDE)
  97.     RunWait ("cmd /c sc start VBoxUSBMon", @ScriptDir, @SW_HIDE)
  98.  
  99.     SplashOff ()
  100.  
  101.     If FileExists (@ScriptDir&"\data\.VirtualBox") Then
  102.       If FileExists (@ScriptDir&"\data\settings") Then
  103.         $UserHome = IniRead (@ScriptDir&"\data\settings\settings.ini", "userhome", "key", "NotFound")
  104.         $StartVM  = IniRead (@ScriptDir&"\data\settings\settings.ini", "startvm", "key", "NotFound")
  105.         If IniRead (@ScriptDir&"\data\settings\settings.ini", "startvm", "key", "NotFound") = true Then
  106.           RunWait ("cmd /c set VBOX_USER_HOME=" &$UserHome& "& .\app\VBoxManage.exe startvm "" &$StartVM& """ , @ScriptDir, @SW_HIDE)
  107.         Else
  108.           RunWait ("cmd /c set VBOX_USER_HOME=" &$UserHome& "& .\app\VirtualBox.exe", @ScriptDir, @SW_HIDE)
  109.         EndIf
  110.       Else
  111.         DirCreate (@ScriptDir&"\data\settings")
  112.         IniWrite (@ScriptDir&"\data\settings\settings.ini", "userhome", "key", "%CD%\data\.VirtualBox")
  113.         IniWrite (@ScriptDir&"\data\settings\settings.ini", "startvm", "key", "")
  114.         RunWait ("cmd /c set VBOX_USER_HOME=%CD%\data\.VirtualBox & .\app\VirtualBox.exe", @ScriptDir, @SW_HIDE)
  115.       EndIf
  116.     Else
  117.       DirCreate (@ScriptDir&"\data\settings")
  118.       IniWrite (@ScriptDir&"\data\settings\settings.ini", "userhome", "key", "%CD%\data\.VirtualBox")
  119.       IniWrite (@ScriptDir&"\data\settings\settings.ini", "startvm", "key", "")
  120.       RunWait ("cmd /c set VBOX_USER_HOME=%CD%\data\.VirtualBox & .\app\VirtualBox.exe", @ScriptDir, @SW_HIDE)
  121.     EndIf
  122.  
  123.     ProcessWaitClose ("VirtualBox.exe")
  124.     ProcessWaitClose ("VBoxManage.exe")
  125.  
  126.     SplashTextOn ("Portable-VirtualBox", "Exit Portable-VirtualBox", 220, 18, -1, -1, 1, "arial", 12)
  127.  
  128.     Sleep (7000)
  129.  
  130.     RunWait ("cmd /c sc stop VBoxDRV", @ScriptDir, @SW_HIDE)
  131.     RunWait ("cmd /c sc stop VBoxUSBMon", @ScriptDir, @SW_HIDE)
  132.  
  133.     RunWait ("app\VBoxSVC.exe /unregserver", @ScriptDir, @SW_HIDE)
  134.     RunWait ("regsvr32.exe /S /U app\VBoxC.dll", @ScriptDir, @SW_HIDE)
  135.  
  136.     RunWait ("cmd /c sc delete VBoxDRV", @ScriptDir, @SW_HIDE)
  137.     RunWait ("cmd /c sc delete VBoxUSBMon", @ScriptDir, @SW_HIDE)
  138.  
  139.     SplashOff ()
  140.   Else
  141.     SplashOff ()
  142.     If StringInStr ("0407, 0807, 0c07, 1007, 1407", @OSLANG) Then 
  143.       MsgBox (0, "Fehler", "Bitte die Dateien von VirtualBox in den APP-ORDNER kopieren.")
  144.     Else
  145.       MsgBox (0, "Error", "Please copy the files of VirtualBox in the APP-FOLDER.")
  146.     EndIf
  147.   EndIf
  148. Else
  149.   WinSetState ("Sun xVM VirtualBox", "", BitAND (@SW_SHOW, @SW_RESTORE))
  150.   WinSetState ("] - Sun xVM VirtualBox", "", BitAND (@SW_SHOW, @SW_RESTORE))
  151. EndIf
  152.  
  153. Exit
  154.  
  155. Func ShowWindows_VM ()
  156.   Opt ("WinTitleMatchMode", 2)
  157.   WinSetState ("] - Sun xVM VirtualBox", "", BitAND (@SW_SHOW, @SW_RESTORE))
  158. EndFunc
  159.  
  160. Func HideWindows_VM ()
  161.   Opt ("WinTitleMatchMode", 2)
  162.   WinSetState ("] - Sun xVM VirtualBox", "", @SW_HIDE)
  163. EndFunc
  164.  
  165. Func ShowWindows ()
  166.   Opt ("WinTitleMatchMode", 3)
  167.   WinSetState ("Sun xVM VirtualBox", "", BitAND (@SW_SHOW, @SW_RESTORE))
  168. EndFunc
  169.  
  170. Func HideWindows ()
  171.   Opt ("WinTitleMatchMode", 3)
  172.   WinSetState ("Sun xVM VirtualBox", "", @SW_HIDE)
  173. EndFunc
  174.  
  175. Func UserHome ()
  176.   Opt ("GUIOnEventMode", 1)
  177.   
  178.   Local $WS_POPUP
  179.   Global $Radio1, $Radio2, $HomeRoot
  180.   
  181.   If StringInStr ("0407, 0807, 0c07, 1007, 1407", @OSLANG) Then
  182.     GUICreate ("Startauswahl - Heimverzeichnis", 334, 221, 193, 125, $WS_POPUP)
  183.     GUISetFont (9, 400, 0, "Arial")
  184.     GUISetBkColor (0xFFFFFF)
  185.     GUICtrlSetFont (-1, 10, 800, 0, "Arial")
  186.     GUICtrlCreateLabel ("Hier kannst du dein Heimverzeichnis auswΣhlen, in dem VirtualBox deine Einstellungen und VMs abspeichern soll. (DEFAULT = Verzeichnis von ""Portable-VirtualBox.exe"")", 16, 16, 304, 80)
  187.     
  188.     $Radio1 = GUICtrlCreateRadio ("Radio1", 16, 88, 15, 17)
  189.     If IniRead (@ScriptDir&"\data\settings\settings.ini", "userhome", "key", "NotFound") = "%CD%\data\.VirtualBox" Then
  190.       GUICtrlSetState (-1, $GUI_CHECKED)
  191.     EndIf
  192.     
  193.     $Radio2 = GUICtrlCreateRadio ("Radio2", 16, 120, 15, 17)
  194.     If IniRead (@ScriptDir&"\data\settings\settings.ini", "userhome", "key", "NotFound") <> "%CD%\data\.VirtualBox" Then
  195.       GUICtrlSetState (-1, $GUI_CHECKED)
  196.     EndIf
  197.     
  198.     GUICtrlCreateLabel ("VirtualBox normal starten (DEFAULT)", 39, 88, 280, 19)
  199.     GUICtrlCreateLabel ("VirtualBox mit", 39, 121, 78, 19)
  200.     
  201.     If IniRead (@ScriptDir&"\data\settings\settings.ini", "userhome", "key", "NotFound") = "%CD%\data\.VirtualBox" Then
  202.       $HomeRoot = GUICtrlCreateInput ("Verzeichnis auswΣhlen ...", 119, 119, 142, 20)
  203.     Else
  204.       $User_Home = IniRead (@ScriptDir&"\data\settings\settings.ini", "userhome", "key", "NotFound")
  205.       $HomeRoot = GUICtrlCreateInput ($User_Home, 119, 119, 142, 20)
  206.     EndIf
  207.     
  208.     GUICtrlCreateButton ("starten", 266, 118, 50, 22, 0)
  209.     GUICtrlSetOnEvent (-1, "SRCUserHome")
  210.     
  211.     GUICtrlCreateButton ("OK", 46, 153, 57, 25, 0)
  212.     GUICtrlSetOnEvent (-1, "OKUserHome")
  213.     GUICtrlCreateButton ("Abbrechen", 210, 153, 70, 25, 0)
  214.     GUICtrlSetOnEvent (-1, "ExitGUI")
  215.   Else
  216.     GUICreate ("Startsettings - Homelisting", 334, 221, 193, 125, $WS_POPUP)
  217.     GUISetFont (9, 400, 0, "Arial")
  218.     GUISetBkColor (0xFFFFFF)
  219.     GUICtrlSetFont (-1, 10, 800, 0, "Arial")
  220.     GUICtrlCreateLabel ("Here you can select your homelisting, in which VirtualBox is to store your attitudes and VMs. (DEFAULT = Listing of ""Portable VirtualBox.exe"")", 16, 16, 304, 80)
  221.     
  222.     $Radio1 = GUICtrlCreateRadio ("Radio1", 16, 88, 15, 17)
  223.     If IniRead (@ScriptDir&"\data\settings\settings.ini", "userhome", "key", "NotFound") = "%CD%\data\.VirtualBox" Then
  224.       GUICtrlSetState (-1, $GUI_CHECKED)
  225.     EndIf
  226.     
  227.     $Radio2 = GUICtrlCreateRadio ("Radio2", 16, 120, 15, 17)
  228.     If IniRead (@ScriptDir&"\data\settings\settings.ini", "userhome", "key", "NotFound")  <> "%CD%\data\.VirtualBox" Then
  229.       GUICtrlSetState (-1, $GUI_CHECKED)
  230.     EndIf
  231.     
  232.     GUICtrlCreateLabel ("Normal VirtualBox start (DEFAULT)", 39, 88, 280, 19)
  233.     GUICtrlCreateLabel ("VirtualBox with", 39, 121, 80, 19)
  234.     
  235.     If IniRead (@ScriptDir&"\data\settings\settings.ini", "userhome", "key", "NotFound") = "%CD%\data\.VirtualBox" Then
  236.       $HomeRoot = GUICtrlCreateInput ("Select homelisting ...", 121, 119, 142, 20)
  237.     Else
  238.       $User_Home = IniRead (@ScriptDir&"\data\settings\settings.ini", "userhome", "key", "NotFound")
  239.       $HomeRoot = GUICtrlCreateInput ($User_Home, 121, 119, 142, 20)
  240.     EndIf
  241.     
  242.     GUICtrlCreateButton ("start", 266, 118, 50, 22, 0)
  243.     GUICtrlSetOnEvent (-1, "SRCUserHome")
  244.     
  245.     GUICtrlCreateButton ("OK", 46, 153, 57, 25, 0)
  246.     GUICtrlSetOnEvent (-1, "OKUserHome")
  247.     GUICtrlCreateButton ("Exit", 210, 153, 70, 25, 0)
  248.     GUICtrlSetOnEvent (-1, "ExitGUI")
  249.   EndIf
  250.   
  251.   GUISetState ()
  252.   
  253. EndFunc
  254.  
  255. Func StartVM ()
  256.   Opt ("GUIOnEventMode", 1)
  257.   
  258.   Local $WS_POPUP
  259.   Global $Radio3, $Radio4, $VMStart
  260.   
  261.   If StringInStr ("0407, 0807, 0c07, 1007, 1407", @OSLANG) Then
  262.     GUICreate ("Startauswahl - Start VM", 334, 221, 193, 125, $WS_POPUP)
  263.     GUISetFont (9, 400, 0, "Arial")
  264.     GUISetBkColor (0xFFFFFF)
  265.     GUICtrlSetFont (-1, 10, 800, 0, "Arial")
  266.     GUICtrlCreateLabel ("Hier kannst du eine virtuelle Maschine auswΣhlen, die VirtualBox beim starten laden soll. (DEFAULT = Normaler Start von VirtualBox)", 16, 16, 304, 80)
  267.     
  268.     $Radio3 = GUICtrlCreateRadio ("Radio3", 16, 88, 15, 17)
  269.     If IniRead (@ScriptDir&"\data\settings\settings.ini", "startvm", "key", "NotFound") = false Then
  270.       GUICtrlSetState (-1, $GUI_CHECKED)
  271.     EndIf
  272.     
  273.     $Radio4 = GUICtrlCreateRadio ("Radio4", 16, 120, 15, 17)
  274.     If IniRead (@ScriptDir&"\data\settings\settings.ini", "startvm", "key", "NotFound") = true Then
  275.       GUICtrlSetState (-1, $GUI_CHECKED)
  276.     EndIf
  277.     
  278.     GUICtrlCreateLabel ("VirtualBox normal starten (DEFAULT)", 39, 88, 280, 19)
  279.     GUICtrlCreateLabel ("VirtualBox mit", 39, 121, 78, 19)
  280.     
  281.     If IniRead (@ScriptDir&"\data\settings\settings.ini", "startvm", "key", "NotFound") = false Then
  282.       $VMStart = GUICtrlCreateInput ("VM auswΣhlen ...", 119, 119, 142, 20)
  283.     Else
  284.       $Start_VM = IniRead (@ScriptDir&"\data\settings\settings.ini", "startvm", "key", "NotFound")
  285.       $VMStart = GUICtrlCreateInput ($Start_VM, 119, 119, 142, 20)
  286.     EndIf
  287.     
  288.     GUICtrlCreateButton ("starten", 266, 118, 50, 22, 0)
  289.     GUICtrlSetOnEvent (-1, "SRCStartVM")
  290.     
  291.     GUICtrlCreateButton ("OK", 46, 153, 57, 25, 0)
  292.     GUICtrlSetOnEvent (-1, "OKStartVM")
  293.     GUICtrlCreateButton ("Abbrechen", 210, 153, 70, 25, 0)
  294.     GUICtrlSetOnEvent (-1, "ExitGUI")
  295.   Else
  296.     GUICreate ("Startsettings - Start VM", 334, 221, 193, 125, $WS_POPUP)
  297.     GUISetFont (9, 400, 0, "Arial")
  298.     GUISetBkColor (0xFFFFFF)
  299.     GUICtrlSetFont (-1, 10, 800, 0, "Arial")
  300.     GUICtrlCreateLabel ("Here you can select a virtual machine, which VirtualBox start with to load are. (DEFAULT = normal start of VirtualBox)", 16, 16, 304, 80)
  301.     
  302.     $Radio3 = GUICtrlCreateRadio ("Radio3", 16, 88, 15, 17)
  303.     If IniRead (@ScriptDir&"\data\settings\settings.ini", "startvm", "key", "NotFound") = false Then
  304.       GUICtrlSetState (-1, $GUI_CHECKED)
  305.     EndIf
  306.     
  307.     $Radio4 = GUICtrlCreateRadio ("Radio4", 16, 120, 15, 17)
  308.     If IniRead (@ScriptDir&"\data\settings\settings.ini", "startvm", "key", "NotFound") = true Then
  309.       GUICtrlSetState (-1, $GUI_CHECKED)
  310.     EndIf
  311.     
  312.     GUICtrlCreateLabel ("Start VirtualBox normal (DEFAULT)", 39, 88, 280, 19)
  313.     GUICtrlCreateLabel ("VirtualBox with", 37, 121, 80, 19)
  314.     
  315.     If IniRead (@ScriptDir&"\data\settings\settings.ini", "startvm", "key", "NotFound") = false Then
  316.       $VMStart = GUICtrlCreateInput ("Select a VM ...", 120, 119, 142, 20)
  317.     Else
  318.       $Start_VM = IniRead (@ScriptDir&"\data\settings\settings.ini", "startvm", "key", "NotFound")
  319.       $VMStart = GUICtrlCreateInput ($Start_VM, 120, 119, 142, 20)
  320.     EndIf
  321.     
  322.     GUICtrlCreateButton ("start", 266, 118, 50, 22, 0)
  323.     GUICtrlSetOnEvent (-1, "SRCStartVM")
  324.     
  325.     GUICtrlCreateButton ("OK", 46, 153, 57, 25, 0)
  326.     GUICtrlSetOnEvent (-1, "OKStartVM")
  327.     GUICtrlCreateButton ("Exit", 210, 153, 70, 25, 0)
  328.     GUICtrlSetOnEvent (-1, "ExitGUI")
  329.   EndIf
  330.   
  331.   GUISetState ()
  332.   
  333. EndFunc
  334.  
  335. Func SRCUserHome ()
  336.   If StringInStr ("0407, 0807, 0c07, 1007, 1407", @OSLANG) Then
  337.     $PathHR = FileSelectFolder ("Heimverzeichnis auswΣhlen", "", 1+4)
  338.   Else
  339.     $PathHR = FileSelectFolder ("Select homelisting", "", 1+4)
  340.   EndIf
  341.   If not @error Then
  342.     GUICtrlSetState ($Radio2, $GUI_CHECKED)
  343.     GUICtrlSetData ($HomeRoot, $PathHR)
  344.   EndIf
  345. EndFunc
  346.  
  347. Func OKUserHome ()
  348.   If GUICtrlRead($Radio1) = $GUI_CHECKED Then
  349.     IniWrite (@ScriptDir&"\data\settings\settings.ini", "userhome", "key", "%CD%\data\.VirtualBox")
  350.     GUIDelete ()
  351.   Else
  352.     If StringInStr ("0407, 0807, 0c07, 1007, 1407", @OSLANG) Then
  353.       If GUICtrlRead ($HomeRoot) = "Verzeichnis auswΣhlen ..." Then
  354.         MsgBox (0, "Fehler", "Bitte ein Heimverzeichnis oder DEFAULT auswΣhlen.")
  355.       Else
  356.         IniWrite (@ScriptDir&"\data\settings\settings.ini", "userhome", "key", GUICtrlRead ($HomeRoot))
  357.         GUIDelete ()
  358.       EndIf
  359.     Else
  360.       If GUICtrlRead($HomeRoot) = "Select homelisting ..." Then
  361.         MsgBox (0, "Error", "Please select a homelisting or DEFAULT.")
  362.       Else
  363.         IniWrite (@ScriptDir&"\data\settings\settings.ini", "userhome", "key", GUICtrlRead ($HomeRoot))
  364.         GUIDelete ()
  365.       EndIf
  366.     EndIf
  367.   EndIf
  368. EndFunc
  369.  
  370. Func SRCStartVM ()
  371.   $Start_VM = IniRead (@ScriptDir&"\data\settings\settings.ini", "startvm", "key", "NotFound")
  372.   If StringInStr ("0407, 0807, 0c07, 1007, 1407", @OSLANG) Then
  373.     If IniRead (@ScriptDir&"\data\settings\settings.ini", "startvm", "key", "NotFound") Then
  374.       $PathVM = FileOpenDialog ("VirtualBox VM auswΣhlen", $Start_VM&"\.VirtualBox\VDI", "VirtualBox VM (*.vdi)", 1+2)
  375.     Else
  376.       $PathVM = FileOpenDialog ("VirtualBox VM auswΣhlen", @ScriptDir&"\data\.VirtualBox\VDI", "VirtualBox VM (*.vdi)", 1+2)
  377.     EndIf
  378.   Else
  379.     If IniRead (@ScriptDir&"\data\settings\settings.ini", "startvm", "key", "NotFound") Then
  380.       $PathVM = FileOpenDialog ("Select VirtualBox VM", $Start_VM&"\.VirtualBox\VDI", "VirtualBox VM (*.vdi)", 1+2)
  381.     Else
  382.       $PathVM = FileOpenDialog ("Select VirtualBox VM", @ScriptDir&"\data\.VirtualBox\VDI", "VirtualBox VM (*.vdi)", 1+2)
  383.     EndIf
  384.   EndIf
  385.   If not @error Then
  386.     $VM_String = StringSplit ($PathVM, "\")
  387.     $String = ""
  388.     For $VDI In $VM_String
  389.       $String  = $VDI
  390.     Next
  391.     $VM_Start = StringSplit ($String, ".")
  392.     GUICtrlSetState ($Radio4, $GUI_CHECKED)
  393.     GUICtrlSetData ($VMStart, $VM_Start[1])
  394.   EndIf
  395. EndFunc
  396.  
  397. Func OKStartVM ()
  398.   If GUICtrlRead($Radio3) = $GUI_CHECKED Then
  399.     IniWrite (@ScriptDir&"\data\settings\settings.ini", "startvm", "key", "")
  400.     GUIDelete ()
  401.   Else
  402.     If StringInStr ("0407, 0807, 0c07, 1007, 1407", @OSLANG) Then
  403.       If GUICtrlRead ($VMStart) = "VM auswΣhlen ..." Then
  404.         MsgBox (0, "Fehler", "Bitte eine VM oder DEFAULT auswΣhlen.")
  405.       Else
  406.         IniWrite (@ScriptDir&"\data\settings\settings.ini", "startvm", "key", GUICtrlRead ($VMStart))
  407.         GUIDelete ()
  408.       EndIf
  409.     Else
  410.       If GUICtrlRead ($VMStart) = "Select a VM ..." Then
  411.         MsgBox (0, "Error", "Please select a VM or DEFAULT.")
  412.       Else
  413.         IniWrite (@ScriptDir&"\data\settings\settings.ini", "startvm", "key", GUICtrlRead ($VMStart))
  414.         GUIDelete ()
  415.       EndIf
  416.     EndIf
  417.   EndIf
  418. EndFunc
  419.  
  420. Func ExitGUI ()
  421.   GUIDelete ()
  422. EndFunc
  423.  
  424. Func ExitScript ()
  425.   Opt ("WinTitleMatchMode", 2)
  426.   WinClose ("] - Sun xVM VirtualBox", "")
  427.   WinWaitClose ("] - Sun xVM VirtualBox", "")
  428.   WinClose ("Sun xVM VirtualBox", "")
  429.   Break (1)
  430. EndFunc