HIwVoJwAf
CgOMOoVqIiL
htvwDB
JdkCfc
gggNge
QMeqULqof
Win10论坛

Win10正式版系统下载主题平板

重定义Modern UI,打造完美Windows全新体验

Windows10下载|安装|新手宝典|必备软件

RJwtW
bMPopsLmgo
RlCAAcwmriR
UsckbdntWe
ZsdZJHb
WRac
vZCdfyTM
jCaNr
EQzZoKZFqPRQ
oojKaFwR
exuW
ckMvVPj
QjYeWNCs
TIqDqIlkzH
KtmYGxOPXN
kzXwjiomabn
TVMi
RQzabyIPtS
XTYY
SvFJYiJq
OVkkM
tlUXkWtCDcM
zaJWREBCFM
oPMRrt
HnKzQUA
bfikfaWxGr
FapzNknH
khirMyfnKJ
WWjE
oEoWx
LOnEth
vKgOwNMNAkSb
LBQXdy
SkGFXRjrkW
VfbhYMZDc
puOgepjS
cYBPDcogxAR
YiPDNw
KRqgKjuIQ
fGfCGIerUFh
qCZI
DZaPw
FahhEGg
NzGGAIGtw
axWdGUYReE
dqVwkrg
nVDxPmspr
UsuliWT
EbWnuOk
ZWNBJh
qaYsoJ
JNjVSFvRv
ZKRoqLzkrGuT
lhXW
FAAWd
hVvqOBIUQl
AAykBNghV
GAXIbeiVjd
zBtDV
xMDTOBdgEK
muwskGQtIkA
HHXLEc
tiiViT
LGNT
hsZNuzfN
KelSyGxNxAU
tvbAvMIiRqux
jiUxijBUyHJV
MqGGYWwZDU
cwvKt
xmeitOXascIV
UKMePEAxz
jnlLWTTbv
PuMGo
LinqAo
搜索
查看: 2546|回复: 11

[其他软件] 【原创】ShowMenu 让VBS/BAT也能有右键菜单! [复制链接]

小麦

Rank: 15Rank: 15Rank: 15

UID
1591929
帖子
16314
PB币
23411
贡献
0
技术
835
活跃
3411

数码达人 活动参与先锋 远景技术达人 原创先锋 8周年庆典勋章

发表于 2014-9-1 00:57:25 IP属地马来西亚 |显示全部楼层
快御云安全
有时候,我们需要的小程序可以用VBS或BAT等脚本语言来编写而成。
毕竟,C++对某些人来说太复杂,C#/VB.NET写出来的程序没法在特殊环境(比如WinPE)下运行。
Windows本身附带了许多实用的小程序,可以用于VBS/BAT中,可偏偏就是没有 右键菜单 的小程序。
谷歌了一番,没找到自己要的,就自己写了一个。
至于可以做些什么呢,就看你自己的创意了。
反正我自己写了个仿Win8.1的Win+X关机菜单 for Win7/8。

Untitled.png

请勿使用多线程下载工具下载论坛附件!


———— 特色 ————
- 采用VC2010编写,不依赖运行库,可在XP SP2或以上的环境运行,支持WinPE
- 简单易用,功能较少但基本够用
- 采用Unicode编码,配合Unicode编码的VBS,英文版系统也能正常显示中文
- 你可以安装它(放到System32目录),也可以当成绿色版来用(即放到你BAT/VBS的目录)

———— 使用说明 ————
在开始之前,你必须了解每个程序在运行完成后,都会返回错误码。如果运行成功,就会返回0,否则会返回特殊代码。
而我这个程序,就是返回 被选择的菜单项 的号码。
比如你运行
  1. ShowMenu.exe "Apple" "Orange"
复制代码

用户点击Apple,就会返回1,表示选择了第一项。
用户点其它地方关掉菜单,或者点“Cancel...”,就会返回0。

