VisualBasic6.0のプログラムで、特定の機能のみタイマーで働かせることはできますか?具体的には、あるプログラムの中で下記のようなFTPのアップロードのボタンのみを夜中の3時に毎日起動するようなことを考えています。

exeの機能全部を起動&実行ではなく、FTP操作のボタンのみを実行したいと思っています。
下記のコードは手動では動く状態です。

-----------------------------------
Private Sub Command4_Click()
’ ファイルアップロードのサンプル

Inet1.URL = ”ftp.hogehoge.jp” ’ FTPアドレスを指定
Inet1.UserName = ”XXXXXXXX” ’ ユーザ名を指定
Inet1.Password = ”XXXXXXXX4” ’ パスワードを指定
Inet1.Protocol = icFTP ’ 接続方法を指定

Inet1.Execute , ”CD homepage” ’ ディレクトリの変更
Do While Inet1.StillExecuting
DoEvents ’ 前の処理が終わるまで待機
Loop
’ アップロード処理を行う
Inet1.Execute , ”PUT C:¥WINDOWS¥MEDIA¥dummy.txt”

End Sub

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2005/12/05 15:46:01
  • 終了:--

回答(2件)

id:Nanja No.1

Nanja回答回数213ベストアンサー獲得回数42005/12/05 15:55:07

ポイント25pt

http://www.hatena.ne.jp/1133765161#

人力検索はてな - VisualBasic6.0のプログラムで、特定の機能のみタイマーで働かせることはできますか?具体的には、あるプログラムの中で下記のようなFTPのアップロードのボタンのみを夜中..

URLはダミーです。


・タイマーコントロールを貼り付ける

・Intervalを6000(1分)にする

・タイマーイベントで時刻を求め、指定時刻になれば

   Call Command4_Click

 を実行させる


というようにすれば可能です。

id:Nanja No.2

Nanja回答回数213ベストアンサー獲得回数42005/12/05 16:14:35

ポイント25pt

ひとつ忘れていました。

タイマーイベントで該当の時刻であった場合に、タイマーのEnabledをFalseにする必要があります。

こうしないと、処理中にまたタイマーイベントが発生する可能性があります。

サンプル的には下記のコーディングを参考にしていただければ幸いです。


Private Sub Form_Load()


 Me.Timer1.Interval = 60000

End Sub


Private Sub Timer1_Timer()


 Dim dtTime As Date

 dtTime = Time

 If dtTime >= #3:00:00 AM# And dtTime <= #3:01:00 AM# Then

  Me.Timer1.Enabled = False

  Call Command4_Click

 End If

End Sub

id:izunagonago

ありがとうございます。

早速書いてみました。

ところで、実行できたかどうかを表示するにはどうしたらよいでしょうか?

2005/12/05 16:27:27
  • id:Nanja
    タイマーイベントかコマンドボタンでの処理後に

    2回回答しましたので、いわしに書きます。

    MsgBoxなどで画面表示すればいいでしょう。
    または、フォーム上にテキストボックスやラベルで終了した旨を表示すればいかがでしょうか。
    このあたりは、アプリケーションのデザインや運用方法にもよりますので、一概にはなにがいいとは言い切れませんが・・・

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません