アドレス帳を作るためのプログラムを作っているのですが、
このプログラムによって生成されたファイルを起動(ダブルクリック)すると、
プログラムが起動し、ファイルがこのプログラムに格納
されるようにするにはどうすればよいのでしょうか。
このファイルの関連付けはアドレス帳のプログラムにするものと
します。
よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (4件)

"Command"関数を使用すると起動時のコマンドラインの引数を取得できます。


プログラム開始直後に引数を取得してデータファイルが指定されているかを判別して、指定されていればデータファイルのOPENを行い、指定が無ければ通常の起動をするようにすればよろしのではないでしょうか。
関連付けに関してはNo.2の方の回答のとおりです。
    • good
    • 0
この回答へのお礼

お返事ありがとうございます。
COMMAND関数で解決できそうです。
MSDNのサンプルではちょっとわかりにくいのですが、
何とかなりそうなのでもう少しがんばってみます。

お礼日時:2001/04/27 14:28

関連付けをするなら以下のファイル(xxx.reg)を作って一度実行すれば登録す


ればファイルをクリックするだけで起動すると思います。
==========================xxx.reg====================================
REGEDIT4

[HKEY_CLASSES_ROOT\.xxx]
@="xxx_auto_file"

[HKEY_CLASSES_ROOT\xxx_auto_file]
@=""

[HKEY_CLASSES_ROOT\xxx_auto_file\shell\open]
@=""

[HKEY_CLASSES_ROOT\xxx_auto_file\shell\open\command]
@="C:\\[ディレクトリ名]\\[実行ファイル名].exe %1"
====================================================================
ここでは拡張しxxxになります。
    • good
    • 0
この回答へのお礼

お返事ありがとうございました。
レジストリエディタで手動で関連付けということでしょうか。
このアドレス帳を配布したいので手動というのはちょっとまずいのです。
申し訳ありません。

お礼日時:2001/04/27 14:24

ファイルの関連付けは自分で行なうのですね?



ファイルの関連付けを open のアクションに対して、

  アドレス帳のプログラム "%1"

と定義したのであれば、アドレス帳のファイルを仮に AAAA.adr と
すると、そのファイルをダブルクリックすることは、コマンドプロンプト
で、

  アドレス帳のプログラム "ファイルが存在するパス\AAAA.adr"

と起動されたことと等しいです。

プログラムからは、コマンドラインのオプションを取得(*)すれば、
そのファイル名が入っています。

  (*) 私は VB を使わないので、具体的な関数名を出せませんが、
    調べれば、すぐ分かりますよね?
    • good
    • 0
この回答へのお礼

お返事ありがとうございます。
ごめんなさい。
私はプログラムはVB以外したことが無いし、
この経験さえ1年ぐらいですのでぜんぜん理解できません。
パソコン用語集を調べてみたのですが、
わからず、実際に適当に入れてみても
変なエラーが出るし…
申し訳ありません。

お礼日時:2001/04/27 14:19

