DDE通信(融合版)

<戻る

ここに載せてあるソースコードは、参考のために載せてあります

サンプルコードは、一番下にLZHとしてあります




Option Explicit

'[サンプルの動作確認]
'Project1.exeに別々のファイルを
'2回ドロップ(コマンドラインによる起動)してみてください
'(見た目は)新たに起動していないように見えると思います

'[プロパティの設定]
'Form1の
'LinkMode = 1(ソース)
'にしています

'クライアントからDDE通信でデータが送られてきました
Private Sub Form_LinkExecute(CmdStr As String, Cancel As Integer)
    Dim var As Variant
    On Error Resume Next
    
    '実行コマンドを分析します
    var = Split(CmdStr, ":", 2)
    '大文字小文字の認識をなくします
    var(0) = LCase(var(0))
    Select Case var(0)
        'OpenFileの実行を受けました
        Case "openfile"
            'テキストボックスの内容を書き換えます
            Text1.Text = OpenFile(var(1))
    End Select
End Sub

'フォームをロードしました
Private Sub Form_Load()
    On Error Resume Next
    
    '2重起動かチェックします
    If App.PrevInstance = False Then
        '
        '単独起動の処理です
        '
        Text1.Text = OpenFile(Command)
    Else
        '
        '2重起動の処理です
        '
        Me.Text1.LinkTopic = App.Title & "|" & Me.Name
        Me.Text1.LinkMode = vbLinkManual
        'エラーが発生しました
        If Not (Err.Number = 0) Then
            MsgBox "Error: " & Err.Description, vbCritical
            Unload Me
        Else
            'コマンドラインなしの場合は、
            'メッセージボックスで警告します
            If Command = "" Then
                MsgBox "2重起動はできません", vbExclamation
            Else
                'コマンドラインがある場合は、
                'DDE通信を使い相手に
                '指定のファイルを開くよう命じます
                Text1.LinkExecute "OpenFile:" & Command
                DoEvents
            End If
            '2重起動なので処理を終えます
            Unload Me
        End If
    End If
End Sub

'フォームのサイズを変更しました
Private Sub Form_Resize()
    On Error Resume Next
    'フォームのサイズにあわせて
    'テキストボックスのサイズを調整します
    Text1.Move 0, 0, ScaleWidth, ScaleHeight
End Sub

'ファイルを開いて文字列を返す関数です
Function OpenFile(ByVal strPath As String) As String
    Dim fn          As Integer
    Dim fz          As Long
    Dim bytArray()  As Byte
    
    fn = FreeFile
    fz = FileLen(strPath)
    ReDim bytArray(fz - 1)
    Open strPath For Binary As #fn
        Get #fn, , bytArray
    Close
    OpenFile = StrConv(bytArray, vbUnicode)
End Function



<戻る

Sample84.lzh


http://hp.vector.co.jp/authors/VA015521/