查看完整版本: 冰点版主有个超级大难题,已经问了好多人

dljdlj70000 2006-11-16 23:25

[quote]原帖由 [i]Nothing[/i] 于 2006-11-16 23:06 发表
MDIForm.Picture1.LinkExecute "asd"
将这个发送要打开的文件名就可以了,一般是Commend函数,例如
MDIForm.Picture1.LinkExecute Commend [/quote]


一般是Commend函数   就是不知道用什么Commend       本来RICHTEXT.LOADFILE [color=red]“文件名”[/color]    就是不知道用什么函数来获得 [color=red][b]“文件名”   [color=blue]第一次程序自动获得[/color][/b][/color][color=#333333]“文件名”  [color=#ff0000][b] 第二次程序如何获得[/b][/color][color=#333333]“文件名” ???[/color][/color]

dljdlj70000 2006-11-17 14:56

我知道了  [size=2]截取纯文栏名函数Function [color=#cc0033][b]GetFileTitle[/b][/color][/size]

dljdlj70000 2006-11-17 15:47

我想实现当在目录窗口或资源管理器中选中文件时,得到此文件的文件名.我用HOOK CALLWNDPROC拦截LVN_ITEMCHANGED,然后用SendMessage发送了LVM_GETITEMTEXT来得到LIST VIEW中的文本,可这只能得到文件名,却得不到文件路径,有什么办法可得到选中文件的文件路径?
还有,我在钩子函数加了一条MessageBox,用来显示得到的文件名?????????????????

LostAbaddon 2006-11-23 18:53

工程名为DDE,窗口名是FRM
创建一个PICTURE,名字是P,用来启动DDELINK
如果是多窗体,就在MDIFORM的LOAD中写,如果是单窗体,就在FORM的LOAD中写:
If App.PrevInstance = True Then
    Me.LinkMode = 0
    Me.LinkTopic = ""
    P.LinkMode = 0
    P.LinkTopic = "DDE|Frm"
    P.LinkMode = 2
    P.LinkExecute Command
    End
Else
    OpenFile(Command)'OpenFile是你的程序中用来打开文件的函数。
End If
然后,在LinkExecute中写:
OpenFile(CmdStr)
Cancel = False

这样就可以得到第二次打开的文件的名字啦。

LostAbaddon 2006-11-23 19:25

做了一个完整的,不过不是多窗体的。
工程名:DDETRY,窗体名:FRMTRY,PICTURE名:P,RTFBOX名:TEXT1

Option Explicit

Private Sub Form_LinkExecute(CmdStr As String, Cancel As Integer)
Dim Tmp As String
If CmdStr <> "" Then
    Tmp = CmdStr
    If Left(Tmp, 1) = Chr(34) Then Tmp = Right(Tmp, Len(Tmp) - 1)
    If Right(Tmp, 1) = Chr(34) Then Tmp = Left(Tmp, Len(Tmp) - 1)
    Text1.Text = ""
    Text1.FileName = Tmp
    Me.Caption = Tmp
End If
Cancel = False
End Sub

Private Sub Form_Load()
Dim Tmp As String
If App.PrevInstance = True Then
    Me.LinkMode = 0
    Me.LinkTopic = ""
    P.LinkMode = 0
    P.LinkTopic = "DDETry|FrmTry"
    P.LinkMode = 2
    P.LinkExecute Command
    End
Else
    If Command <> "" Then
        Tmp = Command$
        If Left(Tmp, 1) = Chr(34) Then Tmp = Right(Tmp, Len(Tmp) - 1)
        If Right(Tmp, 1) = Chr(34) Then Tmp = Left(Tmp, Len(Tmp) - 1)
        Text1.FileName = Tmp
        Me.Caption = Tmp
    End If
End If
Text1.Top = 0
Text1.Left = 0
End Sub

Private Sub Form_Resize()
Text1.Height = Me.ScaleHeight
Text1.Width = Me.ScaleWidth
End Sub
页: 1 [2]
查看完整版本: 冰点版主有个超级大难题,已经问了好多人