自定义快捷命令程序(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 ...
随机推荐
- Go语言net/http包源码学习
0.前言 该笔记为笔者第一次学习go的net/http包源码的时候所记,也许写的并不是很精确,希望大家多多包涵,一起讨论学习. 该笔记很大程度的参考了网名为"小徐先生"的前辈所分享 ...
- 2023NOIP A层联测26 T4 abstract
2023NOIP A层联测26 T4 abstract 乱证明求性质的光速幂优化题. 思路 对于每一个节点,到该节点的子树内的叶子节点的路径中(包括路径上的点),出现的值只有 \(k\times(\l ...
- hyperf使用session
在hyperf里面使用session的时候可以先安装组件包 composer require hyperf/session Session 组件的配置储存于 config/autoload/sess ...
- Socket Tcp高密集信息广播转发强度测试
在有些场中存在着大量的消息广播转发,为了了解.net socket tcp在这方面的性能表现,所以做了一个比较极端信息广播转发强度测试.测试场景是以400个连接信息相互广播为测试用例就是当其中一个连接 ...
- Python数据存储之shelve和dbm
一.shelve 和 dbm 的介绍 shelve 和 dbm 都是 python 自带的数据库管理模块,可以用于持久化存储和检索 python 中的对象. 虽然这两个模块的本质都是建立 key-va ...
- Educational Codeforces Round 65 (Rated for Div
D - Bicolored RBS 给定一个括号序列,现在你必须对每一个括号涂成蓝色或红色,要求使得涂完后的红色括号和蓝色括号序列都必须是合法的括号序列,设红色括号形成的的括号序列的深度为\(dep_ ...
- juc 学习
CyclicBarrier 应用场景是比如在做压力测试时,使用多少个用户并发,做集合点测试. 比如设置 100个用户并发,100个用户同时进行压测,只有100个用户压测完毕时,才能再发起下一波的压力测 ...
- 使用redis 的订阅服务
1.业务使用场景 我们在使用表单动态添加字段,如果新增字段,再保存数据,这个时候就会出错,出错的原因是seata 再本地缓存元数据,修改物理表的时候,这个元数据并没有发生变化,因此需要刷新元数据,因为 ...
- 使用canal将数据同步到ROCKETMQ
概述 我们需要将数据从MYSQL写入到rocketmq.实现步骤如下: 安装canal.admin 修改配置 server: port: 8849 spring: jackson: date-form ...
- TypeScript 笔记(一)
1. TypeScript 的介绍 完整教程TypeScript 入门教程 TypeScript 是 JavaScript 的一个超集,支持 ECMAScript 6 标准,由微软开发的自由和开源的编 ...