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

Visual Basic の初心者です。

VBから他のプログラムを起動させるには(例えばノートパッドを起動させる場合)

System.Diagnostics.Process.Start("notepad.exe")

とアプリケーション名を記載することで可能だと思いますが、例えばこれを2分毎に実行させたい場合には、どのようにコードを書くことが、ベストでしょうか。

初心者にもわかりやすい方法をご教授のほどよろしくお願いいたします。

A 回答 (3件)

Timerコンポーネントを使用します。


ツールボックスのコンポーネント内にあるTimerをフォームへドラッグします。
そのドラッグしたTimerのプロパティを開き
intervalに値を設定します。ミリ秒単位なので、1秒なら1000,2分なら1000*60*2=120000を指定します。
enabledにtrueを設定します。
そのTimerをダブルクリックすると
以下のようなプロシージャが作られます。
Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick
ここへ2分ごとに実行したい処理を記述します。今回の例なら
   System.Diagnostics.Process.Start("notepad.exe") 等
End Sub
上記のプロシージャは、windowsから2分ごとに呼び出されます。
    • good
    • 0
この回答へのお礼

早速のご回答ありがとうございます。

補足としての質問なのですが、2分経過後にプログラムA、その後1分経過後にプログラムBを起動し、このサイクルを繰り返した場合はどのように実施すればよろしいでしょうか。

お礼日時:2016/10/05 17:21

>補足としての質問なのですが、2分経過後にプログラムA、その後1分経過後にプログラムBを起動し、こ>のサイクルを繰り返した場合はどのように実施すればよろしいでしょうか。



1.Timerを1分間隔で呼び出すようにします。
2.カウンターを設けます。
3.フォームの起動時にカウンターを0に設定します。
4.Timer1_Tickの先頭で、タイマーに1加算します。
カウンターが2のとき、Aを実行し、
カウンター3のとき、Bを実行し、タイマーを0にします。

Timer1_Tickは以下のようになります。
Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick
カウンター=カウンター+1
if カウンター=2 then
プログラムAの起動
end if
if カウンター=3 then
プログラムAの起動
カウンター=0
end if
End Sub

カウンターは、Timer1_Tickの中で宣言しないでください。(グローバル領域で宣言します)
    • good
    • 0
この回答へのお礼

下記コードを書いたのですが、Button1を押すと1回はBeep()とnotepadを起動するのですが、繰り返しがなされません。

どこに不具合があるのでしょうか。

Public Class Form1
Dim count1 As Integer

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

Timer1.Start()

End Sub

Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
count1 = count1 + 1
If count1 = 2 Then
Beep()
End If
If count1 = 3 Then
System.Diagnostics.Process.Start("notepad.exe")
End If
End Sub

End Class

お礼日時:2016/10/05 21:13

No2です。


一点、誤りがありました。
if カウンター=3 then
プログラムAの起動・・・・誤り
カウンター=0
end if
上記のプログラムAの起動 は、
プログラムBの起動 が正しいです。
    • good
    • 0
この回答へのお礼

早速のご回答ありがとうございます。
プログラミングを行ってみます。

お礼日時:2016/10/05 19:53

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