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

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

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

Re[5]: 絶対パスから拡張子を抜いたファイル名の取得、プロセス名の取得


(過去ログ 133 を表示中)

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

■78359 / inTopicNo.1)  絶対パスから拡張子を抜いたファイル名の取得、プロセス名の取得
  
□投稿者/ straf (11回)-(2016/01/11(Mon) 16:03:09)

分類:[C#] 

2016/01/11(Mon) 16:03:36 編集(投稿者)

Visual Studio 2015を使いC#で開発を行っております。

絶対パスからソフトを起動し、そのソフトのプロセス名を取得したいのですがどのようにすればいいのでしょうか?
例えばitunesの場合
System.Diagnostics.Process.Start(@"C:\\Program Files\\iTunes\\iTunes.exe");
で起動できるのですが、プロセス名の取得方法がわかりません。

教えていただきたいのは絶対パスから.exeを抜いたプロセス名を取り出す方法と、ソフト名とプロセス名が全く違う場合のプロセス名の取得方法です。

記述方法がわかる方いらっしゃれば教えていただきたいと思います。

引用返信 編集キー/
■78360 / inTopicNo.2)  Re[1]: 絶対パスから拡張子を抜いたファイル名の取得、プロセス名の取得
□投稿者/ Hongliang (392回)-(2016/01/11(Mon) 16:25:24)
> 絶対パスから.exeを抜いたプロセス名を取り出す方法
System.IO.Pathクラスに、GetFileNameWithoutExtension静的メソッドがあります。

> ソフト名とプロセス名が全く違う場合のプロセス名の取得方法です。
ソフト名・プロセス名というのは具体的にどこに表示されている物を指していますか?
引用返信 編集キー/
■78361 / inTopicNo.3)  Re[2]: 絶対パスから拡張子を抜いたファイル名の取得、プロセス名の取得
□投稿者/ straf (12回)-(2016/01/11(Mon) 16:53:19)
No78360 (Hongliang さん) に返信
言葉が足りずに申し訳ございません。
ランチャーとなっており、起動した後にメインのexeを起動するようになっているので起動するソフト自体のプロセスとメインのプロセス名が違うものになっているのですが、やはりそのメインのプロセスは取得できないものですかね?
引用返信 編集キー/
■78365 / inTopicNo.4)  Re[3]:
□投稿者/ Azulean (574回)-(2016/01/11(Mon) 18:33:23)
2016/01/11(Mon) 18:45:48 編集(投稿者)

何がやりたいのかイマイチわからないのですが…。
なぜそれが必要なのかというあたりをもっと具体的に説明してもらった方がよりよい助言をもらいやすいと思います。

No78361 (straf さん) に返信
> ランチャーとなっており、起動した後にメインのexeを起動するようになっているので起動するソフト自体のプロセスとメインのプロセス名が違うものになっているのですが、やはりそのメインのプロセスは取得できないものですかね?

※ここから先書き直しました。

<起動した exe からさらに別の exe が起動される場合にその最後の exe を知りたい場合>
難しいと思います。
Process Explorer のようなものを作れる技術を身につければ追えるかもしれませんが。

<ファイル名とアプリ名が違う場合の対処についての Q であれば>
タスクマネージャーの詳細タブに出てくるようなファイル名と、ウィンドウタイトルが違う場合の話ですか?
プロセスからソフトウェアの名称を得るとしたら、そのプロセスのウィンドウのタイトル、あるいはバージョンリソースが考えられます。
ただ、それらがあなたの求めるソフトウェア名称と必ず一致するとは限りません。
ウィンドウタイトルは状況次第で「無題」とか余分な文字列がつきますし、バージョンリソースは作者次第で変わりうるためです。
引用返信 編集キー/
■78367 / inTopicNo.5)  Re[4]: 絶対パスから拡張子を抜いたファイル名の取得、プロセス名の取得
□投稿者/ straf (13回)-(2016/01/11(Mon) 18:44:11)
No78365 (Azulean さん) に返信
> 一般論として、自分が起動した exe がさらに別の exe を起動するような構成となっている場合、その起動された exe を自分が把握することは難しいと思います。
> そもそも、1 つとは限りませんし、それを知ったところで何をしたいのかもわからないので…。

ですよね。違う方法を探してみます。

自分が使う目的でランチャーアプリを作ろうとしてたのですが、その対象のソフト自体がゲームの起動ランチャーの為、強制終了などがボタン一クリックで出来なかったしだいです。

コード自体に直接プロセス名を当てれば終了は一応可能なので今はあきらめてそうします。
解決済み
引用返信 編集キー/
■78368 / inTopicNo.6)  Re[5]: 絶対パスから拡張子を抜いたファイル名の取得、プロセス名の取得
□投稿者/ Azulean (576回)-(2016/01/11(Mon) 18:54:12)
No78367 (straf さん) に返信
> 自分が使う目的でランチャーアプリを作ろうとしてたのですが、その対象のソフト自体がゲームの起動ランチャーの為、強制終了などがボタン一クリックで出来なかったしだいです。

やるとすれば、EnumWindows/FindWindow でウィンドウ名を絞り込んで、GetWindowThreadProcessId でプロセス ID を得て、Process.GetProcessById とかかなぁ。
解決済み
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -