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快捷方式的原理
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 JShortcut. JShortcut 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