vb如何模拟鼠标右键点击弹出xp菜单

fly1229 2009-10-21 07:24:59
我想要的是这样的,用鼠标左键点击一下我的一个按钮,再用鼠标左键点击文件夹或者是文件或者是磁盘,然后就像是用鼠标右键直接点击在了文件(文件)上面一样,弹出菜单,包括打开,复制,剪贴,删除之类的
如果有代码更好。谢谢
...全文
826 32 打赏 收藏 转发到动态 举报
写回复
用AI写文章
32 条回复
切换为时间正序
请发表友善的回复…
发表回复
qsdys 2011-05-26
  • 打赏
  • 举报
回复
学习了,谢谢分享。
tainxifengyun 2010-12-22
  • 打赏
  • 举报
回复
不错!
sky_1632008 2009-10-22
  • 打赏
  • 举报
回复
不知,用wap形式写行吗?
fly1229 2009-10-21
  • 打赏
  • 举报
回复
终于搞定了,用了jhone99的代码和下面的代码,非常感谢各位,特别谢谢jhone99
http://useway.blog.51cto.com/736087/176913
具体代码就不放上来了,就是用全局鼠标钩子监测到有鼠标的点击事件即切换左右键为正常的。
小曦子 2009-10-21
  • 打赏
  • 举报
回复
应该运用到了API之类后吧,
fly1229 2009-10-21
  • 打赏
  • 举报
回复
[Quote=引用 26 楼 jhone99 的回复:]
引用 23 楼 fly1229 的回复:
引用 22 楼 jhone99 的回复:
引用 21 楼 fly1229 的回复:
引用 19 楼 jhone99 的回复:
用右键电击Command2

如何使这个动作为自动的,只要在xp任意地方点击一下,就切换为正常呢


又要右键弹出菜单功能,又要结束,这有些矛盾

  是有些麻烦,不过我在别的程序里看到可以实现这个,哪个是用c#.net写的。我想实现的是使用过一次鼠标右键后,即切换为正常的,要不会影响机器上程序的使用


是在系统中吗
[/Quote]
嗯,他那个程序与机器的生产程序是一体的,电脑也是触摸屏的,
我想在另外的机器上使用这个功能,电脑一般情况下都是全屏的生产程序。

jhone99 2009-10-21
  • 打赏
  • 举报
回复
[Quote=引用 23 楼 fly1229 的回复:]
引用 22 楼 jhone99 的回复:
引用 21 楼 fly1229 的回复:
引用 19 楼 jhone99 的回复:
用右键电击Command2

如何使这个动作为自动的,只要在xp任意地方点击一下,就切换为正常呢


又要右键弹出菜单功能,又要结束,这有些矛盾

  是有些麻烦,不过我在别的程序里看到可以实现这个,哪个是用c#.net写的。我想实现的是使用过一次鼠标右键后,即切换为正常的,要不会影响机器上程序的使用
[/Quote]

是在系统中吗
fly1229 2009-10-21
  • 打赏
  • 举报
回复
[Quote=引用 24 楼 jhone99 的回复:]
根据你触摸屏的特点,只用一个键
VB codePrivate DeclareFunction SwapMouseButton Lib"user32" (ByVal bSwapAsLong)AsLongPrivateSub Command1_Click()
SwapMouseButton1'切换End SubPrivateSub Command2_MouseDown(ButtonAsInteger, ShiftAsInteger, XAsSingle, YAsSingle)

SwapMouseButton0'恢复End Sub
[/Quote]
老大,这个不行啊,我的程序只是起一个辅助的功能,机器的程序要用左键的点击事件,所以我想用过一次右键后就切换,要不正常生产的程序都不能使用了,我觉得使用timer控件检测窗体外的鼠标点击事件应该可以,现在正在看呢,但是网上找了几段代码都不行。
jhone99 2009-10-21
  • 打赏
  • 举报
回复
根据你触摸屏的特点,只用一个键
Private Declare Function SwapMouseButton Lib "user32" (ByVal bSwap As Long) As Long

Private Sub Command1_Click()
SwapMouseButton 1 '切换
End Sub

Private Sub Command2_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

SwapMouseButton 0 '恢复

End Sub
fly1229 2009-10-21
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 jhone99 的回复:]
引用 21 楼 fly1229 的回复:
引用 19 楼 jhone99 的回复:
用右键电击Command2

如何使这个动作为自动的,只要在xp任意地方点击一下,就切换为正常呢


又要右键弹出菜单功能,又要结束,这有些矛盾
[/Quote]
是有些麻烦,不过我在别的程序里看到可以实现这个,哪个是用c#.net写的。我想实现的是使用过一次鼠标右键后,即切换为正常的,要不会影响机器上程序的使用
jhone99 2009-10-21
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 fly1229 的回复:]
引用 19 楼 jhone99 的回复:
用右键电击Command2

如何使这个动作为自动的,只要在xp任意地方点击一下,就切换为正常呢
[/Quote]

又要右键弹出菜单功能,又要结束,这有些矛盾
fly1229 2009-10-21
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 jhone99 的回复:]
用右键电击Command2
[/Quote]
如何使这个动作为自动的,只要在xp任意地方点击一下,就切换为正常呢
fly1229 2009-10-21
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 getemail 的回复:]
记录一下不就得了,干吗非得检测

