75 votes

Comment faire ALT + TAB pour passer au système principal tout en étant dans VBOX ?

Je viens de rencontrer ce problème récemment. Je suis en train d'exécuter Lubuntu 13.04 dans VirtualBox. Donc quand j'ai maximisé et que je voudrais passer à la fenêtre suivante du système principal, nous faisons tous normalement ALT+TAB mais cela ne fonctionne pas pour le système principal et va sur Lubuntu de Vbox.

Comment puis-je activer la fonctionnalité ALT+TAB du système principal même si j'ai un système d'exploitation VirtaulBox maximisé.

Merci.

0voto

Regular Jo Points 101

Cela vous permet d'utiliser Win+Tab sur la machine hôte, tandis que Alt+Tab sera transmis à l'hôte. Cette fonctionnalité me manque vraiment quand je ne l'ai pas.

Cela fonctionne également avec la Connexion Bureau à distance de Windows.

Sous le menu de VitualBox, allez dans Fichier > Préférences > Entrée et assurez-vous que [ ] Capture automatique du clavier n'est pas coché. Cela ne fonctionne pas lorsqu'il est coché.

Cela nécessite AutoHotKey (ou une plateforme de script similaire, vous devrez rechercher la syntaxe pour cela) à exécuter sur le système hôte et invité. Vous pouvez créer un script similaire seulement sur l'hôte, mais vous devrez appuyer sur Alt après chaque utilisation de Win+Tab sur la machine invitée pour libérer l'état de la touche.

Ceci a été écrit pour un hôte Windows 10 vers un invité Windows 10, mais je ne vois pas de raison pour que cela ne fonctionne pas avec d'autres invités. Il existe des programmes comme AutoHotKey qui peuvent permettre à d'autres systèmes hôtes de faire quelque chose de similaire.

Les deux scripts doivent être exécutés en tant qu'administrateur pour pouvoir surveiller les processus qui sont également exécutés en tant qu'administrateur.

Machine hôte

Installez ceci sur la machine hôte, par exemple, WinTabHost.ahk.

#SingleInstance, Force
hostkey = RCTRL                                            ; définissez ceci sur votre HOSTKEY de VirtualBox
boxMode := ""
Hotkey, <#Tab, WinTabbing
Hotkey, >#Tab, WinTabbing
Return

TabFinish:
    Send, {ALT UP}
    RDCKeysState("Off")
Return

Tabbing:
    Send, {Right}
Return

WinTabbing:
  WinGetTitle, Title, A
  StringRight, TitleEnd, Title, 25

  RDCKeysState("On")
  If (InStr(Title, "[Running] - Oracle VM VirtualBox")) {  ; Mode invité

    Send, {%hostkey%}                                      ; Déclencher l'état de capture
    Sleep, 200                                             ; Délai pour laisser le temps à la machine de traiter, juste au cas où
    Send, #{TAB}                                           ; Envoyer Win+Tab
    Send, {%hostkey%}                                      ; Libérer l'état de capture

  } Else If (TitleEnd = "Remote Desktop Connection") and (not Title = "Remote Desktop Connection") {  ; Mode RDC

    Send, {Alt down}{PgDn}                                 ; Appuyer et maintenir alt, et appuyer sur pgdn

  } Else {                                                 ; Mode hôte

    Send, {ALT Down}{TAB}                                  
    Sleep, 200                                             ; Attendre une fraction de seconde pour que la fenêtre Alt-Tab apparaisse
    iter := 0                                              ; Suivre la boucle
    Loop {
      iter := iter+1
      if (!WinExist("Task Switching") Or iter > 60) {      ; Si Alt+tab a disparu, ou s'il s'est écoulé 30 secondes
        Send, {ALT UP}
        Break
      }
      Sleep, 500
    }
  }
Return

RDCKeysState(toggle) {
    ; Cette fonction mappe toutes les façons dont un utilisateur pourrait terminer la boîte Alt-tab.
    Hotkey, Enter, TabFinish, %toggle%                   ; Mapper Entrée, Clic et leurs équivalents alt à TabFinish()
    Hotkey, !Enter, TabFinish, %toggle%
    Hotkey, LButton, TabFinish, %toggle%
    Hotkey, !LButton, TabFinish, %toggle%
    Hotkey, *LWIN UP, TabFinish, %toggle%
    Hotkey, *RWIN UP, TabFinish, %toggle%
    Hotkey, *Tab, Tabbing, %toggle%
}

; Si vous obtenez l'erreur 'impossible de fermer l'instance précédente du script,'
; en essayant de recharger le script, vous devez cliquer avec le bouton droit dessus et sélectionner
; 'Exécuter en tant qu'administrateur'

Machine invitée

Installez ceci sur la machine invitée, par exemple, WinTabGuest.ahk.

#SingleInstance, Force
SetWorkingDir %A_ScriptDir%
if (not A_IsAdmin) {
    Run *RunAs "%A_ScriptFullPath%"                         ; Exécuter en tant qu'administrateur pour détecter les frappes de touche concentrées sur les programmes avec élévation de privilèges
}
Hotkey, <#Tab, WinTabbing
Return

TabFinish:
    Tooltip, TabOut
    Send, {ALT UP}
    RDCKeysState("Off")
Return

Tabbing:
    Send, {Right}
Return

WinTabbing:
    Send {Alt DOWN}{TAB}
    RDCKeysState("On")
    Sleep, 200
    iter := 0
    Loop
    {
      iter := iter+1
      Sleep, 200
      if (!WinExist("Task Switching") Or iter >= 60) {
        Send, {ALT UP}
        Break
      }
      Sleep, 500
    }
Return

RDCKeysState(toggle) {
    Hotkey, Enter, TabFinish, %toggle%
    Hotkey, !Enter, TabFinish, %toggle%
    Hotkey, LButton, TabFinish, %toggle%
    Hotkey, !LButton, TabFinish, %toggle%
    Hotkey, *LWIN UP, TabFinish, %toggle%
    Hotkey, *RWIN UP, TabFinish, %toggle%
    Hotkey, *Tab, Tabbing, %toggle%
}

0voto

baiken_mkv Points 1

Appuyez sur la touche Host une fois avant d'appuyer sur la combinaison Alt + Tab semble fonctionner pour beaucoup. Si cela ne fonctionne pas pour vous, essayez d'appuyer dessus deux fois à la place.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X