075玩软件园
首页 > 资讯教程 > 软件教程 > 编程开发 > bat创建快捷方式技巧

bat创建快捷方式技巧

作者:075玩 来源:互联网 2023-03-22 21:03:16

今天小编就来教大家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

返回顶部