パソコンからAndroidスマートフォンの画面を表示し操作する

AndroidスマートフォンのアプリをPCから操作したいと思いました。勉強のためにポモドーロタイマーアプリを使っているのですが、いちいちPCから手を放してスマホの画面をタップするのが面倒なので。(別にスマホの操作まではしたくないが、スマホで撮影した写真などをPCへ取り出したいという人も以下の方法でどうぞ)

私はASUS ZenFone2 Laser を使っているので ASUSが独自のアプリを作ってくれているのですが、パソコンに余計なプログラムをインストールしたくないため何かブラウザの拡張機能でもないだろうかと探したらありました。というわけで、

  1. Chromeのアプリ『Vysor』を使用する。(ブラウザではなく Windows, Mac, Linux版もあります)(VysorにはUSB接続が必要で、通常は充電器がUSB接続器も兼ねているのでお持ちだとは思いますが、ない人はワイヤレスで接続可能な別のアプリ(AllCast Receiver, AirDroid等)を使う必要があります。参考:Androidスマートフォンの画面をPCに映し出す方法3つ | ライフハッカー[日本版])

  2. Asusが用意してくれている専用のプログラムについても少しだけ。


前置き。PCにスマホを接続して写真等を見る、移すだけなら、単にPCとスマホをUSBで接続するだけで良いです(Windows10を想定しています)。

接続するとWindows側ではポコロンと音がしてデバイス認識を始め、スマホ側には
「USBをファイル転送に使用しますか?」
「デバイスがコンピュータと接続されました。USBをファイル転送(MTP)で使用する場合は、「はい」を選択してください」
という画面が現れますので「はい」をタップしてください。
第653回:MTP接続 とは - ケータイ Watch Watch

するとWindowsのエクスプローラーにASUSのデバイスとして表示されます。

f:id:demandosigno:20170918035227j:plain

それをクリックして開き[内部ストレージ]→[DCIM]→[Camera]と進むことでスマホに保存された写真を見ることができます。スクリーンショットは[内部ストレージ]→[Screenshots]。本体ではなくSDカードに保存している場合は、[SDカード]→[DCIM]→[Camera]です。

f:id:demandosigno:20170917203242j:plain


では、1. Chromeのアプリ『Vysor』を使用する。なのですが、

Androidスマートフォンの画面をPCに映し出す方法3つ | ライフハッカー[日本版]

に全部書いてくれているので、いくつか迷った部分を追記します。

  1. (Vysor から) Chromeに Vysor アプリをインストールする。
  2. USBケーブルでスマートフォンをPCにつなぐ。
  3. スマートフォンにUSBデバッグモードを適用する。

Vysorへ行き、[Download]→[Chrome]→[アプリを追加]とクリックし、Chromeブラウザへ Vysorをインストールします。

f:id:demandosigno:20170918035317j:plain

f:id:demandosigno:20170918035325j:plain

f:id:demandosigno:20170918035345j:plain

USBケーブルでスマートフォンをPCにつなぐ。前述の前置きを参照。

スマートフォンにUSBデバッグモードを適用する。

  • [設定]>[端末情報]と進み、画面を下へスクロールして、ビルド番号を7回選択。
  • [設定]>[開発者向けオプション]を選択(ここで初めて選択できるようになる)。
  • 下へスクロールし、USBデバッグをオンにする。

スマホに「USBデバッグを許可しますか?」と出ますので「OK」をタップします。続けて、

  1. Chromeアプリランチャーから『Vysor』を立ち上げる。(または Windows,Mac等のプログラムを立ち上げる)
  2. “Find Divices"ををクリックし、自分のスマートフォンを選択する。
  3. Vysorが起動し、スマートフォンの画面がPC上に表示される。

Chromeアプリランチャーから『Vysor』を立ち上げる。ですが、2016年にChromeがランチャーアプリの提供を止めてしまいました。「だってみんなChromeの拡張機能から使うだけで、ランチャーアプリは使ってくれないもん……」だそうです。 アプリのインストールページから起動させることはできるのですが 『Chromeのアプリリンクのショートカットを作成する』という方法もありました。

