プロが教えるわが家の防犯対策術!

2005の.netです。
  If notepadが起動していたら Then
・・・
Else
・・・
End If
というのを作りたいのですが、
タスクマネージャのプロセスから確認するというのでしょうか、
直接、起動しているかの確認をさせたいのですが、
教えてもらえないでしょうか。

A 回答 (2件)

Lengthは文字数ではありませんよ



この場合のLengthは GetProcessesByNameメソッドが返す Process型の配列の個数を表します

MSDNなどのレファレンスでメソッドが何を返してくるのかを確認しましょう

MSDNより引用 ---
Process.GetProcessesByName メソッド (String)
が題目

Visual Basic (宣言)
Public Shared Function GetProcessesByName ( _
processName As String _
) As Process()

Visual Basic (使用法)
Dim processName As String
Dim returnValue As Process()

returnValue = Process.GetProcessesByName(processName)

ここまで
宣言の方の as Process() となっている部分に注目します
as の後には返されるデータなどの型名がきます
一番最後に () が付く場合は その型名の配列が返されることになります

関数名を 英単語で分解してみると Get Process es By Name といった具合になります
Get : 何かをもらう
Process : プロセス
es : 複数形
By : なにかによって
Name : 名前

この訳を そのままつなげてみると
何かをもらう プロセス 複数形 何かによって 名前 ・・・
日本語的にすると
『名前によって複数のプロセスを取得する』といえるでしょう
    • good
    • 0
この回答へのお礼

本当に最後までご丁寧にありがとうございました。
この件に関してはばっちり理解できました。
MSDNを見ていてもあんまり書いてることがわからないんですよね。
理解力のない私が悪いと思うんですが・・・
こういう風な説明だと私的にはすごくわかりやすくて助かります。
本当にありがとうございました。

お礼日時:2008/09/26 09:58

System.Diagnostics.ProcessのGetProcessesを使って現在起動しているプロセスを取得できるようです



また、特定のプロセス群を取得したいのであれば
Process.GetProcessesByName("notepad")で Processの配列が取得できます

VB.NET付属のMSDNで GetProcessesやGetProcessesByName等を参照してみてください

コード冒頭に
Imports System.Diagnostics
を追加

if Process.GetProcessesByName("notepad").Length > 0 then
  MsgBox "メモ帳起動中"
end if
といった具合です

この回答への補足

ありがとうございます。
見事に問題解決しました。

ちなみになんですけど、
if Process.GetProcessesByName("notepad").Length > 0 then の
.Lengtは文字数の取得ですよね?
この場合だと、
7文字のnotepadという文字がプロセスにあればという解釈でいいのですか?

補足日時:2008/09/25 19:34
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています