- 积分
- 6556
- 最后登录
- 2016-4-12
- 精华
- 0
- 阅读权限
- 100
- 主题
- 222
- UID
- 1591929
- 帖子
- 16314
- PB币
- 23411
- 威望
- 5
- 贡献
- 0
- 技术
- 835
- 活跃
- 3411
小麦
- UID
- 1591929
- 帖子
- 16314
- PB币
- 23411
- 贡献
- 0
- 技术
- 835
- 活跃
- 3411
|
发表于 2014-9-1 00:57:25
IP属地马来西亚
|显示全部楼层
有时候,我们需要的小程序可以用VBS或BAT等脚本语言来编写而成。
毕竟,C++对某些人来说太复杂,C#/VB.NET写出来的程序没法在特殊环境(比如WinPE)下运行。
Windows本身附带了许多实用的小程序,可以用于VBS/BAT中,可偏偏就是没有 右键菜单 的小程序。
谷歌了一番,没找到自己要的,就自己写了一个。
至于可以做些什么呢,就看你自己的创意了。
反正我自己写了个仿Win8.1的Win+X关机菜单 for Win7/8。
请勿使用多线程下载工具下载论坛附件!
———— 特色 ————
- 采用VC2010编写,不依赖运行库,可在XP SP2或以上的环境运行,支持WinPE
- 简单易用,功能较少但基本够用
- 采用Unicode编码,配合Unicode编码的VBS,英文版系统也能正常显示中文
- 你可以安装它(放到System32目录),也可以当成绿色版来用(即放到你BAT/VBS的目录)
———— 使用说明 ————
在开始之前,你必须了解每个程序在运行完成后,都会返回错误码。如果运行成功,就会返回0,否则会返回特殊代码。
而我这个程序,就是返回 被选择的菜单项 的号码。
比如你运行
- ShowMenu.exe "Apple" "Orange"
复制代码
用户点击Apple,就会返回1,表示选择了第一项。
用户点其它地方关掉菜单,或者点“Cancel...”,就会返回0。
如果不要启用自带的“Cancel...”项,就加 /hc。
- ShowMenu.exe /hc "Apple" "Orange"
复制代码
如果要用首个菜单项为标题,可以加 /dfi 来禁用首个菜单项,以防止被点。
- ShowMenu.exe /dfi /hc "Choose a fruit" "Apple" "Orange"
复制代码
如果菜单项以“-”或“/”开始,就得添加 /eoa 以不继续尝试解析参数为option参数。
- ShowMenu.exe /dfi /hc /eoa "--- Choose a fruit ---" "Apple" "Orange"
复制代码
菜单默认会显示于鼠标之处,但你可以自定义。
- ShowMenu.exe /x:100 /y:100 /dfi /hc /eoa "--- Choose a fruit ---" "Apple" "Orange"
复制代码
———— BAT示例 ————
- @echo off
- setlocal enabledelayedexpansion
- set Item0=Not selected
- set Item1=Chinese
- set Item2=English
- set Item3=Bahasa Melayu
- ShowMenu "%Item1%" "%Item2%" "%Item3%"
- if errorlevel 3 set sel=3&&goto done
- if errorlevel 2 set sel=2&&goto done
- if errorlevel 1 set sel=1&&goto done
- set sel=0
- :done
- echo.
- echo. Selected item: !Item%sel%!
- echo.
- exit
复制代码
———— VBS示例 ————
- Set Shell = CreateObject("WScript.Shell")
- Items=Array("Please select language","English","Chinese","Bahasa Melayu")
- x=ShowMenu(Items)
- If x = 0 Then
- Item = "nothing"
- Else
- Item = Items(x-1)
- End If
- MsgBox "You have selected " & Item
- Function ShowMenu(Byval Items())
- ToRun = "ShowMenu.exe"
- For Each Item In Items
- ToRun = ToRun & " """ & Item & """ "
- Next
- ShowMenu = Shell.Run(ToRun,,True)
- End Function
复制代码
———— 更复杂+完整的VBS示例 ————
为了庆祝我马来西亚57周年独立,展现多元化种族的优势,这次写的VBS不止有英文版和简体中文版,还有我国的官方语言——马来文版本!
请勿使用多线程下载工具下载论坛附件!
———— 下载 ————
ShowMenu and DEMO.rar
(24.5 KB, 下载次数: 9)
希望大家多多支持~
|
-
3
查看全部评分
-
|