C# 创建快捷方式 / 取快捷方式目标

大家讲道理
Freigeben: 2016-11-10 14:49:41
Original
1874 Leute haben es durchsucht

快捷方式在Win32上应用的非常之多,比如某个软件安装完毕后会创建一些快捷方式

到特定目录下,那么在.NET上我并未发现有什么托管类可以操作快捷方式,那么我们

using System;  
using System.IO;  
using System.Runtime.InteropServices;  
class Program  
{  
    static void Main(string[] args)  
    {  
        CreateShortCut( // 创建快捷方式  
                @"C:\Users\windo\Desktop\ican.lnk",  
                @"%HOMEDRIVE%/Program Files\Internet Explorer\IEXPLORE.EXE",  
               
               
               AppDomain.CurrentDomain.BaseDirectory,  
               @"%HOMEDRIVE%/Program Files\Internet Explorer\IEXPLORE.EXE, 0",  
               "CTRL+ALT+Z" 
            );  
   
    }  
   
    public static readonly Guid CLSID_WshShell = new Guid("72C24DD5-D70A-438B-8A42-98424B88AFB8");  
    public static string GetShortCutTarget(string lnk) // 取快捷方式目标  
    {  
        if (lnk != null && File.Exists(lnk))  
        {  
            dynamic objWshShell = null, objShortcut = null;  
            try 
            {  
                objWshShell = Activator.CreateInstance(Type.GetTypeFromCLSID(CLSID_WshShell));  
                objShortcut = objWshShell.CreateShortcut(lnk);  
                return objShortcut.TargetPath;  
            }  
            finally 
            {  
                Marshal.ReleaseComObject(objShortcut);  
                Marshal.ReleaseComObject(objWshShell);  
            }  
        }  
        return string.Empty;  
    }  
   
    public static bool CreateShortCut(string lnkFileName,  
            string targetPath,  
            string arguments,  
            string remark,  
            string workingDirectory,  
            string iconLocation,  
            string hotKey  
        )  
    {  
        if (lnkFileName != null && lnkFileName.Length > 0)  
        {  
            dynamic objWshShell = null, objShortcut = null;  
            try 
            {  
                objWshShell = Activator.CreateInstance(Type.GetTypeFromCLSID(CLSID_WshShell));  
                objShortcut = objWshShell.CreateShortcut(lnkFileName);  
   
                objShortcut.WindowStyle = 1;  
   
                objShortcut.Hotkey = hotKey; // 热键  
                objShortcut.TargetPath = targetPath; // 目标文件  
                objShortcut.Arguments = arguments; // 参数  
                objShortcut.Description = remark; // 备注  
                objShortcut.WorkingDirectory = workingDirectory; // 起始位置  
                objShortcut.IconLocation = iconLocation; // 图标位置  
   
                objShortcut.Save();  
   
                return true;  
            }  
            finally 
            {  
                Marshal.ReleaseComObject(objShortcut);  
                Marshal.ReleaseComObject(objWshShell);  
            }  
        }  
        return false;  
    }  
}
Nach dem Login kopieren


Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!