引用 17 楼 fly1229 的回复:
引用 15 楼 jhone99 的回复:
'交换鼠标左右键
'    API函数SwapMouseButton可以很简单的实现鼠标左右键的交换.请看下例
'>>步骤1----建立新工程,在窗体上放置两个CommandButton按钮.
'>>步骤2----添加如下代码:
Private Declare Function SwapMouseButton Lib "user32" (ByVal bSwap As Long) As Long

Private Sub Command1_Click()
    SwapMouseButton 1
End Sub

Private Sub Command2_Click()
    SwapMouseButton 0
End Sub
'>>步骤3----编译运行,点击Command1和Command2,看看鼠标键的交换情况

这段代码比较NB啊,我还用了右键当了下左键使。
但是怎么检测到,我点一下右键后,就把左右键交换了呢,因为不可能一直把左右键交换来用

[/Quote]
我想实现的是每次需要用鼠标右键时点击一下我的程序,而且只要在别的地方点击一了左键,就切换为正常的鼠标左右建,下次需要使用右键时又点击一下我的程序,该怎么写呢
jhone99 2009-10-21
  • 打赏
  • 举报
回复
用右键电击Command2
getemail 2009-10-21
  • 打赏
  • 举报
回复
记录一下不就得了,干吗非得检测

[Quote=引用 17 楼 fly1229 的回复:]
引用 15 楼 jhone99 的回复:
'交换鼠标左右键
'    API函数SwapMouseButton可以很简单的实现鼠标左右键的交换.请看下例
'>>步骤1----建立新工程,在窗体上放置两个CommandButton按钮.
'>>步骤2----添加如下代码:
Private Declare Function SwapMouseButton Lib "user32" (ByVal bSwap As Long) As Long

Private Sub Command1_Click()
    SwapMouseButton 1
End Sub

Private Sub Command2_Click()
    SwapMouseButton 0
End Sub
'>>步骤3----编译运行,点击Command1和Command2,看看鼠标键的交换情况

这段代码比较NB啊,我还用了右键当了下左键使。
但是怎么检测到,我点一下右键后,就把左右键交换了呢,因为不可能一直把左右键交换来用
[/Quote]
fly1229 2009-10-21
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 jhone99 的回复:]
'交换鼠标左右键
'    API函数SwapMouseButton可以很简单的实现鼠标左右键的交换.请看下例
'>>步骤1----建立新工程,在窗体上放置两个CommandButton按钮.
'>>步骤2----添加如下代码:
Private Declare Function SwapMouseButton Lib "user32" (ByVal bSwap As Long) As Long

Private Sub Command1_Click()
    SwapMouseButton 1
End Sub

Private Sub Command2_Click()
    SwapMouseButton 0
End Sub
'>>步骤3----编译运行,点击Command1和Command2,看看鼠标键的交换情况
[/Quote]
这段代码比较NB啊,我还用了右键当了下左键使。
但是怎么检测到,我点一下右键后,就把左右键交换了呢,因为不可能一直把左右键交换来用
getemail 2009-10-21
  • 打赏
  • 举报
回复
这个方法好

[Quote=引用 15 楼 jhone99 的回复:]
'交换鼠标左右键
'    API函数SwapMouseButton可以很简单的实现鼠标左右键的交换.请看下例
'>>步骤1----建立新工程,在窗体上放置两个CommandButton按钮.
'>>步骤2----添加如下代码:
Private Declare Function SwapMouseButton Lib "user32" (ByVal bSwap As Long) As Long

Private Sub Command1_Click()
    SwapMouseButton 1
End Sub

Private Sub Command2_Click()
    SwapMouseButton 0
End Sub
'>>步骤3----编译运行,点击Command1和Command2,看看鼠标键的交换情况
[/Quote]
jhone99 2009-10-21
  • 打赏
  • 举报
回复
'交换鼠标左右键
' API函数SwapMouseButton可以很简单的实现鼠标左右键的交换.请看下例
'>>步骤1----建立新工程,在窗体上放置两个CommandButton按钮.
'>>步骤2----添加如下代码:
Private Declare Function SwapMouseButton Lib "user32" (ByVal bSwap As Long) As Long

Private Sub Command1_Click()
SwapMouseButton 1
End Sub

Private Sub Command2_Click()
SwapMouseButton 0
End Sub
'>>步骤3----编译运行,点击Command1和Command2,看看鼠标键的交换情况
fly1229 2009-10-21
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 getemail 的回复:]
VB codeOptionExplicitPrivate DeclareFunction TrackPopupMenu Lib"user32" (ByVal hMenuAsLong, ByVal wFlagsAsLong, ByVal XAsLong, ByVal YAsLong, ByVal nReservedAsLong, ByVal HwndAsLong, lprcAs RECT)AsLon¡­
[/Quote]
这个弹出的菜单是我的程序自己的菜单,我想要的是点一下按钮,再点一下任意文件夹或文件,弹出文件夹或文件自己的右键菜单
getemail 2009-10-21
  • 打赏
  • 举报
回复
加载更多回复(12)

7,762

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