- ベストアンサー
勝手に別メモリー起動するアプリ?
勝手に別メモリー領域で起動していると思われるアプリに時々出会い悩みます。 最初からそうであれば諦めるのですが、自分では無意識のうちに、いつの間にか挙動の変わることもあるのでその場合は悩みます。 なぜ別メモリー領域?と予想しているかと云いますと、 ある時を境に、以後データファイルのドラッグアンドドロップが出来なくなり困るからです。 exeファイルのプロパティを確認すると、互換性タブでの「管理者としてプログラムを実行する」チェックボックスはOFFのままです。 この現象は、Windowsの仕様上、何が起きている事になりますでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
追記。 シェルエクステンションは、Windowsやその他のシステムのアップデートの際に、勝手にオフになったり、勝手に未インストール状態に戻ったりする可能性があります。 Windowsの自動アップデートが入ると同時にシェルエクステンションが無効になる、という事が起きる可能性があります。
その他の回答 (2)
- chie65536(@chie65535)
- ベストアンサー率44% (8741/19839)
補足読みました。 何らかの原因で、シェルエクステンションの機能がオフになっているようです。 EXEに対してのD&Dが可能なのは、シェルエクステンションの機能による物だと推測できます。 シェルエクステンションの機能がオフなので、EXEに対してのD&D機能も使えなくなり、アプリ内の「開くダイアログ」にもシェルエクステンションが無い状態になっているのでしょう。 シェルエクステンションの機能は、インストールした後、機能をオンオフ出来る筈です(レジストリを直に変更する必要があるかも知れません)
お礼
- chie65536(@chie65535)
- ベストアンサー率44% (8741/19839)
>ある時を境に、以後データファイルのドラッグアンドドロップが出来なくなり困るからです。 アプリが、自分が使うデータファイルを「オープンしっ放し」にすると、ファイルが「使用中」になり、ドラッグアンドドロップでの移動が出来なくなります。 アクセスされて使用中になったファイルは「排他処理」され、全アプリがそのファイルをクローズして「誰も使ってない状態」に戻るまで、移動も削除も出来なくなります。 「単にファイルが使用中なだけ」であって「別メモリ空間で実行されている」訳ではありません。 と言うか、各アプリは、すべて「別メモリ空間」で実行されています。 あるアプリから他のアプリのメモリ空間にアクセスするには、専用の特殊なWindowsAPIを用いる必要があり、Windows本体も含め、すべてのプログラムは「自分だけがアクセスできる、自分専用のメモリ空間」で実行されています。 >この現象は、Windowsの仕様上、何が起きている事になりますでしょうか? ごく稀に、プログラムのバグなどで、アプリが強制終了すると「ファイルの使用中フラグが付いたまま、アプリが強制終了」して、使用中フラグを誰も元に戻せなくなる事があります。 そうなると「再起動しない限り、使用中のファイルを、移動する事も、削除する事も出来なくなる」という場合があります。 これは「アプリのバグ」の場合が殆どで、Windowsそのものは「仕様通りに正常動作している」ので、パソコンを再起動して解決するしかありません。
補足
有難う御座います。 排他処理の原理は理解していますので大丈夫です。 質問文面が不十分でしたので、補足させて下さいませ。 1.当該問題のアプリ.EXEをシェルのスタートメニューやデスクトップ上のアイコンダブルクリックや、タスクバーのピン止めから起動します。 2.シェルのエクスプローラー.EXEの窓にある未使用のデータファイルを「1」のアプリに摘まんで落そうとします。 3-A.通常ならばシェルから起動する「1」のアプリに、同じシェルのエクスプローラー窓に格納されているデータがドラッグアンドドロップで受付されます。 (ここで自分で無意識のうちに何か設定変更した可能性を疑っている仮定です) 3-B.シェルのスタートメニューやアイコンクリックで起動した「1」のアプリがある日を境に、エクスプローラーの窓からデータファイルのアイコンを摘まんでアプリ窓の範囲で落とそうとすると、進入禁止道路標識のマウスカーソルに変化して受け付けなくなりました。 4.仕方ないので、「1」のアプリの「開く」メニューから、読み込みたいデータのディレクトリを辿れば、アプリ使用は実用上どうにか出来ます。 5-A.アプリの「開く」メニューのダイアログボックス表示が、通常ならばシェル拡張アクセサリーで追加した機能がアプリのダイアログウインドウ上でも反映されます。 5-B.ドラッグアンドドロップが効かない状態でアプリ起動すると、「開く」メニューのダイアログ窓にシェル拡張の機能が働いていない事に気付きます。 (ここで、Bの状態では「1」のアプリがシェルの子プロセスとしての軌道になっていないからでは?と感じている所です) 使い始めて間もないWindows11で、この現象が起きています。OS付属のタスクマネージャーでは起動プロセスの親子関係を判別する方法が判らず迷っている所です。 当初は普通にドラッグアンドドロップが可能で、その場合はアプリ上の「開く」ダイアログ窓にもシェル拡張機能が反映されていて便利でした。 この状態が、起動メモリー空間の分離が原因ではないとすると、他にどんな原因(多分何かの設定変更をしたのを私が忘れている可能性が高いです)が予想されますでしょうか? 一般論で構いません。他にあり得そうなことがあれば、どんな小さな原因予想でも構いません。 どうぞよろしくお願いいたします。
補足
なるほど、シェルエクステンションというものを初めて知り、大変勉強になりました。 D&Dはドロップハンドラーになりますか? ドロップハンドラーは個別アプリのEXEやDLLにも規定されるレジストリエントリーでしょうか?