魔界の仮面弁士殿 皆様 こんにちは。Hideです。
また質問をさせて頂きます。
デスクトップ上にあるUDLファイル(Connect.udl)の設定画面を呼び出して、
(C:\Documents and Settings\muser\デスクトップ\Connect.udl)
そのUDLを設定内容を編集して保存する場合、どのようにすればよろしいのでしょうか?
ご教示宜しくお願いします。
OS:Windows2000
VB6 SP5
http://madia.world.coocan.jp/cgi-bin/VBBBS2/wwwlng.cgi?print+200505/05050089.txt
既に魔界の仮面弁士さんが回答してくれているように見えますが?
http://madia.world.coocan.jp/cgi-bin/VBBBS2/wwwlng.cgi?print+200505/05050089.txt
>UDLファイルの編集だけなら、それを関連付け起動で呼び出せば良いかと。
とあるように、
ShellExecute(API)等でConnect.udlを関連付け起動してあげればいいんでは?
ShellExecuteの使い方はこのサイトにありますよん。
http://madia.world.coocan.jp/vb/API/ShellExecute.htm
特攻隊長まるるうさん もげさん
早速のご返答ありがとうございます。
私の説明が足らず、申し訳ありません。
魔界の仮面弁士さんから頂いたコードで指定先のudlファイルを呼び出して、
その設定情報を利用するだけなら頂いたコードでいいのですが、
リンク先を変更して、再度指定先のudlファイルを呼び出しても、変更されて
おらず、前のリンク先の状態です。
変更した内容を保存すること という意味で編集すると書きました。
編集して保存することは可能なのでしょうか?
よろしくお願いします。
>変更した内容を保存すること という意味で編集すると書きました。
説明に、「誰が(何が)」が抜けてて解釈が分かれますが、
その編集操作を行うのは、人ですか?それともプログラムですか?
UDLファイルをダブルクリックして、それを人が目視リンク先を直す
ことを想定して、「VBからUDL設定画面を表示させたい」
なら、関連付け起動案でOKです。
#って試せばわかるのに、コピペして動くコードを与えられるまで
#口をあけて待ってるつもりですかな?
#(そうじゃないなら工夫の痕跡を示しながらスレッドを続けないと貴殿が損をすると思う)
'興味があったので作ってみた(後進の為になればと思う ツッコミ歓迎)
'魔界の仮面弁士 殿のコードを応用したもの
Function EditUDL(strEditFile As String)
Dim Cn As ADODB.Connection
Dim Stm As ADODB.Stream
Dim boolRC As Boolean
Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")
If fso.fileexists(strEditFile) = False Then
Exit Function
End If
Set Stm = New ADODB.Stream
Stm.Open
Stm.LoadFromFile strEditFile
Stm.Position = 128
Set Cn = New ADODB.Connection
Cn.ConnectionString = Stm.ReadText(adReadLine)
Dim DataLnk As MSDASC.IDataSourceLocator
Set DataLnk = New DataLinks
boolRC = DataLnk.PromptEdit(Cn)
If boolRC = False Then ' cancel
Else
MsgBox Cn.ConnectionString
Stm.Position = 128
Stm.WriteText Cn.ConnectionString
Stm.WriteText vbCrLf
Stm.SetEOS '文字列が短くなるように修正すると前の文字列が残ってしまうのでここでEOSにする
Stm.SaveToFile strEditFile, adSaveCreateOverWrite
Set DataLnk = Nothing
End If
Set Cn = Nothing
Stm.Close
Set Stm = Nothing
End Function
こんにちは、ぺがらぼ です。
そのUDLを設定内容を編集して保存する場合、どのようにすればよろしいのでしょうか?
実は、このudlファイル、iniファイルの構造とよく似ているのに気が付きましたか?テキストエディタやメモ帖で開いてみるとわかると思います。
これを踏まえれば、iniファイルに書き込む方法で、情報保存する事も可能です。
ただ、パラメータが多いので、お勧めはできませんが...
◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆
ぺがらぼ
- Microsoft MVP for Visual Basic (2005/04-2006/03)
- INETA Japan Member
- PASSJ Member
- .NET/C# Group Member
HOMEPAGE : http://pegalabo.net/
MyBlog : http://www.ailight.jp/blog/pegalabo/
◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆
もげさん、魔界の仮面弁士さん 皆様 Hideです。
いろいろとご教示して頂き、ありがとうございました。
Data Linksでgoogleを検索していたので、ADODB.Streamを見落としてしまっていました。
Data Linksのあるメソッドを利用して、保存できるものだと勘違いしておりました。
(そのようなメソッドはありませんし、見つかるはずもありませんが。。。)
>Stm.WriteText Cn.ConnectionString
>Stm.WriteText vbCrLf
>Stm.SetEOS '文字列が短くなるように修正すると前の文字列が残ってしまうのでここでEOSにする
>Stm.SaveToFile strEditFile, adSaveCreateOverWrite
このようにコーディングするのだと教えて頂き、ありがとうござました。
頂いたコーディングで、UDL設定画面の編集操作を行うのは、人で、修正し、
再度UDL設定画面を呼び出すと編集内容が反映されていました。
以前にかんさんという方が、VBA バイナリのデータを1byteずつファイルに書き出すには?(ADO使用)でADODB.Streamを含めた内容で投稿されていました。
URL:http://madia.world.coocan.jp/vb/vb_bbs/200311_03110051.html
microsoft.comにも関連する内容のことがありました。
http://support.microsoft.com/default.aspx?scid=kb;ja;258038
ご指摘の通り、これからは工夫の痕跡を示しながらしていこうと思います。
いろいろとありがとうございました。
今度とも宜しくお願いします。
> これを踏まえれば、iniファイルに書き込む方法で、情報保存する事も可能です。
その考え方は危険かと。>ぺがらぼさん
udlファイルとiniファイルでは、ファイルの文字コードが異なりますし。