Atitit.創建快捷方式 windows快捷方式的原理

来源:http://www.cnblogs.com/attilax/archive/2016/03/09/5259818.html
-Advertisement-
Play Games

Atitit.創建快捷方式 windows快捷方式的原理 1. Windows中有2種快捷方式的文件:1 2. Jshortcut2 2.1. 提示新不上jshortcut.dll2 2.2. 使用win api實現3 2.3. 使用WshShell com實現3 2.4. Win沒提供cli格式的


Atitit.創建快捷方式 windows快捷方式的原理

 

 

1Windows中有2種快捷方式的文件:1

2Jshortcut2

2.1. 提示新不上jshortcut.dll2

2.2. 使用win api實現3

2.3. 使用WshShell  com實現3

2.4. Win沒提供cli格式的方法3

34

4Attilax的總結4

5Ref4

6Winapi code4

7--end6

 

1. Windows中有2種快捷方式的文件:

1、快捷方式文件是二進位文件;

2、Internet快捷方式文件,格式和INI文件一樣,擴展名為 .URL。

 

作者:: 綽號:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿爾 拉帕努伊 ) 漢字名:艾龍,  EMAIL:[email protected]

轉載請註明來源: http://www.cnblogs.com/attilax/

 

 

 

在此學習一下Internet快捷方式文件。

 

Internet快捷方式的文件格式如下: 

[DEFAULT]

BASEURL=

 

[InternetShortcut]

URL=

WorkingDirectory=

ShowCommand=

IconIndex=

IconFile=

Modified=

HotKey=

 

其中

· BASEURL、URL和WorkingDirectory這3項的含義是不言而明的。

· ShowCommand規定Internet Explorer啟動後視窗的初始狀態:7表示最小化,3表示最大化;如果沒有ShowCommand這一項的話則表示正常大小。

· IconFile和IconIndex用來為Internet快捷方式指定圖標;如果你不想指定圖標,Windows會使用預設的Internet快捷方式圖標。

· HotKey指定一個整數值;HotKey的值及其含義見附錄。

 

2. Jshortcut

 

JShortcut - A Java Native Interface (JNI) to …

翻譯此頁

This page contains information, documentation, and downloads for JShortcutJShortcut isa Java package with a native library that allows a Java application to create ...

 

 

GitHub - jimmc jshortcut  Java JNI interface to access Windows shortcuts.htm

 

http://alumnus.caltech.edu/~jimmc/jshortcut/download/index.html

Jim McBeathhttp://www.alumni.caltech.edu/~jimmc

 

 

2.1. 提示新不上jshortcut.dll

Bg na feodg jshortcut.jar yda d dir hto...zo ok le ..

 

Se,yeu tips  31bit d ,mafe ....give up..le..

Exception in thread "main" java.lang.UnsatisfiedLinkError: D:\workspace 空格\AtiPlatf\WEB-INF\lib_dll\jshortcut.dll: Can't load IA 32-bit .dll on a AMD 64-bit platform

at java.lang.ClassLoader$NativeLibrary.load(Native Method)

at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1937)

at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1822)

at java.lang.Runtime.load0(Runtime.java:809)

at java.lang.System.load(System.java:1086)

at net.jimmc.jshortcut.JShellLink.<clinit>(JShellLink.java:100)

at com.attilax.util.ShortCut.createShortCut(ShortCut.java:31)

at com.attilax.util.ShortCut.main(ShortCut.java:17)

 

 

2.2. 使用win api實現

 

 

用指定的類標識符創建一個Com對象,用指定的類標識符創建一個未初始化的對象。當在本機中只創建一個對象時,可以調用CoCreateInstance;在遠程系統中創建一個對象時,可以調用CoCreateInstanceEx;創建多個同一CLSID的對象時可以參考CoGetClassObject 函數。

2.3. 使用WshShell  com實現

Set WshShell = WScript.CreateObject("WScript.Shell")
strDesktop = WshShell.SpecialFolders("Desktop")
set oShellLink = WshShell.CreateShortcut(strDesktop & "\學習天地.lnk")

 

2.4. Win沒提供cli格式的方法

 

3.  

4. Attilax的總結

