Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


36474 / 76738 ←次へ | 前へ→

【45445】アプリケーション名(クラス)が起動するたびに変わる場合の判断方法
質問  FJ  - 06/12/24(日) 23:47 -

引用なし
パスワード
   特定アプリケーションの複数回起動を防ぐため、アプリケーションが起動しているかチェックし、アプリケーションが起動していない時のみアプリケーションを起動するマクロを作成したいのですが、アプリケーション名(クラス名)が、起動のたび変わるため、下記ロジックで対応できません。どうしたらよいか教えてください。

【ロジック内容】

'定義宣言
Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
  (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Public Const strClassName As String = "SciCalc@@@@"

Public Const strEXEName As String = "C:\Program Files\xxxxx.exe"

Sub S_calc()
  Dim rc As Long
  Dim lngProcessId As Long  'Shell関数の戻り値
   
  rc = FindWindow(strClassName, vbNullString)
          
  'ウィンドウハンドルが取得できた場合は起動しない
  If rc <> 0& Then
    MsgBox "xxxxはすでに起動しています!!"
    Exit Sub
  End If

  lngProcessId = Shell(strEXEName, vbNormalFocus)
End Sub

@@@@の部分が起動のたびに変更します。起動のたびに変わるため、起動チェック「rc = FindWindow(strClassName, vbNullString)」のステップが思ったような動きをしてくれません。ワイルドカード(*)を使ってみたのですが、うまくいきませんでした。何とかこのようなアプリケーションの起動チェックを行う方法はないでしょうか??ご教授よろしくお願いします。
0 hits

【45445】アプリケーション名(クラス)が起動するたびに変わる場合の判断方法 FJ 06/12/24(日) 23:47 質問
【45446】Re:アプリケーション名(クラス)が起動する... Kein 06/12/25(月) 0:12 発言
【45447】Re:アプリケーション名(クラス)が起動する... Blue 06/12/25(月) 1:04 発言

36474 / 76738 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free