C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[4]: アクセスしているプログラムを調べる方法


(過去ログ 173 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■99353 / inTopicNo.1)  アクセスしているプログラムを調べる方法
  
□投稿者/ 荒井 (1回)-(2022/03/20(Sun) 21:26:36)

分類:[.NET 全般] 






VB.NETに関する質問です。


プログラム上でファイル名をリネームしようとした時、
他のプログラムで開かれているとエラーになります。

これを予めチェックするにはTry Catchで実行すれば良いと思います。

更に、どのプログラムで開いているかも突き止めたいのですが
どのようにすれば良いですか?

https://dobon.net/vb/dotnet/process/getprocesses.html

この辺のコードを使えば良いのではないかと推測しますが
どうすれば良いでしょうか?




引用返信 編集キー/
■99354 / inTopicNo.2)  Re[1]: アクセスしているプログラムを調べる方法
□投稿者/ KOZ (229回)-(2022/03/21(Mon) 05:15:52)
No99353 (荒井 さん) に返信
> プログラム上でファイル名をリネームしようとした時、
> 他のプログラムで開かれているとエラーになります。
> これを予めチェックするにはTry Catchで実行すれば良いと思います。
> 更に、どのプログラムで開いているかも突き止めたいのですが
> どのようにすれば良いですか?

C#ですが

「ファイルを使用中のアプリをC#から調べる」
https://8thway.blogspot.com/2014/05/restartmanager.html

Vista 以降で使えるようです。

XP以前でも使えるようにするなら、

「Delphi - プログラムからファイルにアクセスしているプロセスを見つける」
https://jpcodeqa.com/q/f551aa86a836850777d5b7b1ce585ab7

「Matrix86/enumerateHandles」
https://github.com/Matrix86/enumerateHandles

あたりが参考になるでしょう。

残念ですが、VB のサンプルは見つけられませんでした。

引用返信 編集キー/
■99357 / inTopicNo.3)  Re[2]: アクセスしているプログラムを調べる方法
□投稿者/ 荒井 (2回)-(2022/03/21(Mon) 10:51:00)
ありがとうございます。

翻訳サイトを利用することで
VB.NETでも使用できることが確認できました。

あと、ファイルの場合にはうまくいっているのですが、
フォルダーが使用中の場合にはどのように調べたら良いですか?

一つずつフォルダー内のファイルを調べていくしかないでしょうか?




たまに、VB.NET上で

Directory.Move(Folder1, Folder2)

というコマンドでフォルダー名を変更しようとしても
エラーになるのに
エクスプローラー上だと問題無く変更できる場合があります。

全てのプログラムを閉じたとしても
この状態になるとVB.NETからはフォルダー名を変更することができなくなります。

これは、エクスプローラーによってフォルダー内のいずれかのファイルが使用中だと考えるべきなのでしょうか?

エクスプローラー上からは変更できるのなら
何かしらの方法でリネームできそうな気がするのですが
他に方法はございますでしょうか?


引用返信 編集キー/
■99358 / inTopicNo.4)  Re[3]: アクセスしているプログラムを調べる方法
□投稿者/ KOZ (230回)-(2022/03/21(Mon) 18:14:50)
No99357 (荒井 さん) に返信
> あと、ファイルの場合にはうまくいっているのですが、
> フォルダーが使用中の場合にはどのように調べたら良いですか?
> 一つずつフォルダー内のファイルを調べていくしかないでしょうか?

フォルダを調べるのであれば、2番目の方法(開かれたファイルハンドルを列挙し、ファイル名をチェックする)がよさそうです。
以下の問題に関しても対応できますよね。

> たまに、VB.NET上で
> Directory.Move(Folder1, Folder2)
> というコマンドでフォルダー名を変更しようとしても
> エラーになるのに
> エクスプローラー上だと問題無く変更できる場合があります。
>
> 全てのプログラムを閉じたとしても
> この状態になるとVB.NETからはフォルダー名を変更することができなくなります。
>
> これは、エクスプローラーによってフォルダー内のいずれかのファイルが使用中だと考えるべきなのでしょうか?
>
> エクスプローラー上からは変更できるのなら
> 何かしらの方法でリネームできそうな気がするのですが
> 他に方法はございますでしょうか?
>
>
引用返信 編集キー/
■99378 / inTopicNo.5)  Re[4]: アクセスしているプログラムを調べる方法
□投稿者/ 荒井 (3回)-(2022/03/26(Sat) 17:35:24)
ありがとうございます。

二つ目の方法は
Delphiで書かれているようです。

検索して翻訳サイトを探してみましたが
見つかりませんでした。

VBかC#で書かれたサイトをご存じないでしょうか?

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -