Gnu / Linuxホストでファイルをクリックし、VirtualBoxのMS-Windowsクライアントにインストールされているアプリケーションで開きます。

Gnu / Linuxホストでファイルをクリックし、VirtualBoxのMS-Windowsクライアントにインストールされているアプリケーションで開きます。

Oracle VirtualBoxのWindowsクライアントにインストールされているアプリケーションで、Linuxホスト上のファイルを開く(ダブルクリック)できるようにしたい。

詳細:Linuxホストの~ / Documentsフォルダにmyfile.docxがあり、MS WordアプリケーションがWindowsゲストOSと共にインストールされています。 ~/Documents ディレクトリも、完全な読み取りおよび書き込みアクセス権を持つ Y:\ パスの下の Windows ゲストにインストールされます。また、Linuxホストとシームレスに動作するようにWindowsゲストを設定しました(これはVBoxの非常に魅力的な部分です)。

これで、Windows ゲストを起動したら、もう心配する必要はありません。 Linuxホストでmyfile.docxをダブルクリックしてMS Wordで開きたいです。それがすべてです! (このMS Wordがどこから来たのか心配する必要はありません。)

実際、最初のステップとして、Linuxホスト端末で次のコマンドを使用してmyfile.docxを開くことに部分的に成功しました。

VBoxManage guestcontrol "Win07" run --exe "C:\\Program Files (x86)\\Microsoft Office\root\\Office16\\WINWORD.EXE" --username sbnwl --password myPassword -- WINWORD/arg0 "Y:\myfile.docx"

ファイルはMS Wordですぐに開きます。完璧!上記のコマンドの最後にあるパラメータ(「Y:\ myfile.docx」)には、Windowsスタイルの絶対パスが必要です。

次に、次の内容を使用して ~/.local/shrare/applications パスにデスクトップ構成ファイルを作成します。

[Desktop Entry]
Version=1.0
Encoding=UTF-8
Type=Application
Name=word
NoDsiplay=true
Exec=VBoxManage guestcontrol "Win07" run --exe "C:\\Program Files (x86)\\Microsoft Office\root\\Office16\\WINWORD.EXE" --username sbnwl --password myPassword -- WINWORD/arg0 HOW-TO-SUPPLY-WINDOWS-STYLE-PATH-TO-THE-FILE-BEING-DOUBLE-CLICKED? 
Name[en]=Word
Icon=/usr/share/icons/word.png

Exec =で始まる行の末尾でこのパラメータを完成する方法を知っている人はいますか?

答え1

主な部分を終えたようです。これで名前を変換する必要があります。スクリプトの作成を提案します。デスクトップエントリにUnixファイル名でスクリプトを起動させ、スクリプトに名前を変換してVBoxManagerを呼び出すようにします(例で行ったように)。

sedあなたの友人はコンバーターにいます。

答え2

ここまで読んでくれてコメントしてくださった皆さんに感謝します。

ゲストアプリケーションのクリックでホストファイルを開くように管理されます。それ素晴らしい経験私はLinuxホストでvirtualboxを使用しています。

これが完全な解決策です!

ステップを以下に要約する。

ステップ1 - >次の要件が満たされていることを確認してください。

  1. 開こうとしているファイルはホストLINUXファイルシステムにあります。 (サブディレクトリもサポートされています。)
  2. ホストのドキュメントディレクトリはWINDOWSゲストからY:\としてマウントされます(好ましくは書き込み権限がある場合)。
  3. ホストのダウンロードディレクトリは、WINDOWSゲストにZ:\としてインストールされます(可能な限り書き込み権限がある場合)。
  4. ホストの$ HOMEディレクトリはWINDOWS GUESTにX:\としてインストールされます(可能な限り読み取り専用権限を使用)。

ステップ2 - > $ HOME / .local / share / applicationsパスに次の内容を含む「Word.desktop」(引用符を除く)というデスクトップエントリファイルを作成する必要があります。

[Desktop Entry]
Version=1.0
Encoding=UTF-8
Type=Application
Name=Word 365
NoDsiplay=true
Exec=$HOME/.local/share/applications/muScripts/runWord %u
Name[en]=Word 365 ProPlus
Icon=/usr/share/icons/MSWord.png

上記の$ HOMEを/home/userと同じユーザーパスに置き換えます。

ステップ3 - >次の内容を含む「runWord」(引用符を除く)という名前の実行可能ファイルを作成し、$ HOME / .local / share / applications / muScripts /ディレクトリに配置します。

#!/bin/bash

# THIS PROGRAM (runWord) OPENS *.docx FILES ON LINUX HOST, WITH MS Word APPLICATION
# INSTALLED ON A WINDOWS GUEST (IN VirtualBox).

## STEP1--> CHECK FOLLOWING REQUIREMENTS ARE MET:
# 1. THE FILES ARE EITHER IN Documents OR Downloads OR any other DIRECTORY/SUB-DIRECTORY 
#    OF THE HOST FILESYSTEM (SUB-DIRECTORIES also supported)
# 2. THE host's Documents DIRECTORY IS MOUNTED AS Y:\ IN THE WINDOWS GUEST (preferably with write permissions)
# 3. THE host's Downloads DIRECTORY IS MOUNTED AS Z:\ IN THE WINDOWS GUEST (preferably with write permissions)
# 4. THE host's     $HOME directory IS MOUNTED AS X:\ IN THE WINDOWS GUEST (prefer with read-only permissions)