7月に廃止されるChromeのアプリランチャーの代替案 | Tanweb.net

ChromeのURL入力欄へ「chrome://apps/」と入れると画像のように、アプリランチャーに表示されているのと同じアプリ一覧がブラウザ上に表示されます。

このページをブックマークバーへとブックマークします。

アプリを立ち上げたら"Find Divices"ををクリックし、「Vysorが次のデバイスへのアクセスをリクエストしています」からAndroidを選び「選択」をクリックします。(一度認識が済むと、次からは一番上に認識済みのスマホが表示されます)

f:id:demandosigno:20170918041724j:plain

PC右下に「Vysor Check your Android device and click “Allow USB Debugging”.」と表示され、スマホに「USBデバッグを許可しますか?」「このパソコンのRSAキーのフィンガープリント」と出ますので「OK」をタップします。(OKを押さないで放っておくとエラーとなりますので、一度キャンセルして「Find Deviceからやり直してください」)

スマホで「OK」をタップするとPCに「Installing Visor APK…」と出たあと、スマホの画面になります。

f:id:demandosigno:20170918041744j:plain

マウスでクリック、ドラッグができ、アプリの起動、キーボード操作も可能です。

画面下の三つのボタンはアンドロイドスマホの三つのボタンにそのまま対応しており、画面右上のボタンからスマホ画面のキャプチャ、録画(Visor有料版の機能)、音量の上げ下げ、画面の回転・オフなどができます。(スクリーンショットを撮ってみたところ、スマホ本体ではなくPCに.jpgで保存されました。)

「そういえばタイマーアプリを使うので音が鳴らないと困るのだが鳴るのか?」と心配したのですが、スマホが鳴りました。まあ当たり前ですし、それで用は済みます。

続いて、2. ASUSが用意してくれている専用のプログラムについても少しだけ。

Vysor が使いにくかったらASUSプログラムも試してみようかなと思ったのですが、Vysorが十分に使いやすかったのでASUSプログラムはインストールしませんでした。

もしASUS純正のものも試してみたい方は、
[ASUS share Link:ファイルの共有]
[ASUS PC Link: PCにスマホ画面を表示し、マウスやキーボードで操作する]
[ASUS Remote Link:スマホからPCを操作する]
の三つがセットになった [ASUS ZenUI PC Suite]をスマホとPCの双方にインストールします。

スマホをUSBでPCに接続すると、エクスプローラーにCDドライブにとしてマウントされた[ASUS ZenUI PC Suite]が表示されますので、クリックしてインストールを行ってください。

f:id:demandosigno:20170918043648j:plain

f:id:demandosigno:20170918031918j:plain

あれ?[ASUS PC Link]がなくなってますね……。GooglePlayストアにも見つかりませんでした。現在はサポートされていないのかもしれません。というわけで Vysor を使いましょう。

参考リンク:ASUS PC Link の インストール方法に関して ASUS PC Link の使用方法に関して

Thunderbird のメール転送のエラー

Thunderbird Portable 52.3.0 を使っていて、迷惑メールを「迷惑メール相談センター」送信しようとしてエラーが出た。

迷惑メール相談センター|情報提供のお願い|JADAC

迷惑メールを複数選択し右クリック→「添付にまとめて送信」として、送信。

しかし、「メッセージの送信エラー」「メッセージを送信できませんでした。 一時ファイル C:\Users\ユーザー名\AppData\Local\Temp\nsfEFF3.tmp\ContainedTemp\nsmail-19.tmp を開けませんでした。システムの “一時ディレクトリー” の設定を確認してください。」 となりました。

そのディレクトリーを見に行くと、一時ファイル置き場のようです。

確かに、nsmail.tmp nsmail-2.tmp …とファイルが並んでいるのですが、… nsmail-18.tmp nsmail-20.tmp となっており nsmail-19.tmp がありません。

