【www.hzclsc.cn--编程】
今天小编就来教大家bat创建快捷方式的方法,首选要告诉大家bat是无法自已创建lnk的快捷方式的,但是可以创建url快捷方式,下面一起来学习下bat创建快捷方式吧。
一、 简洁的方法
先通过Windows为相应的程序创建一个快捷方式,再将系统自动生成的快捷方式名修改一下,也就是把快捷方式名中的空格删除。然后可以建立一个批处理文件,使用move命令或copy命令即可完成。比如需要为C盘tv目录下的vnc.exe在桌面是创建快捷方式,可先通过Windows系统为该程序创建一个快捷方式vnc.lnk,然后建立个bat文件,在文件中编写如下命令:
cd %userprofile%\桌面
copy c:\tv\vnc.lnk
或者输入以下命令:
cd %userprofile%\桌面
move c:\tv\vnc.lnk
或者:
copy QQ2010.lnk %userprofile%\桌面\QQ2010.lnk
二、稍微复杂点的办法
直接建立一个批处理文件,在其中输入以下命令(依然以“为C盘tv目录下的vnc.exe在桌面是创建快捷方式”为例):
set path=c:\tv\vnc.exe
set topath= %USERPROFILE%\桌面\VNC.url
echo [InternetShortcut] %topath%
echo URL= %path% %topath%
echo IconIndex=0 %topath%
echo IconFile=%path% %topath%
通过BAT创建 VBS 和 vbs来创建快捷方式
思路:
思路:通过bat输出vbs代码,然后调用WScript.exe执行相关代码
@echo
set ShortcutTargetPath= %~dp0%..\External\DEVENV.bat
set ShortcutPath= C:\Documents and Settings\lanx\Desktop\TCT.lnk
set IconLocationPath= %VS80COMNTOOLS%..\IDE\devenv.exe,3
set HotKey= CTRL+SHIFT+T
echo Set WshShell=WScript.CreateObject( WScript.Shell ) tmp.vbs
echo Set Shortcut=WshShell.CreateShortCut(%ShortcutPath%) tmp.vbs
echo Shortcut.Hotkey = %HotKey% tmp.vbs
echo Shortcut.IconLocation=%IconLocationPath% tmp.vbs
echo Shortcut.TargetPath=%ShortcutTargetPath% tmp.vbs
echo Shortcut.Save tmp.vbs
%SystemRoot%\System32\WScript.exe tmp.vbs
@del /f /s /q tmp.vbs
三、用API来创建
编写一个程序,通过API函数为相应的程序创建快捷方式
通过Shell编程达到目的,但是这种方法在XP中不太实用,因为不容易得到不同用户的桌面目录。下面是MFC代码:
HRESULT CttDlg::CreateShortcut(LPCSTR pszPathObj, LPSTR pszParam, LPSTR pszPath, LPSTR pszPathLink,LPSTR pszDesc)
{
HRESULT hres ;
IShellLink * psl ;
IPersistFile* ppf ;
WORD wsz[ 100] ;
CoInitialize(NULL);
hres = (HRESULT)CoCreateInstance( CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, IID_IShellLink, (void **) psl) ;
if( FAILED( res))
{
CoUninitialize();
return FALSE ;
}
// set the path to the shortcut target, and add the description
psl - SetPath(pszPathObj);
psl - SetArguments( pszParam) ;
psl - SetDescription(pszDesc);
psl - SetWorkingDirectory(pszPath);
// query IShellLink for the IPersistFile interface for saving the shortcut in persistent storage
hres = (HRESULT)(psl - QueryInterface( IID_IPersistFile, (void **) ppf)) ;
if( FAILED( hres))
{
CoUninitialize();
return FALSE ;
}
// ensure that that string is ANSI
MultiByteToWideChar( CP_ACP, 0, pszPathLink, -1, (LPWSTR)wsz, 100);
// save the link by calling IPersistFile::Save
hres = ppf - Save((LPCOLESTR)wsz, STGM_READWRITE) ;
// release the IPersistFile interface
ppf - Release();
// release the IShellLink interface
psl - Release();
CoUninitialize();
return hres ;
}
为了通知系统桌面发生变化,需要再定义如下函数:
void CttDlg::NotifyShell(LONG wEventId, LPSTR szPath)
{
SHChangeNotify(wEventId,SHCNF_FLUSH | SHCNF_PATH,szPath,0);
SHChangeNotify(SHCNE_UPDATEDIR | SHCNE_INTERRUPT,SHCNF_FLUSH | SHCNF_PATH,szPath,0);
}
然后就可以通过如下代码进行调用了:
CreateShortcut( c:\\windows\\notepad.exe , c:\\config.sys , c:\\windows , C:\\Documents and Settings\\Xu YingMing\\桌面记事本.lnk , 记事本
NotifyShell(SHCNE_MKDIR | SHCNE_INTERRUPT, c:\\windows\\notepad.exe
方法四,winrar
@echo off
echo Path=%%SystemRoot%%\system32\ test.txt
echo Silent=^2 test.txt
echo Overwrite=^1 test.txt
echo Shortcut=D, mspaint.exe , \ , 创建和编辑图画,以及显示和编辑扫描获得的图片。 , 图画 test.txt
start /wait winrar.exe a -r -ep1 -m1 -sfx -ztest.txt test.exe %SystemRoot%\system32\mspaint.exe
start /wait test.exe
del test.*
热键和数值的对应关系
833 - ctrl + shift + a
834 - ctrl + shift + b
835 - ctrl + shift + c
836 - ctrl + shift + d
837 - ctrl + shift + e
838 - ctrl + shift + f
1601 - ctrl + alt + a
1602 - ctrl + alt + b
1603 - ctrl + alt + c
1604 - ctrl + alt + d
1605 - ctrl + alt + e
1606 - ctrl + alt + f
本文来源:http://www.hzclsc.cn/ruanjianzixun/44844.html