二重起動を禁止して前の起動を終了させるには?

解決


st  2006-04-10 05:22:10  No: 130914

二重起動を禁止することはできました。
  if App.PrevInstance then
    msgbox "既に起動されています。"
    end
  end if
このようにやると今回の起動が終了するのですが
そうではなく前回のを終了させ新たに起動させたいのですが
どのようにすればよいのでしょうか?


ガッ  2006-04-10 08:18:42  No: 130915

案1
  起動専用のプログラムを作り、
  既に起動している「本物のプログラム」を殺す処理をしてから、
  新たに本物のプログラムを起動する
  (プロセス名などで判断すればいいかな?)

案2
  ユーザに注意を促して、自力でやってもらう

…たぶんもっと良い案があるはず…


123  2006-04-10 09:44:53  No: 130916

案3
自分のフォームにDDEソースとディスティネーションとなる2つのテキストボックスを貼り付け、起動したことを知らせてやる。


K.J.K.  2006-04-10 17:01:48  No: 130917

仕様としてはどうなんでしょう?

前のインスタンスを終わらせて、今のインスタンスを継続し
なければならない理由は何なのでしょうか?
前のを続けて今のを終わらすのだとどうマズいのでしょうか?


KG  2006-04-10 20:15:02  No: 130918

App.TitleでWindowを検索してから
終了Messageを送って終了するという手法で
同様のことをやったことがあります。:)


もげ  2006-04-10 21:37:34  No: 130919

メッセージボックスで「複数起動不可」を表示するんじゃなくて、
既に先に起動しているほうのアプリケーションを最前面へ表示させる
という解決法でよければ、
http://www31.ocn.ne.jp/~heropa/vbn.htm
の「重複起動をさせない。」というトピックでどうですか?


st  2006-04-11 08:26:10  No: 130920

説明不足でした。
すみません。
MP3プレイヤーを作りたいと思いました。
ファイルの関連付けをしてファイルが渡されるとタスクトレイに常駐して
音楽を鳴らしたかったのです。
そこまではできたのですが、Aという曲を聴いている時に
Bという曲を渡すとプレイヤーが2つになりAB曲が重なって
演奏されました。
そうではなくAを終了させBだけを演奏されたかったのです。

    If App.PrevInstance Then
        lRet = FindWindow(vbNullString, "Player")
        Call PostMessage(lRet, WM_QUIT, 0, 0)
    End If

こんな感じにもやってみたのですが駄目でした。
何か良い方法はありますか?


あっきー  2006-04-11 08:56:38  No: 130921

レス読んだ?
沢山提示されてるんじゃない?


我龍院忠太  2006-04-11 17:11:22  No: 130922

要するにPlay中はMessageを受け取らないと言うことですね。
SendMessageでもだめなんだろうな、きっと。
私はMCIコマンドを使って、Playeを自作しましたが。


K.J.K.  2006-04-11 18:31:06  No: 130923

「ファイルの関連付け」もなされているのならば、DDEに
ついて調べることをお勧めします。


通ってみた  2006-04-12 01:19:45  No: 130924

むしろ曲Bの情報を前に起動しているアプリに送信して、曲Aを終了させ、曲Bを再生させるのが自然なのではないかと・・・


vcwata  2006-05-01 03:08:33  No: 130925

超初心者です。LBELを編集できる方法があれば教えてください。


vcwata  2006-05-01 03:11:29  No: 130926

すみません。あわてました。LBELではなくてLABELでした。


通ってみた  2006-05-01 10:27:34  No: 130927

何故このスレッドを使ったのか謎ですが、

Label1 = "あいうえお"

とか?
だとしたらまずは質問よりも勉強が先かと


ぶぶ  2006-05-01 18:08:20  No: 130928

vcwataさんへ
ここはstさんの「二重起動を禁止して前の起動を終了させるには?」について
話す場ですので質問は別に立ててください。
質問する際には、言語のバージョン等も書くようにしてくださいね


vcwata  2006-05-02 05:56:12  No: 130929

変な者が紛れ込んで申し訳ありませんでした。(赤面)


ぶぶ  2006-05-02 06:10:14  No: 130930

vcwataさんへ
どうしてあなたが解決のチェックをつけるのですか?
ここはstさんのスレですと以前も申し上げています。
それともvcwataさん=stさんなのでしょうか?

スレ主でないあなたがチェックをつけるのはおかしいでしょう?


vcwata  2006-05-03 00:27:01  No: 130931

追加発言の所に「解決時は質問者本人がここをチェックしてください。」と書いてありましたのでチェックしたのですが。。。


ぶぶ  2006-05-03 01:17:30  No: 130932

追加発言の所に「解決時は質問者本人がここをチェックしてください。」と書いてありましたのでチェックしたのですが。。。
ここのスレを作成した人=(stさん)が質問者本人では?
だからvcwataさん=stさんかどうかお聞きしたのです。
同一人物であるなら失礼致しました。
ですが、名前が別ですので、vcwataさんはここのスレをつくられた
質問者本人ではないと考えています。だからあなたが解決をつけられるのは
変です


vcwata  2006-05-03 06:33:55  No: 130933

やっと分かりました。ここのレスはstさんが質問者でそれに皆さんが回答しておられたのですね。変なのが紛れ込んで重ね重ね申し訳ありませんでした。お許しください。


  2006-05-03 18:39:06  No: 130934

レスじゃなくてスレですね。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加