いくらか試行錯誤した上、メール一つだけを送信するのは問題ありませんでした。そこで気づいたのですが「まとめて送信」では20個の迷惑メールを送信しようとしていました。

つまり nsmail.tmp は添付ファイルに必要な一時ファイル(.tmp)を作成しているのですが、19個目のtmpファイルが作成されないため送信できないようです。実際、19個目のメールを除き、1~18,20個目の迷惑メールだけでまとめると送信できました。また、その19個目のメール一通だけを転送しようとしても同じエラーが出て転送できません。

そして、同時に Windows Defenderが「脅威が見つかりました。Windows Defender ウイルス対策により脅威が検出されました。詳細をご確認ください。」と警告を出します。ただ、詳細を確認しにいくと「脅威が見つかりました」はゼロとなっています。多分このメールには実際に脅威があって、一時ファイルが作成されることで警告が発せられるのですが、一時ファイルはすぐに消滅するので詳細を開いた時には何もない、という状況なのだと思います。

一旦Thunderbirdのゴミ箱に放り込んで、ゴミ箱を覗いてみたところ「このファイルは見つかりません」みたいな表示になっていたので、単に消え損ねたゴーストファイルが残っていたのかもしれません。とりあえず完全に削除しておきました。

追記:逆ですね。WindowsDefender が添付しようとした nsmail.tmp を隔離するので nsmail-19.tmp がフォルダから消えた、とうだけのようです。

VirtualBoxで「現在のビデオモードではゲストOSでマウス統合機能がサポートされません」と出る

VirtualBoxをインストールした初期段階でのゲスト・ホスト間の移動は、画面をクリックしてゲストに入り、右Ctrlキーを押してホストに戻ります。(Ver5.1.26での例)

頻繁に行うのは面倒なので、マウスをシームレスに移動させたりゲスト・ホスト間のコピペを行う等の便利な機能を "VirtualBox Guest Additions" をインストールすることで可能にします。

これらの機能が有効になっていない場合、画面上部に「現在のビデオモードではゲストOSでマウス統合機能がサポートされません」と表示されます。

6.4. VirtualBox Guest Additions のインストール

Guest Additions のインストールは画面上部メニューの[デバイス]→[ゲストアディションのインストール]から行います。

(仮想マシンにCD-ROMドライブをつけていなかった場合、[Gues Additions CD イメージの挿入]という文面になり 「仮想マシンに光学ドライブがないため VirtualBox Guest Additions のディスクイメージを仮想マシンに挿入できません。(メニューの[仮想マシン]→[設定]→[ストレージ]から)ドライブを追加してください」と出ますので指示に従い追加します。

そして再度[Gues Additions CD イメージの挿入]をクリックします。自動再生ウィンドウが開かない場合は、エクスプローラーを開いてCDドライブをクリックして再生してください。)

(幾つかインストールされますが、Oracleのものは全部インストールしちゃってください)

インストールが終わったら「再起動しますか?」と出ますのでゲストOSを再起動してください。

再起動が終わると画面上部の文言が「ゲストOSでマウス統合機能がサポートされています」に変わります。実際にゲストとホスト間をマウスを移動するだけで行き来できるようになっています。

インストール前はメニューの[入力]→[マウス統合]はグレーアウトしていましたがきちんと表示されました。

そしてゲスト[メニュー]の[仮想マシン]→[設定]→[一般]→[高度]タブからクリップボードの共有設定も可能になります。

何かのウインドウが一瞬開いて閉じる

昨日今日あたりで、何かのウィンドウが一瞬開いて閉じるようになった。ウイルスに感染したかな?としばらくビクビクする。

結論を書くと

C:Program Files (x86)\Microsoft Office\root\Office16\officebackgroundtaskhandler.exe というプログラムが1時間に1回動いていた。

“This task initiates Office Background Task Handler, which updates relevant Office data.” “このタスクは Office関連のデータを更新するOffice Background Task Handlerを開始します” かな。

