2007年2月28日水曜日

[VB.NET] 指定プロセス名をすべて終了させる

指定のプロセス名をすべて終了させてみます。

' 対象プロセス名は"Main"
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  Dim p As New System.Diagnostics.Process
  Dim inst As Process
  Dim myProcess() As Process

  myProcess = System.Diagnostics.Process.GetProcessesByName("Main")
  For Each inst In myProcess
    p = System.Diagnostics.Process.GetProcessById(inst.Id)
    p.Kill()
  Next

End Sub

2007年2月15日木曜日

[VB.NET] WMIクラスの自動コード生成

MgmtClassGen.exeを利用してWMIのマネージコードを作成できます。
「C:\Program Files\Microsoft Visual Studio .NET 2003\SDK\v1.1\Bin」とか「C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin」この辺にいます。

ノートパソコンのバッテリー関係の情報を取得するクラス生成の方法は以下のとおりです。

MgmtclassGen Win32_Battery /P c:\Battery.vb /L VB

オプションは /P <ファイルパス>、/L <言語>、ほかにN、O、M、U、PWがあるらしいです。
詳しくは MgmtClassGen /? で。

後はこのあたりで。

2007年2月13日火曜日

[VB.NET] メールの送信フォームを起動する

MAPIって言うものを使うと、MAPIに関連づいたメールクライアント(Outlook ,Outlook Expressなど)の送信フォームを起動できます。

まず、画面にMAPISessionとMAPIMessagesを貼り付けて。。。

----------------
Me.AxMAPIMessages1.SessionID = Me.AxMAPISession1.SessionID

With Me.AxMAPIMessages1
  'メッセージを作成
  .Compose()
  'あて先
  .RecipDisplayName = "[DisplayName]"
  'メールアドレス
  .RecipAddress = "[mailaddress]"
  'Subject
  .MsgSubject = "サブジェクト"
  '本文
  .MsgNoteText = "本文"

  '添付ファイル(複数)
  For i As Int32 = 0 To filelist.Count - 1
    .AttachmentIndex = i
    .AttachmentPathName = DirectCast(filelist.Item(i), FileInfo).FullName
    .AttachmentName = "Flie" & (i + 1).ToString
    'コレが重要。スペースが必要。
    .MsgNoteText = " "
    'NOTE .MsgNoteText = " " -> KB173853 in microsoft
  Next

  Try
    .Send(True)
  Catch ex As System.Runtime.InteropServices.COMException
    Debug.WriteLine("メール送信時のキャンセルでComExceptionが発生っぽい")
    Debug.WriteLine(ex)
  End Try
End With

Me.AxMAPISession1.SignOff()

2007年2月1日木曜日

[技術メモ] Vista + Visual Studio .Net 2003

結論から言いますと、VistaでVS2003は使えません。
いや、使えるんですけどMSのサポート外らしいです。
http://www.microsoft.com/japan/msdn/vstudio/support/windowsvista/faq/

ほんとメイワクな話です。