• 締切済み

プログラムにWINDOWSから自動で割り当てられたフォルダを割り当て解除する方法

レジストリに、  HKEY_CLASSES_ROOT   Folder    shell     program1で処理      command ・・・ データは、「C:\~\program1.exe "%1"」を指定 と登録する事で、Explorerの右クリック・コンテキストに「program1で処理」を追加し、 例えば、フォルダAAを右クリックし、「program1で処理」を選択すると、 C:\~\program1.exe AA がコマンドとして実行され、 実行されたprogram1.exeでは、フォルダAAを処理したいのですが、 AAが、program1.exeに既に割り当てられており、困っています。 AAを割り当てない、叉はprogram1.exeに割り当てられたAAを割り当てから外す事は出来るでしょうか? program1.exeは、C#.NETで作成しています。 参考)最終的にやりたいことは、AA(フォルダ、またはファイル)の移動(move)ですが、moveによる削除の段階で「他のプロセスに割り当てられている」と怒られてしまいます。この「他のプロセス」と言うのが調べたところ、自分自身なのです。

noname#227089
noname#227089

みんなの回答

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

タスクマネージャのプロセスタブでそのProgram1.exeは動作しているのではないですか 動いているようならプロセスを選択して『プロセスの終了』ボタンで終了させてから削除や移動をして見ましょう Windowsを再起動した段階でも削除や移動はできないのでしょうか ストリーム系のオブジェクトグローバルで持ったりしてCloseやDisposeをし忘れていませんか

noname#227089
質問者

お礼

最終的に採った方法を以下に記します。 AAがカレントフォルダになっていて、カレントフォルダは割り当てから外すことは出来ないので、KEYINシュミレートでBSコードを投げて、エクスプローラ上でカレントフォルダを上位フォルダに移すことで、プログラムからAAのMOVEができる様になりました。

noname#227089
質問者

補足

会社でアクセス不可になり補足が遅れましてすみません。 再度説明すると、Programの外で移動するのではなくProgramから移動しているので、Programが稼働中にProgramが割り当てていない状態になっていないと駄目なのですが、割り当てられてしまっているという事なのです。 Explorerのコンテキストメニュー選択で実行させるとそのファイルが割り当てられてしまうという事です。 ちなみにProgram1をSendtoに入れて「送る」をクリックして実行させると問題は発生しません。

関連するQ&A

  • XPのコンテキストメニューに追加方法

    コンテキストメニューにコマンドプロンプトで開くを追加 したいのですが方法がわかりません。教えてください。 フォルダーを右クリックした時のメニューに追加する方法は下記のように して出来ると思いますが、空白の場所での右クリックによる コマンドプロンプトの実行をしたいのですがレジストリはどこをいじればよいのでしょうか? [HKEY_CLASSES_ROOT\Directory\shell\cmd] @="コマンドプロンプト" [HKEY_CLASSES_ROOT\Directory\shell\cmd\command] @="cmd.exe /k \"cd %l\"" 参考:​http://www.forest.impress.co.jp/article/2007/02/13/okiniiri.html ※ソフトではこのようなのが有りますが、レジストリを弄るだけでは  出来ないのでしょうか?

  • ログオフせずに関連づけを有効にする方法

    複数のPCに対して同じファイルの関連づけを行いたいと考えています。 そのためレジストリを使って一括で関連づけを行う必要があります。 例えば、拡張子vファイルにテキストエディタ「秀丸」を関連付けたいのですが 秀丸で、関連付けの項目で vファイルを秀丸に関連付ける前と後でのレジストリを比較したところ 以下のキーを変更すれば良いことが分かりました。 Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.v] @="hidemaru.v" [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\hidemaru.v] @="V ファイル" [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\hidemaru.v\DefaultIcon] @="C:\\Program Files (x86)\\Hidemaru\\Hidemaru.exe,1" [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\hidemaru.v\shell] [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\hidemaru.v\shell\open] [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\hidemaru.v\shell\open\command] @="\"C:\\Program Files (x86)\\Hidemaru\\Hidemaru.exe\" %1" [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\hidemaru.v\shell\print] [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\hidemaru.v\shell\print\command] @="\"C:\\Program Files (x86)\\Hidemaru\\Hidemaru.exe\" /p %1" [HKEY_LOCAL_MACHINE\SOFTWARE\Hidemaruo\Hidemaru\Capabilities\FileAssociations] ".v"="hidemaru.v" [HKEY_USERS\S-1-5-21-3000369501-1364672687-3950771759-1001\Software\Microsoft\Windows NT\CurrentVersion\EXTENSIONS] "v"="C:\\Program Files (x86)\\Hidemaru\\Hidemaru.exe ^.v" これをregファイルとして保存し、実行してみたのですが ダブルクリックや右クリックメニューには設定が反映されるのですが アイコンには反映されないことが分かりました。 一度ログオフすると反映されます。 秀丸上で設定を変更を行った場合には ログオフすることなく、設定を反映させることができるのですが、 レジストリの場合にはどうすればログオフすることなく反映させることができますか? 恐らくbatファイルが必要になるのではないかと思いますが どなたかその方法を教えていただけないでしょうか?

  • C#でのプログラム方法

    C#(コンソールでの実行ファイル)でのバッチファイル実行方法に悩んでいます。 実行イメージとして **************************************** 1. C#(A.exe)をダブルクリックで起動する 2. C#プログラム[A]はバッチファイルを起動する 3. C#(B.exe)をダブルクリックで起動する 4. C#プログラム[B]は2で起動したバッチファイルを終了させる(=DOS窓をCloseさせる?) **************************************** を考えています。 1~2の処理はなんとなくわかったのですが 4にてバッチファイルが起動しているDOS窓をどうCloseさせたらいいのかわかりません。 助けてください。

  • C・Dドライブを開こうとすると検索結果が表示される

    C・Dドライブを開こうとすると検索結果が表示されてしまい、ファイルが開けません。 右クリックすると検索・開くの順で表示され、そこで、開くをクリックすれば、開けるのですが、従来のように右クリックで開けるようにするには、どうしたらいいのでしょうか? [スタート]-[ファイル名を指定して実行] から regedit を起動します。 フォルダが検索になる場合、HKEY_LOCAL_MACHINE \SOFTWARE \Classes \Directory \shell を開きます。 ドライブが検索になる場合、HKEY_LOCAL_MACHINE \SOFTWARE \Classes \Drive \shell を開きます。 右側の (既定) をダブルクリックし、データに none と記入して「OK」をクリックします。(XP) ↑上記は、やってみましたが、かわりませんでした。 外付けHDDのほうは、ファイルの種類を開くプログラムを選択して下さいと出てしまいます。 特に設定をかえたりしていないのですが、、、

  • CASIOのフォルダを削除したい

    宜しくお願い致します。 CドライブのProgram Filesの中に「CASIO」というフォルダがあるのですが、デジカメが故障した為、不要となりました。故に右クリックで削除を実行すると、しばらくして「Plauto.exeを削除できません。アクセスできません。」と出てきて削除できません。どうすれば削除できるのでしょうか?

  • ツールバーのプログラムの右クリックメニューをVBより実行?

    こんにちは ツールバーにあるプログラムの右クリックメニューをVBより実行できない でしょうか? 例えば "音量"のアイコンを右クリックすると"音量コントロールを開く"というメニュー が出ますが、これをVBから実行できないでしょうか? 但し、現実に右クリックメニューから選択で実行させるプログラムに 該当するexeが見あたりません。 この右クリックで動く処理が単体のexeなら簡単なのですが モジュール化されているのなら、無理な話ですよね "その通り無理だよ"と言ってもらえるとすっきりするのですが どなたか情報お持ちの方おられましたらご教授ください よろしくお願いいたします。

  • Windows live Messengerでリンクが開けない

    Windows live Messengerでリンクが開けない Messengerから開くブラウザをIE以外にしようとして、調べたら REGEDIT4 [HKEY_CLASSES_ROOT\htm.dummy] [HKEY_CLASSES_ROOT\.htm] @="htm.dummy" [HKEY_CLASSES_ROOT\http\shell] @="Moon" [HKEY_CLASSES_ROOT\http\shell\Moon] @="Moon" [HKEY_CLASSES_ROOT\http\shell\Moon\command] @="\"C:\\Program Files\\Moon Browser\\mb.exe\" \"%1\"" と、このように変更したらよいと書いてあったのでレジストリファイルを作って変更してみました。 するとインスタントメッセージ上からリンクが開けなくなってしまいました。 よくよく見れば、上記の変更は「【MSN Messenger】のリンクをIE以外で開く」と書いてありました… バックアップは取り忘れていました。 どなたか回答お願いします…

  • フォルダをダブルクリックするとファイルを開くプログラムの選択が表示されてしまう

    XP Homeを使用しています。 フォルダをダブルクリックすると、「ファイルを開くプログラムの選択」ウィンドウが表示されてしまいます。 フォルダを右クリックしてコンテキストメニューを表示すると開く(O)が2つ並んでおり、 強調表示されているほうを選ぶと同じようにプログラム選択のウィンドウが表示されてしまいます。 元に戻す方法は無いでしょうか よろしくお願いいたします。

  • 拡張子exeを削除するコマンド(場所も)を教えて

    富士通アドバイザーのダウンロードページでエラーが発生し関連付け一覧から.dllと.exeが消えてしまいました。 それでレジストリーエディターを使い、 [Hkey_CLASSES_RootApprications]を開き [Hkey_CLASSES_Root]をクリック .dllと.exeの二つを右クリックメニューで削除しました。 その後、コマンドプロンプトで assoc .dll=dllfile assoc .exe=exefileを実行し 再起動したところ再起動のexeプログラムから 「ファイルを開く方法を選んでくださいが出てexeプログラムが動かせません。 唯一.txtに入力し、.batを実行できますので、これで対処したいとおもいますが、 レジストリーエディターが使えませんが、該当の拡張子を削除するコマンドを ご教示ください。 以下は考えているバッチファイルのイメージです。(これでOKかは不明ですが) (1).exeの削除・・・私は[H_KEYCLASSES_ROOT]しかしませんでしたが足りてますか? (2)assoc .exe=exefile ・・・拡張子の関連付け (3)ftype exefile="%1" %* ・・・タイプ設定 これを実行し、再起動すれば良いのでは考えております。 よろしくお願いします。 ※OKWAVEより補足:「富士通FMV」についての質問です。

  • 以下の意味がわかりません。レジストリー

    以下のこんな感じでレジストリファイルを作れと指示があるのですが、なんのことやらさっぱりわかりません。 何を起動してどうするか教えてもらえませんか? REGEDIT4 [HKEY_CLASSES_ROOT\htm.dummy] [HKEY_CLASSES_ROOT\.htm] @="htm.dummy" [HKEY_CLASSES_ROOT\http\shell] @="Sleipnir" [HKEY_CLASSES_ROOT\http\shell\Sleipnir] @="Sleipnir" [HKEY_CLASSES_ROOT\http\shell\Sleipnir\command] @="\"C:\\Program Files\\Sleipnir\\bin\\Sleipnir.exe\" \"%1\""