开发的软件在win7下文件拖拽至textbox没有反应,有大大知道的么?
在xp下用vs2005开发的窗体(VB),里面有个textbox控件在窗体里写了
Private Sub TextBox1_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles TextBox1.DragDrop
If e.Data.GetDataPresent(DataFormats.FileDrop) Then
Me.TextBox1.Clear()
Dim MyFiles() As String
Dim i As Integer
MyFiles = e.Data.GetData(DataFormats.FileDrop)
Me.TextBox1.Text = MyFiles(i)
End If
End Sub
Private Sub TextBox1_DragEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles TextBox1.DragEnter
If e.Data.GetDataPresent(DataFormats.FileDrop) Then
e.Effect = DragDropEffects.All
End If
End Sub
同时把textbox控件allowdrop属性设置好true了
程序到xp里能实现拖拽文件,textbox里就显示路径的功能。但是到了win7下就不行了
查了点资料,说win7下由于uac什么的限制,用ChangeWindowMessageFilter来解决,可是我用了还是没有用啊,有大大知道么?(注:我开发的程序已经是管理员方式运行了)
(注2.有资料说是explorer.exe的权限太低,我的程序权限太高的问题什么的)
--------------------编程问答-------------------- 补充下我这么用ChangeWindowMessageFilter的
--------------------编程问答-------------------- 用Administrator帐号登录 --------------------编程问答--------------------
’这个是申明
Declare Function ChangeWindowMessageFilter Lib "user32.dll" (ByVal Message As Long, ByVal dwFlag As Integer) As Boolean
‘这几行是写在form_load里了
ChangeWindowMessageFilter(&H233, 1)
ChangeWindowMessageFilter(&H4A, 1)
ChangeWindowMessageFilter(&H49, 1)
我已经是管理员账号了,程序已经是管理员权限了 --------------------编程问答-------------------- Administrator帐号,不是有管理员权限的帐号,不一样的 --------------------编程问答--------------------
我研究了下,问题是给客户用的程序啊,不会要客户用Administrator帐号登陆吧。
我在做程序时,为了能在win7安装到programfiles下读写文件,用manifest文件提升权限。然后造成我的程序是管理员模式启动了,但是文件拖拽到我的程序成了UIACESS=false了。
提及这个网上有什么白名单什么方式,可是我失败了。
补充:.NET技术 , VB.NET