ウイルスではなくMicrosoftOffice関係のアップデートタスクです(対処方法は後述)。私の環境は Windows10 x64 Home, Office365 Solo (Windows7,8でも出るとの報告あり)


追記:私は画面を録画して無理やり確認するという方法を取ったのですが、コメントで教えてもらった通り、プロセス監視ソフトなどを使った方が楽です。

(左下のWindowsスタートボタンを右クリック)コンピューターの管理 → 左側のタスクスケジューラをクリック → 左上の”操作”から”すべてのタスク履歴を有効にする”と設定 → タスクスケジューラ → タスクスケジューラライブラリ → Microsft → Office と順にクリックして開く → 例の怪しいウィンドウが表示された時刻に「OfficeBackgroundTaskHandlerRegistration」が出た。

これが一番手っ取り早いと思います。対処方法はMicrosoftフォーラムに幾つか記載されていました。(~Registrationとは別に OfficeBackgroundTaskHandlerLogon がログイン時に一回顔を出す場合もありますが対処法は同じです)

・上記タスクスケジューラで前回の実行時刻等を見て確認ができたら、Office~Registrationを右クリックして「無効」とすることで今後は動かなくなります。(Office~Logonも同様)

・または、Office~Registrationを右クリック→プロパティ→全般タブ→ユーザーまたはグループの変更→選択するオブジェクト~、に"System"と入力しOKを2回クリックして閉じる。

・または、Office~Registrationを右クリック→プロパティ→操作タブ→編集→引数の追加、に"/b"と記載する。OKを2回クリック。

・または、C:Program Files (x86)\Microsoft Office\root\Office16\ を開く。officebackgroundtaskhandler.exe を右クリック→プロパティ→互換性タブ、「管理者としてこのプログラムを実行する」にチェックを付けOKをクリック。

これらはマイクロソフトが対応してくれるまでの一時しのぎで、やはりセキュリティ的には危なくお勧めはできないようです。(自動実行を無効にしても、タスクを右クリックして手動で「実行」すれば動きます。とはいえ「無効」にしたらいずれは有効に戻すのを忘れないようにしてください。)

画面のフォーカスを持っていかれるので全画面でゲーム中の時などに困りますが、放っておいてもそう問題はありません。ただコメントでも指摘されているように、怪しい挙動に慣れてしまうと本当に危ないときも「いつものアレか」と警戒心が薄れる恐れがあります。

追記:5/30には、Officeインサイダー向け(いち早くバク修正や新機能を取り込み機能改善に協力する人たち)の修正が完了しました。一般ユーザーへの適用もそう遅滞なく行われるはずです。

answers.microsoft.com


以降は蛇足になりましたので読まなくていいです。

続きを読む

Vagrant VirtualBoxでの共有フォルダのエラーについて

経緯。 Windows10 VirtualBox 5.1.20 に Vagrant 1.9.4 で CentOS7をインストール

Vagrant box centos/7 | Atlas by HashiCorp

https://seven.centos.org/2017/04/updated-centos-vagrant-images-available-v1703-01/

を見ると、既知の問題点として

1.VirtualBoxでゲスト・ホスト間の共有フォルダを提供する「VirtualBox Guest Additions」はプレインストールされていません。必要な場合は、vagrant-vbguestプラグインをインストールし、Vagrantfileに次の行を追加してください。

config.vm.synced_folder “.”, “/vagrant”, type: “virtualbox”

補足)config.vm.synced_folder “ホストの共有フォルダ”, “ゲストのマウント先”, type: “virtualbox”です。

可能であれば、VirtualBox共有フォルダの代わりにNFSを使用することをお勧めします(VirtualBox共有フォルダは高負荷なので)。また、vagrant-sshfsプラグインを使用することもできます。これはNFSと異なり、すべてのオペレーティングシステムで動作します。

2.Guest Additionsが入っていない場合、私たちのイメージは同期されたフォルダのためにrsyncを使うようにあらかじめ設定されています。Windowsユーザーは、同期フォルダにSMBを使用するか、Vagrantfile に下記の通り記載することで同期ディレクトリを無効にすることができます。 config.vm.synced_folder “.”, “/vagrant”, disabled: true

