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

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

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

Re[5]: .NETでメールソフトの起動確認を行いたい


(過去ログ 123 を表示中)

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

■73466 / inTopicNo.1)  .NETでメールソフトの起動確認を行いたい
  
□投稿者/ さかな (1回)-(2014/09/29(Mon) 19:52:34)

分類:[.NET 全般] 

.NETで、Livemailの起動確認をする為に、下記コードで作成しました。
vs2010で作成しています。

Public Class Form1

'livemail起動確認

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click

If Process.GetProcessesByName("wlmail.exe").Length > 0 Then
MsgBox("livemail動いています!")
Else
MsgBox("livemail動いていません!")
End If

End Sub

End Class

Livemialを起動していても、動いていません!と表示されたり
Livemialを起動していなくても、動いています!と表示されたり
あべこべな状態です

起動していれば、動いています!
起動していないなら、動いていません! と表示させたく思います



ご教授下さい
引用返信 編集キー/
■73467 / inTopicNo.2)  Re[1]: .NETでメールソフトの起動確認を行いたい
□投稿者/ Jitta (154回)-(2014/09/29(Mon) 22:38:57)
No73466 (さかな さん) に返信
> .NETで、Livemailの起動確認をする為に、下記コードで作成しました。
> vs2010で作成しています。
>
> Public Class Form1
>
> 'livemail起動確認
>
> Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
>
> If Process.GetProcessesByName("wlmail.exe").Length > 0 Then
> MsgBox("livemail動いています!")
> Else
> MsgBox("livemail動いていません!")
> End If
>
> End Sub
>
> End Class
>
> Livemialを起動していても、動いていません!と表示されたり
> Livemialを起動していなくても、動いています!と表示されたり
> あべこべな状態です
>
> 起動していれば、動いています!
> 起動していないなら、動いていません! と表示させたく思います
>
>
>
> ご教授下さい

どのような環境で、どのようにして、起動している/していないを確認しましたか?
とっさに思いつく状況として、サーバーで、他のアカウントがリモートログオンしてメールソフトを起動している場合、自分は起動していなくても「起動しています」と表示されるかもしれません。
引用返信 編集キー/
■73470 / inTopicNo.3)  Re[2]: .NETでメールソフトの起動確認を行いたい
□投稿者/ さかな (2回)-(2014/09/30(Tue) 08:08:37)
回答ありがとうございます

win7のクライアントPCで、livemailを立ち上げます
.NETで作成したdebugフォルダにある、exeファイルからボタン1をクリックして、
確認しています

livemailを立ち上げていても、動いていませんと表示され、
livemailを立ち上げていなくても、動いていますと表示されます

確認した事は以上になります

No73467 (Jitta さん) に返信
> ■No73466 (さかな さん) に返信
>>.NETで、Livemailの起動確認をする為に、下記コードで作成しました。
>>vs2010で作成しています。
>>
>> Public Class Form1
>>
>>'livemail起動確認
>>
>>Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
>>
>>If Process.GetProcessesByName("wlmail.exe").Length > 0 Then
>>MsgBox("livemail動いています!")
>>Else
>>MsgBox("livemail動いていません!")
>>End If
>>
>>End Sub
>>
>>End Class
>>
>>Livemialを起動していても、動いていません!と表示されたり
>>Livemialを起動していなくても、動いています!と表示されたり
>>あべこべな状態です
>>
>>起動していれば、動いています!
>>起動していないなら、動いていません! と表示させたく思います
>>
>>
>>
>>ご教授下さい
>
> どのような環境で、どのようにして、起動している/していないを確認しましたか?
> とっさに思いつく状況として、サーバーで、他のアカウントがリモートログオンしてメールソフトを起動している場合、自分は起動していなくても「起動しています」と表示されるかもしれません。
引用返信 編集キー/
■73471 / inTopicNo.4)  Re[3]: .NETでメールソフトの起動確認を行いたい
□投稿者/ ぽぴ王子 (12回)-(2014/09/30(Tue) 10:42:23)
ぽぴ王子 さんの Web サイト
No73470 (さかな さん) に返信
> 回答ありがとうございます
>
> win7のクライアントPCで、livemailを立ち上げます
> .NETで作成したdebugフォルダにある、exeファイルからボタン1をクリックして、
> 確認しています
>
> livemailを立ち上げていても、動いていませんと表示され、
> livemailを立ち上げていなくても、動いていますと表示されます
>
> 確認した事は以上になります

「動いています」と表示されたときに、タスクマネージャーを起動して
プロセスタブの「すべてのユーザーのプロセスを表示」ボタンを押した
状態で、一覧の中に wlmail.exe が存在していますでしょうか。
存在していたら、プログラムはそれを見て「動いている」と判断している
のだと思います。

Jittaさんが書かれていた

>とっさに思いつく状況として、サーバーで、他のアカウントがリモートログオンしてメールソフトを起動している場合、自分は起動していなくても「起動しています」と表示されるかもしれません。

は(さかなさんの環境がわからないのでなんとも言えませんが)例えば
複数のユーザーがログインした状態で、さかなさん以外の別のログインユーザー
がLiveMailを起動していた場合、このプログラムでは起動していると
判断される、という話をしています。
もし他のユーザーがいなくても、LiveMailが画面上に表示されていない
状態で裏で動作しているとしたら、やはり起動していると判断される
のではないかと思います。

だとすると、(さかなさんにとって)起動しているかどうかはこれだけでは
判断できず、もう少し詳しく調べてみる必要があるでしょうね。
引用返信 編集キー/
■73472 / inTopicNo.5)  Re[4]: .NETでメールソフトの起動確認を行いたい
□投稿者/ Hongliang (237回)-(2014/09/30(Tue) 10:47:14)
ところで、Process.GetProcessesByNameで指定する名前に、.exeを付けたら駄目だったような。
引用返信 編集キー/
■73477 / inTopicNo.6)  Re[5]: .NETでメールソフトの起動確認を行いたい
□投稿者/ さかな (3回)-(2014/09/30(Tue) 14:28:01)
No73472 (Hongliang さん) に返信
> ところで、Process.GetProcessesByNameで指定する名前に、.exeを付けたら駄目だったような。

回答いただいた皆様

livemailを立ち上げると、wlmailとwlcommというプロセスが使われています。
livemailを閉じた直後は、画面上から消えていても(閉じられていても、)プロセスが残っている事が多く、
提示したコードでは2つのプロセスに対応していない為エラーになったのではないか?と思います。

もう少し詳しく調査を行いたいと思います。

ありがとうございました
解決済み
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -