Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
使用の停止(?)
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=12431#CommentId33255
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
nin
 (社会人)
投稿日時
2013/11/18 12:56:47
なかなかあきらめない回答いいですね・・・。
で、素人ジジイながら、考えてみました
大初心者様もインターネットをされているので、プロパイダ契約されて
いると思います。通常、メールと、ホームページのエリアが付属で付いて
いると思います
ホームページのエリアに更新情報を置いて、プログラム起動時に、チェック
するようにします
通信手段としては、ホームページのアクセスで使う、HTTPプロトコロルか
データのアップダウンで使う、FTPプロトコロルかのどちらかを利用する
ことになります。(HTTPのほうが、ブロックされにくいので、問題は少ない
と思います)
一応FTPでの手順では、以下のような感じです
更新情報を一旦ファイルとしてダウンロードしてから開いています
多分、一旦ファイルにしなくてもいいように思いますが、その編は、詳しく
ありません。
ftpで通信できる環境があるのでしたら、まず、フリーのftpツールを使って
通信できるか確認してください
バージョン情報を記載したファイル
version.txt を準備します
中身は、数字のみ (数字の1~)
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim FTPEr as Integer
FTPEr = Ftpdl("version.txt","version.txt")
IF FTPEr = 0 Then
'ダウンロードファイルを読み込みます
If System.IO.File.Exists(Application.StartupPath + "\version.txt") Then
Dim Reader As New IO.StreamReader(Application.StartupPath + "\version.txt")
Dim version as Integer = Reader.ReadLine
Reader.Close()
If version >現在のバージョン Then
MsgBox("最新バージョンが存在します")
起動させない情報を入れる
End if
Else
MsgBox("ファイルが存在しません")
End If
Else
Msgbox("ダウンロードエラーです")
End If
End Sub
Private Function Ftpdl(ByVal FileNam As String, ByVal LFileNam As String) as Integer
Dim UserName As String = "ログインユーザ名"
Dim UserPass As String = "ログインパスワード"
Dim ServerName As String = "ftp://xxxxx あなたのホームページのアドレス" & FileNam
Dim u As Uri
u = New Uri(ServerName)
'ダウンロードしたファイルの保存先
Dim downFile As String = Application.StartupPath + "\" + LFileNam
'FtpWebRequestの作成
Dim ftpReq As System.Net.FtpWebRequest = _
CType(System.Net.WebRequest.Create(u), System.Net.FtpWebRequest)
'ftpReq.ReadWriteTimeout = Val(Form1.TextBox18.Text)
'ftpReq.Timeout = Val(Form1.TextBox19.Text)
'ログインユーザー名とパスワードを設定
ftpReq.Credentials = New System.Net.NetworkCredential(UserName, UserPass)
'MethodにWebRequestMethods.Ftp.DownloadFile("RETR")を設定
ftpReq.Method = System.Net.WebRequestMethods.Ftp.DownloadFile
'要求の完了後に接続を閉じる
ftpReq.KeepAlive = True
'ASCIIモードで転送する
ftpReq.UseBinary = False
'PASSIVEモードを無効にする
ftpReq.UsePassive = True
On Error GoTo nuke
'FtpWebResponseを取得
Dim ftpRes As System.Net.FtpWebResponse = _
CType(ftpReq.GetResponse(), System.Net.FtpWebResponse)
'ファイルをダウンロードするためのStreamを取得
Dim resStrm As System.IO.Stream = ftpRes.GetResponseStream()
'ダウンロードしたファイルを書き込むためのFileStreamを作成
Dim fs As New System.IO.FileStream( _
downFile, System.IO.FileMode.Create, System.IO.FileAccess.Write)
'ダウンロードしたデータを書き込む
Dim buffer(1023) As Byte
While True
Dim readSize As Integer = resStrm.Read(buffer, 0, buffer.Length)
If readSize = 0 Then
Exit While
End If
fs.Write(buffer, 0, readSize)
End While
fs.Close()
resStrm.Close()
'閉じる
ftpRes.Close()
ErrFTP = 0
Return ErrFTP
Exit Sub
nuke:
ErrFTP = 1
Return ErrFTP
End Sub