自定义快捷命令程序(VC++加批处理)
一 概述
在看《从小工到专家-程序员修炼之道》时,看到建议使用Shell,很有感触。在很多时候,通过键盘操作,比鼠标的确会块很多,如果能用好shell命令(或批处理命令) ,的确能节省我们很多的时候,特别是许多经常重复的工作。例如打开浏览器,进入csdn,cnblogs等感兴趣网站这样的工作,很多人会一天会重复许多次,每次重复这样的过程,单调且浪费不少时间,积少成多,浪费的时间很可观,其实可以使用命令行中,“浏览器.exe + 参数”的方式轻松的实现对兴趣网站的访问。其他的常用操作还有很多,例如“打开远程连接”,“通过VS2010打开自己最近在工作的项目”,“打开服务程序”,“打开常用文件夹”,使用自己常用的工具。
二 问题
三 使用场景
四 实现
static const long g_HotKeyCMD = WM_USER + 1;
::RegisterHotKey(this->m_hWnd, ::g_HotKeyCMD, MOD_WIN, 'Z');
BEGIN_MESSAGE_MAP(CXBATDlg, CDialog)
ON_MESSAGE(WM_HOTKEY, OnHotKay)
...
END_MESSAGE_MAP()
LRESULT CXBATDlg::OnHotKay(WPARAM wParam, LPARAM pParam)
{
if (wParam == ::g_HotKeyCMD)
{
// ...
return 0;
}
//...
return 0;
}
BOOL CXBATDlg::PreTranslateMessage(MSG* pMsg)
{
this->UpdateData();
if(pMsg->wParam == VK_RETURN)
{
static CString batPath = "";
if (batPath == "")
{
CString strAppPath;
CXBATDlg::GetAppPath(strAppPath);
batPath = strAppPath + "MyBAT\\run.bat";
}
::ShellExecute(this->m_hWnd, "open", batPath,
this->m_CMD.GetBuffer(), NULL, SW_HIDE);
this->m_CMD = "";
this->UpdateData(FALSE);
return true;
}
return CDialog::PreTranslateMessage(pMsg);
}
if %1==bd (
start /max "C:\...\360se.exe" "www.baidu.com"
)
if %1==bd (
call openurl "www.baidu.com"
)
start "C:\...\VSLauncher.exe" "%1"
start /max "C:\...\360se.exe" %1
start "" %1
start %1
set found=0
@echo off&setlocal enabledelayedexpansion
for /f "tokens=1,2,3 delims= " %%i in (store.txt) do (
if %%i==%1 (
set p=%%j&set p1=!p:#p#=%path%!&set p2=!p1:#f#=%folder%!&set p3=!p2:#s#=%SystemRoot%!
if %%k==s (
call opensln !p3!
)
if %%k==f (
call openfolder !p3!
)
if %%k==u (
call openurl !p3!
)
if %%k==o (
call openexe !p3!
)
echo 找到选项 %%k
set found=1
)
)
kfgj E:\开发工具 f
gjrj E:\工具软件 f
dzs E:\电子书 f
bd www.baidu.com u
cbs http://www.cnblogs.com u
csdn www.csdn.net u
a http://localhost/admin u
h http://localhost/ u
126 www.126.com u
wk http://wenku.baidu.com u
rz F:\.../...xls o
ss F:\...\.....sln s
if %found%==1 (
goto start
)
if %1==iisreset (
start iisreset
goto start
)
if %1==iis (
start C:\WINDOWS\system32\inetsrv\iis.msc
goto start
)
if %1==fw (
start %SystemRoot%\system32\services.msc /s
goto start
)
if %1==yc (
start %SystemRoot%\system32\mstsc.exe
goto start
)
if %1==jsq (
start %SystemRoot%\system32\calc.exe
goto start
)
五 结束
自定义快捷命令程序(VC++加批处理)的更多相关文章
- Linux 自定义快捷命令
Linux中一些比较常用的命令总是重复敲很麻烦,这个时候就可以使用 alias 来自定义快捷命令,用以简化操作.系统会有一些预定义的快捷命令,比如 ll 的效果就和 ls -l 一样. 可以使用 al ...
- linux 利用 alias 自定义快捷命令
例如:alias avi='cd /home/study/goodstudy/goodgoodstudy/english/movie/avi'则后续命令行输入 avi , 就自动执行了 cd xxx ...
- vc++ 加载,卸载自己的驱动程序
用vc++加载自己的驱动程序主要分为以下几个步骤: 1.加载驱动服务 主要要用到以下几个函数 SC_HANDLE WINAPI OpenSCManagerA( __in_opt LPCS ...
- 重新想象 Windows 8 Store Apps (69) - 其它: 自定义启动屏幕, 程序的运行位置, 保持屏幕的点亮状态, MessageDialog, PopupMenu
[源码下载] 重新想象 Windows 8 Store Apps (69) - 其它: 自定义启动屏幕, 程序的运行位置, 保持屏幕的点亮状态, MessageDialog, PopupMenu 作者 ...
- FFmpeg命令行工具和批处理脚本进行简单的音视频文件编辑
FFmpeg_Tutorial FFmpeg工具和sdk库的使用demo 一.使用FFmpeg命令行工具和批处理脚本进行简单的音视频文件编辑 1.基本介绍 对于每一个从事音视频技术开发的工程师,想必没 ...
- 动态符号链接的细节 与 linux程序的加载过程
转: http://hi.baidu.com/clivestudio/item/4341015363058d3d32e0a952 值得玩味的一篇分析程序链接.装载.动态链接细节的好文档 导读: by ...
- kali日常快捷命令(用到就更新)
什么BASH命令? 在Linux上采用bash作为标准,基本上它描述了对带有".sh"扩展名的vi编辑器等文本的处理并执行. 与编程一样,它有许多函数,如变量,函数和算术处理,所以 ...
- 使用mac 终端利用alias设置快捷命令
在终端中输入快捷命令可以提高工作效率,同时可以少记很多命令 如何做: 首先在~/目录下编辑 .bash_profile这个隐藏文件,如果你想直接双击此文件打开编辑的话请在终端输入 Mac 显示隐藏文件 ...
- linux启动后自动登录并运行自定义图形界面程序
在<Ubuntu CTRL+ALT+F1~F6 进入命令模式后不支持中文显示的解决办法>一文中提到linux启动在以后运行一个独占显示器的图形程序的两种办法. 1.不启动xserver,使 ...
- android 获取当前版本号/修改自定义的应用程序的版本号
1.获取当前版本号 PackageManager pm = getPackageManager(); PackageInfo pi = pm.getPackageInfo(getPackageName ...
随机推荐
- Linux 练习
目录 练习一 练习2 练习一 分析日志t.log(访问量),将各个ip地址截取,并统计出现次数,并按从大到小排序(腾讯) 每行格式:http: //192.168.200.30/index1.html ...
- Abp Vnext Vue版本(Vben Admin5.0)
前言 之前有提供免费开源的基于vben2.8版本的abp vnext pro版本 abp vnext pro vben admin 2.8 vben2.8作者已经重构一个版本,命名为vben5,而vb ...
- Java并发基础构建模块简介
在实际并发编程中,可以利用synchronized来同步线程对于共享对象的访问,用户需要显示的定义synchronized代码块或者方法.为了加快开发,可以使用Java平台一些并发基础模块来开发. 注 ...
- 三、FreeRTOS学习笔记-系统配置
FreeRTOSConfig.h配置文件作用:对FreeRTOS进行功能配置和裁剪,以及API函数的使能. 系统配置文件中主要是一些宏定义 相关宏定义可分为三类: 1."INCLUDE&qu ...
- 从Delphi到Lazarus——Lazarus开发环境使用入门教程
0.前言 曾经有过更换开发环境体验的编程爱好者都会有同样的感受:打开新更换的开发环境后,看到陌生的界面无从下手.想写一段小程序试一试,却你找不到自己需要的组件在哪里. 其实,我们每到一个新地方,首先要 ...
- arbitrum 资产桥合约
资产桥的作用 Rollup 的主要流程中,实际上不包含资产桥,也就是说即使没有资产桥,L2依然能正常运行但是此时L1与L2在数据上是完全独立的两条链,L1不理解L2上的数据(L1只保存L2压缩后的数据 ...
- docker containner挂掉,无法exec进入bash,如何修改文件的终极解决方法
场景: Nginx在bash里面配置的时候挂掉了,然后docker start不起来,exec bash进不去,造成无法再改里面的文件了 解决方法: 1,docker ps –a 可以查到所有dock ...
- 腾讯云 TStor 统一存储通过信通院首批文件存储基础能力评测
在大数据上升为国家战略背景下,当前我国各行业.各领域正积极提升数据资源掌控能力和深度价值挖掘能力.存储作为数据基础设施建设的关键支柱,在国民经济发展过程中的重要性日益凸显. 2022年6月16日,中国 ...
- Dart代码混淆
Dart代码混淆 代码混淆是修改应用程序的二进制文件以使其更难被人类理解的过程.混淆会在编译后的 Dart 代码中隐藏函数和类名称,将每个符号替换为另一个符号. Flutter 的代码混淆仅适用于re ...
- IOS颜色选择器
IOS颜色选择器 UIColorWell UIColorWell是一个继承UIControl的视图,它不能调整大小和UISwitch类似,大小大约是44*44.点击可弹出一个选择颜色的弹窗 因为是继承 ...