使用ini格式的url算蘭..

5. Ref

java創建快捷方式(作者 ice古雨) - - ITeye技術網站.htm

()創建快捷方式到桌面的腳本命令_singularpoint_新浪博客.htm

Internet快捷方式-vivieu-ChinaUnix博客.htm

命令行創建快捷方式-vivieu-ChinaUnix博客.htm

CoCreateInstance_百度百科.htm

CoCreateInstance具體內部實現 - IT民工 博客頻道 - CSDN.NET.htm

 

6. Winapi code

 

  hr = CoCreateInstance(CLSID_ShellLink, NULL,
       CLSCTX_INPROC_SERVER, IID_IShellLink, (void**)&pisl);

   IPersistFile* pIPF;

/////////////////////////////////////////////////////////////////////////////////////////////////////////////

//這裡是我們要創建快捷方式的原始文件地址
   pisl->SetPath("c:\\windows\\notepad.exe");
   hr = pisl->QueryInterface(IID_IPersistFile, (void**)&pIPF);
   if (SUCCEEDED(hr))
   {

/////////////////////////////////////////////////////////////////////////////////////////////////////////////

//這裡是我們要創建快捷方式的目標地址


    pIPF->Save(L"c:\記事本.lnk", FALSE);
    pIPF->Release();

 

 

h = CoCreateInstance( CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER,

IID_IShellLink, (PVOID*)&shellLink );

if (FAILED(h)) {

errStr = "Failed to create IShellLink";

goto err;

}

 

h = shellLink->QueryInterface(IID_IPersistFile, (PVOID*)&persistFile);

if (FAILED(h)) {

errStr = "Failed to get IPersistFile";

goto err;

}

 

 

7. --end

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 步驟: 第一步:註冊新浪SAE賬號(即新浪微博),下載TortoiseSVN 第二步:部署代碼 使用SAE來部署代碼,SAE提供的是PAAS層的雲服務,即不是給你一個虛擬主機而是直接上傳應用。進入SAE的控制台,下圖所示: 1. 創建新應用: 2. 選擇python2.7後,創建新項目成功後,回到控
  • 生產環境常見的HTTP狀態碼列表(List of HTTP status codes)為: 200 - OK,伺服器成功返回網頁 - Standard response for successful HTTP requests. 301 - Moved Permanently(永久跳轉),請求的網頁
  • awk是一個強大的文本分析工具,相對於grep的查找,sed的編輯,awk在其對數據分析並生成報告時,顯得尤為強大。簡單來說awk就是把文件逐行的讀入,以空格為預設分隔符將每行切片,切開的部分再進行各種分析處理。 awk有3個不同版本: awk、nawk和gawk,未作特別說明,一般指gawk,g...
  • 之前在設計板卡時,只是聽過相關的概念,但是未真正去研究關於SI相關的知識。將之前看過的一些資料整理如下: (1)信號完整性分析 與SI有關的因素:反射,串擾,輻射。反射是由於傳輸路徑上的阻抗不匹配導致;串擾是由於線間距導致;輻射則與高速器件本身以及PCB設計有關。 傳輸線判斷 傳輸線的判斷可以參考之
  • 來自系統媽:http://www.xitongma.com 新蘿蔔家園GHOST win7系統64位官方經典版 V2016年3月 系統概述 新蘿蔔家園ghost win7系統64位官方經典版加快“網上鄰居”共用速度;取消不需要的網路服務組件,系統支持Windows安裝,可以在Windows中一鍵安裝
  • http://win10.ithome.com/win10xiazai/ http://msdn.itechzero.com/
  • 系統來自系統媽:http://www.xitongma.com 電腦公司最新GHOST win7系統64位極速安全版 V2016年3月 系統簡介 電腦公司ghost win7系統64位極速安全版集成了最新的安全補丁和其它系統升級程式,可以通過微軟正版驗證,支持線上更新。支持Windows下一鍵全自動
  • groupadd - create a new groupgroupadd命令用於創建一個新的組語法 groupadd [options] group選項: -h 獲得幫助信息 -g 創建指定GID的用戶組 -p 創建組的同時指定組密碼 -r --system 創建一個系統用戶,UID在1-499
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...