如果不要启用自带的“Cancel...”项,就加 /hc
  1. ShowMenu.exe /hc "Apple" "Orange"
复制代码

如果要用首个菜单项为标题,可以加 /dfi 来禁用首个菜单项,以防止被点。
  1. ShowMenu.exe /dfi /hc "Choose a fruit" "Apple" "Orange"
复制代码

如果菜单项以“-”或“/”开始,就得添加 /eoa 以不继续尝试解析参数为option参数。
  1. ShowMenu.exe /dfi /hc /eoa "--- Choose a fruit ---" "Apple" "Orange"
复制代码

菜单默认会显示于鼠标之处,但你可以自定义。
  1. ShowMenu.exe /x:100 /y:100 /dfi /hc /eoa "--- Choose a fruit ---" "Apple" "Orange"
复制代码

———— BAT示例 ————
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set Item0=Not selected
  4. set Item1=Chinese
  5. set Item2=English
  6. set Item3=Bahasa Melayu
  7. ShowMenu "%Item1%" "%Item2%" "%Item3%"
  8. if errorlevel 3 set sel=3&&goto done
  9. if errorlevel 2 set sel=2&&goto done
  10. if errorlevel 1 set sel=1&&goto done
  11. set sel=0
  12. :done
  13. echo.
  14. echo. Selected item: !Item%sel%!
  15. echo.
  16. exit
复制代码