## STEP2--> YOU NEED TO CREATE A DESKTOP ENTRY FILE WITH FOLLOWING CONTENTS, IN THE
# $HOME/.local/share/applications PATH:
#
#[Desktop Entry]
#Version=1.0
#Encoding=UTF-8
#Type=Application
#Name=Word 365
#NoDsiplay=true
#Exec=/home/hostuser/.local/share/applications/muScripts/runWord %u
#Name[en]=Word 365 ProPlus
#Icon=/usr/share/icons/MSWord.png
#

## STEP3--> PLACE THIS FILE IN THE DIRECTORY $HOME/.local/share/applications/muScripts/

#
##--CODE DEVELOPERS/CONTRIBUTORS -- andpy73, sbnwl
##-- andpy73 https://forums.virtualbox.org/memberlist.php?mode=viewprofile&u=50134
##-- sbnwl https://forums.virtualbox.org/memberlist.php?mode=viewprofile&u=116543
##-- Original post at https://forums.virtualbox.org/viewtopic.php?f=7&t=91799
#

clear

#
# Check that we have got the correct number of parameters.
#
if [ "$#" -ne 1 ]; then
   echo "Warning: Remote script requires one parameter to be passed!"
#   exit
fi

#
# Check if the file exists in the host file system incase we are
# called from a terminal.
#
if [ ! -f "$1" ]; then
   echo "Warning: File not found in the host file system!"
   echo '         Make sure the file' $1 'exists!'
#   exit
fi

#
# Get the filename part from the full path given.
#
FILE=$(basename "$1")
nixPATH=$(dirname "$1")
echo 'Full UNIX path is:' $nixPATH

echo 'Opening' $FILE ' ...'
echo 'Full UNIX path of the file is:' $1

#
# Make a new executable file having WINDOWS_PATH as argument at the end of 
# VBoxManage command and write the command sting in it.
#
mkdir ~/.tmp
cd ~/.tmp
rm tmpfile
touch tmpfile
chmod +x tmpfile
printf 'VBoxManage guestcontrol "Win10" run --exe "C:\\Program Files (x86)\\Microsoft Office\\root\\Office16\\WINWORD.EXE" --username myWindowsUsername --password myWindowsPassword -- WINWORD/arg0 ' >> tmpfile

if [[ $1 == "$HOME/Documents/"* ]]; then
   echo "The file is in Documents folder, i.e., in Y:\ of Windows host!"
   prefix="$HOME/Documents"
   partPATH=${nixPATH#"$prefix"}
   echo 'Partial UNIX path is:' $partPATH
   winPATH=${partPATH//\//\\}
   echo 'Partial WINDOWS path is:' $winPATH
   echo 'Full WINDOWS path is:' '"'Y:\\$partPATH\\$FILE'"'
   echo '"'Y:\\$partPATH\\$FILE'"' >> tmpfile

elif [[ $1 == "$HOME/Downloads/"* ]]; then
   echo "The file is in Downloads folder, i.e., in Z:\ of Windows host!"
   prefix="$HOME/Downloads"
   partPATH=${nixPATH#"$prefix"}
   echo 'Partial UNIX path is:' $partPATH
   winPATH=${partPATH//\//\\}
   echo 'Partial WINDOWS path is:' $winPATH
   echo 'Full WINDOWS path is:' '"'Z:\\$partPATH\\$FILE'"'
   echo '"'Z:\\$partPATH\\$FILE'"' >> tmpfile

else
   echo "The file is elsewhere, i.e., in X:\ of Windows host! (If $HOME is mounted as X:\)"
   prefix="$HOME"
   partPATH=${nixPATH#"$prefix"}
   echo 'Partial UNIX path is:' $partPATH
   winPATH=${partPATH//\//\\}
   echo 'Partial WINDOWS path is:' $winPATH
   echo 'Full WINDOWS path is:' '"'X:\\$partPATH\\$FILE'"'
   echo '"'X:\\$partPATH\\$FILE'"' >> tmpfile
fi

#
# Show the contents of tmpfile (for only debugging purpose)
#
echo '-------------------------------------------------------------------------'
echo 'This is the content of tmpfile for debugging purpose:'
echo ' '
cat tmpfile
echo ' '
echo '-------------------------------------------------------------------------'

#
# Run the commands in tmpfile for opening the double-clicked file!
#
./tmpfile &
rm tmpfile

上記のスクリプトファイルで、次から始まる特定の行を次のように変更したことを確認してください。printf' VBox はゲスト制御を管理します。

  1. 文字列の置き換えウィン10そしてあなたの名前はWindows ゲスト仮想マシンMSオフィスがインストールされています。
  2. 変えるマイウィンドウのユーザー名そしてあなたのものログインユーザー名Windowsゲストオペレーティングシステムで
  3. 変える私のWindowsパスワードそしてあなたのものログインパスワードWindowsゲストオペレーティングシステムで

ステップ4--> *.docxを次のものと組み合わせるホストファイルシステムには、「Word」プログラムの.docファイルが含まれています。方法は次のとおりです。 1. MS Wordファイル(Linuxホストファイルマネージャ(nautilus、nemo、Dolphinなど)で* .docxファイルを開きます。 2. *.docx ファイルを右クリックし、コンテキストメニューから「プロパティ」をクリックします。ウィンドウが表示されます。 3. 「接続プログラム」タブをクリックし、使用可能なアプリケーションのリストをスクロールします。 「Word 365 ProPlus」を選択し、ウィンドウの右下隅にある「デフォルトに設定」をクリックします。

それだけです!

次回は、仮想ボックスでシームレスモード(ログイン後CTRL + L)でWindowsマシンを起動して忘れてください。

Linuxファイルマネージャで* .docxファイルを直接ダブルクリックするだけです。

チャジャンは、MS Wordアプリケーションですぐに開きます。

関連情報