と記載されています。というわけで

>vagrant plugin install vagrant-vbguest
Installing the 'vagrant-vbguest' plugin. This can take a few minutes...
Fetching: micromachine-2.0.0.gem (100%)
Fetching: vagrant-vbguest-0.13.0.gem (100%)
Installed the plugin 'vagrant-vbguest (0.13.0)'!

>vagrant init centos/7

の後で、vagrantfile を編集。中ほどの当該箇所を

config.vm.synced_folder “.”, “/vagrant”, type: “virtualbox”

とする。そして

>vagrant up --provider virtualbox

しかし

:
vboxadd.sh: Starting the VirtualBox Guest Additions.
==> default: Checking for guest additions in VM...
==> default: Mounting shared folders...
    default: /vagrant => C:/Users/hoge/MyVagrant/CentOS7
Vagrant was unable to mount VirtualBox shared folders. This is usually
because the filesystem "vboxsf" is not available. This filesystem is
made available via the VirtualBox Guest Additions and kernel module.
Please verify that these guest additions are properly installed in the
guest. This is not a bug in Vagrant and is usually caused by a faulty
Vagrant box. For context, the command attempted was:

mount -t vboxsf -o uid=1000,gid=1000 vagrant /vagrant

The error output from the command was:

mount: wrong fs type, bad option, bad superblock on vagrant,
       missing codepage or helper program, or other error

       In some cases useful info is found in syslog - try
       dmesg | tail or so.

となりマウントできません。

VagrantVirtualBox共有フォルダーをマウントできません。これは通常"vboxsf(VirtualBOXSharedFolder)ファイルシステム"への非対応が原因です。このファイルシステムは"Guest Additions"とカーネルモジュール間で利用されます。"Gust Additions"が正しくインストールされているか確認してください。 これはVagrantのバグではなく、大抵は欠陥のある"Vagrant Box"によって引き起こされます。背景としては、次のコマンドが試みられました--

ホスト(VirtualBox)とゲスト(Guest Additions)のバージョン不一致で発生することがあり、その場合>vagrant vbguest –status

GuestAdditions versions on your host (5.1.20) and guest (5.0.18) do not match.

といったエラーが出て、マウントも

sudo mount -t vboxsf vagrant /vagrant
/sbin/mount.vboxsf: mounting failed with the error: No such device

とできません。ただ今回は

>vagrant vbguest --status
[default] GuestAdditions 5.1.20 running --- OK.

で私のVirtualBoxも5.1.20なので、ここは問題ありませんでした。 しかし、確かに指摘されたコマンドで以下のようなアウトプットになります。

[vagrant@localhost ~]$ sudo mount -t vboxsf -o uid=1000,gid=1000 vagrant /vagrant
mount: wrong fs type, bad option, bad superblock on vagrant,
       missing codepage or helper program, or other error

       In some cases useful info is found in syslog - try
       dmesg | tail or so.

$mount -t vboxsf <共有フォルダ名> <マウント先ディレクトリ>

ディレクトリやファイルの権限、パーミッションを設定するときは下記のように -o で追加オプションを指定する。 uid、gid についてはユーザー名は指定できない。

$mount -t vboxsf <共有フォルダ名> <マウント先ディレクトリ> -o uid=$UID,gid=$GID,fmode=644,dmode=755

Virtualbox の 共有フォルダ を マウント/アンマウント したい - Qiita

では dmesg | tail

[vagrant@localhost ~]$ sudo dmesg | tail
:
[  701.855307] sf_read_super_aux err=-22

sf_read_super_aux err=-22ググる

VirtualBoxの共有フォルダのマウントに失敗する - Qiita

見てみるとビンゴっぽかったのでsymlink作りなおす

$ ll /sbin/mount.vboxsf

lrwxrwxrwx 1 root root 42 8月 10 18:25 /sbin/mount.vboxsf -> /usr/lib64/VBoxGuestAdditions/mount.vboxsf

