• ベストアンサー

こんなのってできますか?

Visual Basic初心者です。 例えばCドライブにVBというフォルダがあり、そこにテキストファイルか何かでパスワードを設けておいて、そのファイルがないと実行ファイルが起動せず、フォームが表示しない(できればエラーメッセージを表示するといったものはできますか? できれば、簡単なプログラムを書き込んでいただけるとうれしいです。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.4

'FileSystemObject (FSO) の新しいインスタンスを生成する Dim cFso As FileSystemObject Set cFso = New FileSystemObject 'ファイルが存在しているかどうか確認する If cFso.FileExists("C:\Key.txt") Then '使用可能なファイル番号を取得する Dim iFileNumber As Integer iFileNumber = FileSystem.FreeFile() 'ファイルを開く Open "C:\Key.txt" For Input As #iFileNumber 'ファイルを 1 行ずつ読み込む Do While (Not FileSystem.EOF(iFileNumber)) 'ファイルを 1 行ずつ読み込む Dim stBuffer As String Line Input #iFileNumber, stBuffer '読み込んだものを比較する If stBuffer <> "123" Then '不要になった時点で参照を解放する (Terminate イベントを早めに起こす) Set cFso = Nothing 'ファイルを閉じる (正しくは オブジェクトの破棄を保証する を参照) Close #iFileNumber Call MsgBox("パスワードが一致しません。") End Else '1行のみチェックする場合はここで処理を抜ける End If Loop 'ファイルを閉じる (正しくは オブジェクトの破棄を保証する を参照) Close #iFileNumber Else '不要になった時点で参照を解放する (Terminate イベントを早めに起こす) Set cFso = Nothing Call MsgBox("設定ファイルは存在しません。") End End If ' 不要になった時点で参照を解放する (Terminate イベントを早めに起こす) Set cFso = Nothing ------------------------------------------------------------------ サンプルコードです。 参考サイト内のものを少し変えてコードしただけです。 どの時点で何がしたいのかを考えてやらなければ、問題は常に発生してきます。 考える力と調べる力を身につけてください。

その他の回答 (3)

回答No.3

VB.NETなのかVB6以前なのか、環境の提示をお願いします。

d-910
質問者

補足

Visual Basic 6.0です.よろしくお願いします.

回答No.2

■ファイルの存在確認 http://jeanne.wankuma.com/tips/vb6/file/exists.html http://jeanne.wankuma.com/tips/vb.net/file/exists.html ■ファイル読み込み http://jeanne.wankuma.com/tips/vb6/stream/readline.html http://jeanne.wankuma.com/tips/vb.net/stream/readline.html これをFormLoad時にチェックを行い、ファイルが存在しないorパスワードが違う場合は MsgBox "パスワードが違うか設定ファイルが存在しません。" End で終了させてあげればいいでしょう。

d-910
質問者

補足

回答ありがとうございます! 初心者なので、もう少し教えていただけませんか? たとえば、KEYという名前のtestファイルをいれておかないと、フォームが起動しないようにするときはどうすればよろしいでしょうか? またそのファイルの中に123という文字が書かれてないとダメにしたいときはどのようにすればよろしいでしょうか?

回答No.1

開発環境を書いてくださいね。 [ VB6 ] Private Sub Form_Load() If CheckFile = False Then MsgBox "起動不可" Unload Me End If End Sub Private Function CheckFile() As Boolean ' ここにパスワードファイルをチェックする処理 ' 合格ならTrueを、不合格ならFalseを返す CheckFile = False End Function [ .NET~2008 ] Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load If CheckFile() = False Then Windows.Forms.MessageBox.Show("起動不能") Me.Close() End If End Sub Private Function CheckFile() As Boolean ' ここにパスワードファイルをチェックする処理 ' 合格ならTrueを、不合格ならFalseを返す Return False End Function 簡単な方法はこんな具合です。 ファイルチェックの処理はご自身で埋めてください。

d-910
質問者

補足

回答ありがとうございます! 初心者なので、もう少し教えていただけませんか? たとえば、KEYという名前のtestファイルをいれておかないと、フォームが起動しないようにするときはどうすればよろしいでしょうか? またそのファイルの中に123という文字が書かれてないとダメにしたいときはどのようにすればよろしいでしょうか?

関連するQ&A