2016-08-17 6 views
0

Unityアプリケーションの実行中に「エクスプローラ」を強制終了しようとしています。 エディタで、System.Diagnostics.Process.GetProcessesByName( "explorer");を使用して、私は問題を発見してプロセスを終了することができます。Unity C#Process.GetProcesses()はエディタとランタイムで異なる結果を返します

しかし、コンパイルされたアプリで同じコードを使用すると、空の配列が返されます。 Process.GetProcesses()で利用可能なすべてのプロセスを出力するエディタでは、コンパイルされたアプリケーションでもっと多くのプロセスにアクセスできます。

私は管理者としてコンパイルされたアプリを実行しようとしましたが、私は同じ結果でC:\ Program Filesからアプリを実行しようとしました。

一時的に私の回避策は、Windowsエクスプローラを殺す私のユニティアプリケーションから.batファイルを実行することです。

私は何が問題なのかよく分かりません。どんな助けでも大歓迎です。

+0

これは信頼できるアプリだから可能性が高いです。特にユニティアプリケーションでエクスプローラを殺す理由を理解するのが困っていますか? – MiltoxBeyond

+0

これはタッチスクリーンのキオスク用です。新しいバージョンのWindowsでは、ユーザーがアプリケーションを終了したりOSの他の部分にアクセスできるようにするグローバルなジェスチャー(画面からスワイプなど)が追加されました。これらのグローバルジェスチャーを無効にするにはいくつかの方法がありますが、すべてのハードウェア構成では機能しません。エクスプローラを殺すことは、これらの機能を無効にするために私が見つけた唯一の確実な方法です。 – znerolnoht

答えて

1

ソリューション:ビルドの設定では、アプリケーションを64ビット(x86_64)に変更しました。私がこれをしたら、コンプライアドアプリケーションはエクスプローラを含むすべてのプロセスにアクセスできました。

関連する問題