Создание ярлыка программно - C#
Формулировка задачи:
Как создать ярлык программно?
непротив посмотреть еще какие нить методы.
сам нашел кое что ))) если кому надо то вот код
// Основные классы
using System.Runtime.InteropServices;
...
static class ShellLink
{
[ComImport,
Guid("000214F9-0000-0000-C000-000000000046"),
InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
internal interface IShellLinkW
{
[PreserveSig]
int GetPath(
[Out, MarshalAs(UnmanagedType.LPWStr)]
StringBuilder pszFile,
int cch, ref IntPtr pfd, uint fFlags);
[PreserveSig]
int GetIDList(out IntPtr ppidl);
[PreserveSig]
int SetIDList(IntPtr pidl);
[PreserveSig]
int GetDescription(
[Out, MarshalAs(UnmanagedType.LPWStr)]
StringBuilder pszName, int cch);
[PreserveSig]
int SetDescription(
[MarshalAs(UnmanagedType.LPWStr)]
string pszName);
[PreserveSig]
int GetWorkingDirectory(
[Out, MarshalAs(UnmanagedType.LPWStr)]
StringBuilder pszDir, int cch);
[PreserveSig]
int SetWorkingDirectory(
[MarshalAs(UnmanagedType.LPWStr)]
string pszDir);
[PreserveSig]
int GetArguments(
[Out, MarshalAs(UnmanagedType.LPWStr)]
StringBuilder pszArgs, int cch);
[PreserveSig]
int SetArguments(
[MarshalAs(UnmanagedType.LPWStr)]
string pszArgs);
[PreserveSig]
int GetHotkey(out ushort pwHotkey);
[PreserveSig]
int SetHotkey(ushort wHotkey);
[PreserveSig]
int GetShowCmd(out int piShowCmd);
[PreserveSig]
int SetShowCmd(int iShowCmd);
[PreserveSig]
int GetIconLocation(
[Out, MarshalAs(UnmanagedType.LPWStr)]
StringBuilder pszIconPath, int cch, out int piIcon);
[PreserveSig]
int SetIconLocation(
[MarshalAs(UnmanagedType.LPWStr)]
string pszIconPath, int iIcon);
[PreserveSig]
int SetRelativePath(
[MarshalAs(UnmanagedType.LPWStr)]
string pszPathRel, uint dwReserved);
[PreserveSig]
int Resolve(IntPtr hwnd, uint fFlags);
[PreserveSig]
int SetPath(
[MarshalAs(UnmanagedType.LPWStr)]
string pszFile);
}
[ComImport,
Guid("00021401-0000-0000-C000-000000000046"),
ClassInterface( ClassInterfaceType.None)]
private class shl_link {}
internal static IShellLinkW CreateShellLink()
{
return (IShellLinkW)(new shl_link());
}
}
public static class ShortCut
{
public static void Create(
string PathToFile, string PathToLink,
string Arguments, string Description)
{
ShellLink.IShellLinkW shlLink = ShellLink.CreateShellLink();
Marshal.ThrowExceptionForHR(shlLink.SetDescription(Description));
Marshal.ThrowExceptionForHR(shlLink.SetPath(PathToFile));
Marshal.ThrowExceptionForHR(shlLink.SetArguments(Arguments));
((System.Runtime.InteropServices.ComTypes.IPersistFile)shlLink).Save(PathToLink, false);
}
}Решение задачи: «Создание ярлыка программно»
textual
Листинг программы
public bool CheckAutoLoad(string name, string path)
{
return System.IO.File.Exists(path + "\\" + name + ".lnk")
}