自定义快捷命令程序(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 ...
随机推荐
- 4-11.3 C++中的显式类转换
目录 static_cast 1.用来改变基本类型:一般是高精度转低精度 2.恢复void* 指针类型 const_cast 用来去除底层const(low-level const) reinterp ...
- C# Winform 子窗体提交后更新父窗体datagridview数据(事件和委托)
首先整理思路 子类调用父类的dgv控件,如果是使用委托和事件的方式,应该在子类定义委托和事件. 见图1 父类将刷新datagridview的方法传入事件中. 见图2 子类再调用此事件.见图3 那么父窗 ...
- 接口测试中如何保持session鉴权/会话
当接口使用token鉴权时,可以直接在响应数据中提取token的值,关联到其他接口使用 如果接口使用的是session鉴权,可以使用session=resquests.Session()方法,创建一个 ...
- 2023NOIP A层联测9 T3 天竺葵
2023NOIP A层联测9 T3 天竺葵 题面及数据范围 Ps:连接为accoderOJ. 看题大概是一个最长上升子序列的带权版本,于是想到 dp. 设 \(dp[i][j]\) 为到第 \(i\) ...
- Java反编译器剖析
本文由 ImportNew - 邬柏 翻译自 javacodegeeks.如需转载本文,请先参见文章末尾处的转载要求. Importnew注:如果你也对Java技术翻译分享感兴趣,欢迎加入我们的Jav ...
- MySQL之查询操作
1)使用in查询, 保持顺序 SELECT * FROM `template_data` where template_id in (7339747298123169843,7339747324194 ...
- 根据Xml节点名获取Xpath
我们经常使用Xpath去获取Xml中某个节点的值,但是有时候我们需要反过来,根据Xml的节点名来获取对应的Xpath. 找了一下,几乎所有的Xml库都没有提供类似的功能,这里我们就简单说一说这玩意咋实 ...
- Vue3 组合式API
1.入口 创建实例时,配置setup方法,然后其内部书写组合式API代码,通过组合式API生产的数据和返回,需要暴漏出去才能给HTML使用 <script> //组合式(解构赋值) con ...
- Vue.js 文本行滚动
1.前言 文本行滚动组件,效果如图 2.封装思路 封装一个组件,接收一个数组,每个数组元素就是一个段文本 组件使用httpVueLoader进行封装加载 使用css位移,配合过渡效果才展示动画 滚动逻 ...
- javase学习文档
javase学习文档(更新) javase 学习文档已更新 查看地址:https://lib.stazxr.cn/codenotes/java/javase/