當前位置:編程學習大全網 - 編程語言 - 如何在程序中創建另壹個程序的快捷方式

如何在程序中創建另壹個程序的快捷方式

以下是壹些資料,供參考:

------------------------------------------

編程思想:

------------------------------------------

Windows外殼(Shell)的快捷方式是以OLE技術的組件對象模型COM(Component Object Modal)為基礎而設計的。利用COM模型,壹個應用程序可以調用另壹應用程序的某些功能。這方面的技術細節請參閱有關文獻。

在了解了上述基本原理後,創建Windows的快捷方式就比較容易了。首先利用OLE通過調用CoCreateInstance()函數建立壹個IID_IShellLink實例,並同時得到其接口指針。利用這個接口指針可以對其各項屬性進行設置。為了使這些信息以快捷方式的數據文件(*.lnk)格式保存起來,還需要從IID_IShellLink對象取得其IID_IPersistFile接口指針,以便於調用其成員函數Save()保存前面設置的信息。

至於如何刪除快捷方式以及創建和刪除文件夾,則只需要簡單地調用文件操作函數SHFileOperation()就可以了。

另外應該註意,在完成上述操作之後,都要調用SHChangeNotify()函數通知Windows外殼有關變化以使之及時更新其顯示狀態。

//創建快捷方式

BOOL CreateLink (

LPSTR szPath,//快捷方式的目標應用程序名

LPSTR szLink)//快捷方式的數據文件名(*.lnk)

{

HRESULT hres ;

IShellLink * psl ;

IPersistFile* ppf ;

WORD wsz[ MAX_PATH] ;

//創建壹個IShellLink實例

hres = CoCreateInstance( CLSID_ShellLink, NULL,

CLSCTX_INPROC_SERVER, IID_IShellLink,

(void **)&psl) ;

if( FAILED( hres))

return FALSE ;

//設置目標應用程序

psl -> SetPath( szPath) ;

//設置快捷鍵(此處設為Shift+Ctrl+'R')

psl -> SetHotkey( MAKEWORD( 'R',

HOTKEYF_SHIFT |HOTKEYF_CONTROL)) ;

//從IShellLink獲取其IPersistFile接口

//用於保存快捷方式的數據文件 (*.lnk)

hres = psl -> QueryInterface( IID_IPersistFile,

(void**)&ppf) ;

if( FAILED( hres))

return FALSE ;

// 確保數據文件名為ANSI格式

MultiByteToWideChar( CP_ACP, 0, szLink, -1,

wsz, MAX_PATH) ;

//調用IPersistFile::Save

//保存快捷方式的數據文件 (*.lnk)

hres = ppf -> Save( wsz, STGM_READWRITE) ;

//釋放IPersistFile和IShellLink接口

ppf -> Release( ) ;

psl -> Release( ) ;

return TRUE;

}

  • 上一篇:函數圖像繪制的技巧有什麽?
  • 下一篇:幼兒園大班美術教案《有趣的面具》
  • copyright 2024編程學習大全網