$ sudo rm /sbin/mount.vboxsf

$ sudo ln -s /usr/lib/VBoxGuestAdditions/mount.vboxsf /sbin/mount.vboxsf

$ sudo mount -t vboxsf HOGE hoge

成功

やったー

とのこと。やってみる。

$ ls -l /sbin/mount.vboxsf (mount.vboxsfとはなんぞや?)
/sbin/mount.vboxsf -> /opt/VBoxGuestAdditions-5.1.20/other/mount.vboxsf
(mount.vboxsf は /opt/VBoxGuestAdditions-5.1.20/other/mount.vboxsf へのシンボリックリンクである
という表示だがリンク先に実体が無い)

$ sudo rm /sbin/mount.vboxsf (シンボリックリンクを一度削除。または以下3行を飛ばして ln -sfでも良い)
$ ls -l /sbin/mount.vboxsf
ls: cannot access /sbin/mount.vboxsf: No such file or directory

$ sudo ln -s /usr/lib/VBoxGuestAdditions/mount.vboxsf /sbin/mount.vboxsf
(/usr/lib/VBoxGuestAdditions/mount.vboxsfへのシンボリックリンク/sbin/mount.vboxsfを作成する)

$ ls -l /sbin/mount.vboxsf
/sbin/mount.vboxsf -> /usr/lib/VBoxGuestAdditions/mount.vboxsf
(mount.vboxsf は /usr/lib/VBoxGuestAdditions/mount.vboxsf へのシンボリックリンクである)

$ sudo mount -t vboxsf vagrant /vagrant
[vagrant@localhost ~]$ ls /vagrant/
test.txt  Vagrantfile

やったー。

/usr/lib/VBoxGuestAdditions/ は 64bit なら /usr/lib64/VBoxGuestAdditions/ が正しいがバグとして残ってる?みたい。 #5665 (Wrong simlink in Fedora 64 bits guest => Fixed in SVN) – Oracle VM VirtualBox

vboxsf: VirtualBOXSharedFolder: VirtualBox外部にあるフォルダをVirtualBox内から読み書きできるようにするためのファイルシステム

mount -t vboxsf [マウント元デバイス:ホストの共有フォルダー名] [マウント先:ゲストの共有フォルダー]

これはVagrantfileでconfig.vm.synced_folder “.”, “/vagrant”, type: “virtualbox”と設定した部分です。カレントフォルダー".“の[フォルダー名]もvagrantです(この設定はどこに記載されているのだろう…。VirturalBoxのGUIにはあったけど)

まあ初めに「可能であれば、VirtualBox共有フォルダの代わりにNFSを使用することをお勧めします」と書かれてるので、その方がいいんでしょうね。

こちらも参考に beyondjapan.com

www.vagrantup.com

シンボリックリンク

同期されたフォルダの実装とホスト/ゲストの組み合わせのシンボリックリンクのサポートは一貫していません。Vagrantは、シンボリックリンクVirtualBoxなどのさまざまなハイパーバイザを構成するように機能するよう最善を尽くしていますが、ホストとゲストの組み合わせによってはまだ正しく動作しません。これは、シンボリックリンクに依存するいくつかの開発環境に影響を与える可能性があります。

必要であれば、フォルダを同期するすべてのホスト/ゲストの組み合わせでシンボリックリンクをテストすることをお勧めします。

ちなみに「問題点2」に記載されているように「VirtualBox Guest Additions」をインストールせずにそのまま vagrant up すると、同期に rsync が使われます。

:
default: No guest additions were detected on the base box for this VM! Guest
default: additions are required for forwarded ports, shared folders, host only
default: networking, and more. If SSH fails on this machine, please install
default: the guest additions and repackage the box to continue.
default:
default: This is not an error message; everything may continue to work properly,
default: in which case you may ignore this message.
==> default: Rsyncing folder: /cygdrive/c/Users/hoge/MyVagrant/CentOS7/ => /vagrant

www.vagrantup.com

/* -----codeの行番号----- */