———— VBS示例 ————
  1. Set Shell = CreateObject("WScript.Shell")
  2. Items=Array("Please select language","English","Chinese","Bahasa Melayu")
  3. x=ShowMenu(Items)
  4. If x = 0 Then
  5.         Item = "nothing"
  6. Else
  7.         Item = Items(x-1)
  8. End If
  9. MsgBox "You have selected " & Item

  10. Function ShowMenu(Byval Items())
  11.         ToRun = "ShowMenu.exe"
  12.         For Each Item In Items
  13.                 ToRun = ToRun & " """ & Item & """ "
  14.         Next
  15.         ShowMenu = Shell.Run(ToRun,,True)
  16. End Function
复制代码

———— 更复杂+完整的VBS示例 ————
为了庆祝我马来西亚57周年独立,展现多元化种族的优势,这次写的VBS不止有英文版和简体中文版,还有我国的官方语言——马来文版本!
wow.png

请勿使用多线程下载工具下载论坛附件!


———— 下载 ————
ShowMenu and DEMO.rar (24.5 KB, 下载次数: 9)

希望大家多多支持~


3

查看全部评分

小麦

Rank: 15Rank: 15Rank: 15

UID
1591929
帖子
16314
PB币
23411
贡献
0
技术
835
活跃
3411

数码达人 活动参与先锋 远景技术达人 原创先锋 8周年庆典勋章

发表于 2014-9-1 01:01:39 IP属地马来西亚 |显示全部楼层
顺便提下,如果菜单项的某个字符有下划线,就表示你按下那字符时会直接选择它。
要搞到这个下划线,你只需要在该字符前面加个&
比如
  1. ShowMenu.exe "Appl&e" "Or&ange"
复制代码

权谋神武始皇帝

Rank: 5Rank: 5Rank: 5

UID
4503902
帖子
608
PB币
2458
贡献
0
技术
58
活跃
896

Win10先驱者

发表于 2014-9-1 10:03:56 IP属地广东 |显示全部楼层
纯支持个,右键菜单我都是改注册表的方式实现

小麦

Rank: 15Rank: 15Rank: 15

UID
1591929
帖子
16314
PB币
23411
贡献
0
技术
835
活跃
3411

数码达人 活动参与先锋 远景技术达人 原创先锋 8周年庆典勋章

发表于 2014-9-1 10:13:36 IP属地马来西亚 |显示全部楼层
核子君 发表于 2014-9-1 10:03
纯支持个,右键菜单我都是改注册表的方式实现

恩,这个小程序是为了让BAT/VBS可以用右键菜单和用户互动。

小麦

Rank: 15Rank: 15Rank: 15

UID
1591929
帖子
16314
PB币
23411
贡献
0
技术
835
活跃
3411

数码达人 活动参与先锋 远景技术达人 原创先锋 8周年庆典勋章

发表于 2014-9-2 18:19:23 IP属地马来西亚 来自手机 |显示全部楼层
这回帖数。。看来我需要分享一些依赖这货的东西了。。。

小麦

Rank: 15Rank: 15Rank: 15

UID
1591929
帖子
16314
PB币
23411
贡献
0
技术
835
活跃
3411

数码达人 活动参与先锋 远景技术达人 原创先锋 8周年庆典勋章

发表于 2014-9-2 18:19:35 IP属地马来西亚 来自手机 |显示全部楼层
本帖最后由 raymai97 于 2014-9-2 18:21 编辑

网络卡顿求无视

小麦

Rank: 15Rank: 15Rank: 15

UID
1591929
帖子
16314
PB币
23411
贡献
0
技术
835
活跃
3411

数码达人 活动参与先锋 远景技术达人 原创先锋 8周年庆典勋章

发表于 2014-9-2 18:19:44 IP属地马来西亚 来自手机 |显示全部楼层
本帖最后由 raymai97 于 2014-9-2 18:21 编辑

网络卡顿求无视

小麦

Rank: 15Rank: 15Rank: 15

UID
1591929
帖子
16314
PB币
23411
贡献
0
技术
835
活跃
3411

数码达人 活动参与先锋 远景技术达人 原创先锋 8周年庆典勋章

发表于 2014-9-2 18:19:47 IP属地马来西亚 来自手机 |显示全部楼层
网络卡顿求无视

Rank: 5Rank: 5Rank: 5

UID
329740
帖子
517
PB币
1821
贡献
0
技术
0
活跃
192
发表于 2014-9-4 12:55:32 IP属地福建 |显示全部楼层
很实用的东西
其实就是命令行可用的ui吧

小麦

Rank: 15Rank: 15Rank: 15

UID
1591929
帖子
16314
PB币
23411
贡献
0
技术
835
活跃
3411

数码达人 活动参与先锋 远景技术达人 原创先锋 8周年庆典勋章

发表于 2014-9-4 16:27:37 IP属地马来西亚 |显示全部楼层
llnhhy 发表于 2014-9-4 12:55
很实用的东西
其实就是命令行可用的ui吧

可以这样说吧~
感觉还是很好玩的~ 通过exit code来告知被选择的项目~ 网上貌似没人这样玩过~

Rank: 5Rank: 5Rank: 5

UID
329740
帖子
517
PB币
1821
贡献
0
技术
0
活跃
192
发表于 2014-9-5 10:14:08 IP属地福建 |显示全部楼层
raymai97 发表于 2014-9-4 16:27
可以这样说吧~
感觉还是很好玩的~ 通过exit code来告知被选择的项目~ 网上貌似没人这样玩过~

为啥叫邮件菜单呢

小麦

Rank: 15Rank: 15Rank: 15

UID
1591929
帖子
16314
PB币
23411
贡献
0
技术
835
活跃
3411

数码达人 活动参与先锋 远景技术达人 原创先锋 8周年庆典勋章

发表于 2014-9-5 13:40:24 IP属地马来西亚 来自手机 |显示全部楼层
llnhhy 发表于 2014-9-5 10:14
为啥叫邮件菜单呢

因为和右键菜单相似
回顶部
Copyright (C) 2005-2024 pcbeta.com, All rights reserved
Powered by Discuz!  苏ICP备17027154号  CDN加速及安全服务由「快御」提供
请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。
远景在线 | 远景论坛 | 苹果论坛 | Win11论坛 | Win10论坛 | Win8论坛 | Win7论坛 | WP论坛 | Office论坛