こんにちは、honiyonです。


  いまいちイメージがつかめないのですが、このプログラムを実行すると、
 アドレス帳のデータ(ファイル)を、自分自身のexeファイルに取り込むと
 いう事でしょうか?

  もしそうであれば、それは不可能です。 自分自身のファイルは、実行中
 に書き換える事は出来ません。

  解釈間違っていたらスイマセン(^^;

この回答への補足

早速のお返事ありがとうございました。
質問があいまいですいません。
たとえでいいますと、エクセルで作成したワークシート(.xls)を
実行するとエクセルが起動するというようなものです。

補足日時:2001/04/25 15:42
    • good
    • 0

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

このQ&Aと関連する良く見られている質問

Qファイルの送受信プログラムを作るには?

最近VBとネットワークプログラミングの勉強を始めたばかりで、
本などを参考にして簡単なチャットプログラムを組んだりしています。
そこで、MSNMessengerなどに搭載されている様なファイルの
送受信機能をつけようと思うのですが、
具体的なファイルの送受信方法から全く分からず手詰まりの状態が続いています。
いろいろなサイトをまわっててみたのですが、一向に解決しそうにないため
ここで質問させて頂きました。
方法の説明や本などを紹介して頂けるようでしたらよろしくお願いします。

Aベストアンサー

チャットプログラムでは、文字を送受信できますよね。
ファイルは、数値の列で構成されていますが、これを文字に変換すれば、チャットと同じ要領で送受信できます。
ファイルなどのバイナリデータを文字に変換(エンコード)するには、いくつもの方式がありますが、単純に(非効率的ですが)行うならば、16進表記の文字列に変換することがわかりやすいかと思います。
ファイルから1バイトずつ読み込んで、2文字の16進文字に変換(エンコード)して、クライアントに送信する。受け取ったら、2文字を1バイトの数値に変換(デコード)して、ファイルに追記していく。。。の繰り返しでいけるとおもいます。

最も、VBを使用しているとのことですので、使用しているコントロールにファイル送受信用のメソッドが付いているかもしれませんね。MSDN等を確認することをお奨めします。

QVB.NETでテキストファイルからHTMLファイルを動的に生成したいの

VB.NETでテキストファイルからHTMLファイルを動的に生成したいのですがどのようにやればできるかヒントをいただけないでしょうか?
とあるフォルダに下記のようなファイルがあるとします。
20100101AAA.txt
20091008AAA.txt
20100202AAA.txt
20070707AAA.txt
20100412AAA.txt
また、ファイルの中身は
<div id = 'AAA'>それぞれのファイルの内容</div>
<div id = 'BBB'>それぞれのファイルの内容</div>
です。
まず、ファイル名から日付を解析して新しい順番に並べるアルゴリズムを考えたいのですがどのようにしたらいいか困っています。
また、並び変えたファイルを動的に合成して一つのHTMLを作りたいのですがどのようにしたらいいのでしょうか?
詳しい方よろしくお願いします。

Aベストアンサー

後半

  Private Sub OutPutHtmlExec(ByVal p_strHtm As String, ByVal p_htmHtml As HtmlGenericControl, ByVal p_enc As Encoding)
    Dim l_strRet As String = ""

    Using l_fsOut As New System.IO.FileStream(p_strHtm, FileMode.Create)
      Using l_hwHtm As New System.Web.UI.HtmlTextWriter(New System.IO.StreamWriter(l_fsOut, p_enc))

        p_htmHtml.RenderControl(l_hwHtm)
        l_hwHtm.Flush()
      End Using
    End Using
  End Sub

  Private Function ReadTextSJIS(ByVal p_fInf As FileInfo) As String
    Return System.IO.File.ReadAllText(p_fInf.FullName, Encoding.GetEncoding("shift_jis"))
  End Function

  Private Function FindText(ByVal p_strPath As String, ByVal p_strPtn As String) As DataTable
    Dim l_dtbRet As DataTable = FindTextSchema()
    Dim l_dInf As New DirectoryInfo(p_strPath)
    For Each l_fInf As FileInfo In l_dInf.GetFiles(p_strPtn)
      Dim l_drwWk As DataRow = l_dtbRet.NewRow()
      l_drwWk("path") = l_fInf.FullName
      l_drwWk("date") = DateTime.ParseExact(l_fInf.Name.Substring(0, 8), "yyyyMMdd", Nothing)
      l_dtbRet.Rows.Add(l_drwWk)
    Next
    Return l_dtbRet
  End Function

  Private Function FindTextSchema() As DataTable
    Dim l_dtbRet As New DataTable
    l_dtbRet.Columns.Add(New DataColumn("path", GetType(String)))
    l_dtbRet.Columns.Add(New DataColumn("date", GetType(Date)))
    Return l_dtbRet
  End Function
End Class

後半

  Private Sub OutPutHtmlExec(ByVal p_strHtm As String, ByVal p_htmHtml As HtmlGenericControl, ByVal p_enc As Encoding)
    Dim l_strRet As String = ""

    Using l_fsOut As New System.IO.FileStream(p_strHtm, FileMode.Create)
      Using l_hwHtm As New System.Web.UI.HtmlTextWriter(New System.IO.StreamWriter(l_fsOut, p_enc))

        p_htmHtml.RenderControl(l_hwHtm)
        l_hwHtm.Flush()
      End Using
    End Using
  End ...続きを読む

QCSVファイルを折れ線グラフ化するプログラムを作っているのですが・・・

CSVファイルを折れ線グラフ化するプログラムを作っているのですが・・・


以前、似たようなものをEXCELのVBAでやったことはあります。
今回は、使用先PCにEXCELが無いので、EXCELを使わないでやりたいと思い、
無料のVB2008をMicrosoftから落としてきて、手探りで始めています。


:LOG
:LOGGING_ID,3,"湿度"
:SERIAL_ID,13
:DEVICE_NUM,3
:RECORD_NUM,100
:DEV_COMMENT,"NO.1 湿度","NO.2 湿度","外気湿度"
:DEV_TYPE,BIN16,BIN16,BIN16
:DISP_TYPE,DEC,DEC,DEC
:DEV_SIZE,1,1,1
2010/10/29 08:30:50,498,0,0
2010/10/29 08:31:49,498,0,0
2010/10/29 08:32:49,497,0,0



一日1ファイル、1分ごとに記録された湿度のデータが入ったCSVファイルです。

これを、

  選択した日付のファイルを開き、
  グラフ目盛を”1分ごと””10分ごと”、”1時間ごと”に
  任意で変えて表示できる
  折れ線グラフを作ろうとしています。

DateTimePickerを使って、日付の指定、該当ファイルの有無、などは出来ました。

ですが、その後の、するべき方向性がまったっく見えてきません。


(1)指定したCSVファイルを開く
(2)一連の「:」行を削除
(3)先頭行に「,NO.1 湿度,NO.2 湿度,外気湿度,」を挿入
(4)指定した間隔分の行を抽出(10分ごとなら、00分、10分、20分、30分、40分、50分の行だけ抽出)
 (指定間隔はRadiobuttonで選ばせようと思っています。)
(5)作業用のCSVファイルとして保存
(4)Chartにて表示


こんな流れで合っていますか?

データベースを使うんですか?(←SQLだのADOだの、必要なら、ゼロから覚えなければならない状態です)

参考書よんだり、webで調べたりしているのですが、
VBから直接、csvを編集(行の削除、挿入)が出来るのか、
そして、別ファイルとして保存できるのかが、見えません。



訳がわからなくなってしまいました。


EXCELを使えば、楽ちんなんですかね?
ただ、EXCELでのVBAも、少しかじった程度なんですが。

なんとか道筋だけでも教えていただけたら、と思います。
お願いします。

CSVファイルを折れ線グラフ化するプログラムを作っているのですが・・・


以前、似たようなものをEXCELのVBAでやったことはあります。
今回は、使用先PCにEXCELが無いので、EXCELを使わないでやりたいと思い、
無料のVB2008をMicrosoftから落としてきて、手探りで始めています。


:LOG
:LOGGING_ID,3,"湿度"
:SERIAL_ID,13
:DEVICE_NUM,3
:RECORD_NUM,100
:DEV_COMMENT,"NO.1 湿度","NO.2 湿度","外気湿度"
:DEV_TYPE,BIN16,BIN16,BIN16
:DISP_TYPE,DEC,DEC,DEC
:DEV_SIZE,1,1,1
2010/10/29 08:30:50,498,0,0
20...続きを読む

Aベストアンサー

エクセルでやれば、グラフを描くところは、エクセル(VBA)がやってくれるので、圧倒的に楽。
CSVファイルをオープン
CSVレコードを1レコード読む
不要なレコードは読み飛ばす
時間間隔ごとに、該当レコード分は処理、それ以外は読み飛ばす(またはその間隔の平均なりを採る)
レコードをSplit関数で、カンマ(ディミタ)で分離
シートに各行にデータを書き出す。シートの1行下をポイント。
次以下のレコードで上記を繰り返し
Et ENDでCSVファイルをクローズ
シートのデータを対象にグラフを描かせる。
エクセルでグラフを描かせるのはシートに、無駄のないでーたが一旦書き出されることが必要条件です。
このVBAでのコードがどうなるか、はグラフを描かせるマクロの記録から類推し、マクロの記録を修正する。ただデータ数が多いと実際的に使えるグラフになるか未経験で判らない。巻物みたいになったら、どうだろうか。
ーーー
VB.NETでは、グラフを描くようなツールが無ければ(市販とか。購入する金が無ければ
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1420945259などで言っているコンポーネント)、
上記のCSVファイルの各レコード処理を行い(Splitまで)Imageコントロールに
Private Sub PictureBox1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox1.Click
Dim ChartLeft As Integer = 80 '左位置
Dim ChartRight As Integer = PictureBox1.Width - 50 '右位置
Dim ChartHeight As Integer = 50 '上方位置
Dim ChartLower As Integer = PictureBox1.Height - 10 '下方位置

Dim Graphics As System.Drawing.Graphics = PictureBox1.CreateGraphics
Dim ChartAxis As New Pen(Color.Black, 2)
Graphics.DrawLine(ChartAxis, ChartLeft, ChartHeight, ChartLeft, ChartLower)
Graphics.DrawLine(ChartAxis, ChartLeft, ChartLower, ChartRight, ChartLower)
Graphics.DrawLine(ChartAxis, ChartLeft + 30, ChartHeight + 30, ChartLeft + 40, ChartHeight + 10)
Graphics.DrawLine(ChartAxis, ChartLeft + 40, ChartHeight + 10, ChartLeft + 60, ChartHeight + 70)
Graphics.DrawLine(ChartAxis, ChartLeft + 60, ChartHeight + 70, ChartLeft + 90, ChartHeight + 100)
End Sub
WEBにあったコードを一部改変しました。3点を結ぶ折線の例(軸付き)。
この下3行の部分をCSVファイルを読んでカンマで分離したデータでデータ数だけ繰り返す。
しかし実際にやるには、諸々の多数の解決すべき点が出てくるのは目に見えている。多数データで
纏め上げた経験が無いので、実際役立つか判らない。
グラフには目盛や反例やタイトルなど必要だし、自作は面倒なことだろう。
ーーー
Split関数は、VB.NETで
http://www.atmarkit.co.jp/fdotnet/dotnettips/317vbsplit/vbsplit.html
テキストファイルをVB.NETで読む
http://www.cocoaliz.com/vb.net/index/25/  など
Googleででも、トッピックスごとに照会する。

エクセルでやれば、グラフを描くところは、エクセル(VBA)がやってくれるので、圧倒的に楽。
CSVファイルをオープン
CSVレコードを1レコード読む
不要なレコードは読み飛ばす
時間間隔ごとに、該当レコード分は処理、それ以外は読み飛ばす(またはその間隔の平均なりを採る)
レコードをSplit関数で、カンマ(ディミタ)で分離
シートに各行にデータを書き出す。シートの1行下をポイント。
次以下のレコードで上記を繰り返し
Et ENDでCSVファイルをクローズ
シートのデータを対象にグラフを描かせる。
エク...続きを読む

Q【VB2005】別のプログラムから別のプログラム起動

"A"というVB2005で、作成したプログラムがありまして、
メインのフォームがあり、
そこにボタンがあります。
Shellの関数を使って、クリックイベントで、
指定したExe"B"を立ち上げます。

そのExe"B"は、VB2005で作成したオリジナルのプログラムです。
プロジェクトは別で作った物と考えてください。

Exe"B"を起動した画面を[フォーム1]と考えて、
ボタンがあり、クリックすると
別の[フォーム2]が表示するはずなのですが、
特にエラーも掴まずに、Showで開くことができません。

しかし、Exe"B"からダイレクトに起動させて
ボタンをクリックしたら[フォーム2]が表示されます。

どうしたら、Exe"A"からExe"B"を起動して
Exe"B"からフォーム2を呼び出すことができるか、
考えられる要因などをアドヴァイスして頂けたら助かります。

Aベストアンサー

意味がよくわかりませんので、補足をお願いします。

A.EXE と B.EXE という実行ファイルがあり、それらは VB 2005 で
作ったもので……
A.EXE から Shell 関数で B.EXE を起動すると B.EXE が持っている
Form2 の表示が不可能となるが
A.EXE を起動していない状態で B.EXE を起動すると B.EXE が
持っている Form2 の表示が可能である。

という意味なのでしょうか?

A.EXE から B.EXE の起動と表示を行う箇所のコードも記述して
頂けると何かわかるかも知れません。

QVB6で作成したプログラムが起動せずMS-officeのインストーラーが起動します(初心者)

Visualbasic6.0でプログラムを作成し、DELLのパソコン(Inspiron 1100)で実行ファイルをクリックしても、MS-officeのインストーラーが起動してofficeのCDを入れて下さいと出るだけでプログラムが起動出来ません。なぜでしょうか?他のパソコンでこういった不具合は今までありませんでした。
プログラムを作成したパソコンは別のパソコンで、DELLのパソコンにはvb6.0は入っていません。


Inspiron 1100
MicrosoftR WindowsR XP Home Edition Service Pack 1
Microsoft Office 2000 Parsonal

Aベストアンサー

こんばんは。

参考URLのマイクロソフト・サポートページをご覧ください。
回避策が書かれています。


▼[VB6] Office2000のCDを要求される

参考URL:http://support.microsoft.com/default.aspx?scid=kb;ja;417320


人気Q&Aランキング

おすすめ情報