Downloader programımın kısayol oluşturmasını istiyorum ama bir türlü olmuyor

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Üye
Katılım
4 Şub 2021
Mesajlar
17
Tepki puanı
0
Yaş
23
5 HİZMET YILI
Arkadaşlar bir süredir downloader programı yapmaya çalışıyorum yaptım da ama sonda ki kurulumu bitir tuşuna bastığımda indirdiği bir exe dosyasının kısayolunu masaüstüne atmasını istiyorum internette gördüğüm kaynakları bir türlü anlayamadım eğer bilen birisi varsa yardımcı olabilirmi ? gerekirse github üzerinden projemi paylaşabilirim sizlerle
 
Seçkin Üye
Katılım
22 Kas 2020
Mesajlar
315
Çözümler
1
Tepki puanı
95
Ödüller
3
5 HİZMET YILI
Bunu yapmak için windowsun apisi mevcut. Senin için hazır yaptım bile :D alttan projeyi indirebilirsin.

Adsız.png



C#:
static void Main(string[] args)
        {

// Referans - https://stackoverflow.com/questions/4897655/create-a-shortcut-on-desktop

            Console.Clear();

            Console.WriteLine("\n\n[>] Kisayol oluşturulacak dosya yolu\n\n");
            string dosya = Console.ReadLine();

            Console.WriteLine($"\n\n[>] {dosya} dosyasına eklenecek açıklama\n\n");
            string aciklama = Console.ReadLine();

            IShellLink link = (IShellLink)new ShellLink();

            // Kurulum infoları
            link.SetDescription(aciklama);
            link.SetPath(dosya);

            // Kaydet
            IPersistFile file = (IPersistFile)link;

            string suankiDizin = Directory.GetCurrentDirectory(); // masaüstüne atmak istersen - Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory);

            file.Save(Path.Combine(suankiDizin, $"{dosya}.lnk"), false);

            Console.WriteLine($"\n\n[>] Başarılı :)\n\n");
            Console.ReadKey();


        }

        [ComImport]
        [Guid("00021401-0000-0000-C000-000000000046")]
        internal class ShellLink
        {
        }

        [ComImport]
        [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
        [Guid("000214F9-0000-0000-C000-000000000046")]
        internal interface IShellLink
        {
            void GetPath([Out, MarshalAs(UnmanagedType.LPWStr)] StringBuilder pszFile, int cchMaxPath, out IntPtr pfd, int fFlags);
            void GetIDList(out IntPtr ppidl);
            void SetIDList(IntPtr pidl);
            void GetDescription([Out, MarshalAs(UnmanagedType.LPWStr)] StringBuilder pszName, int cchMaxName);
            void SetDescription([MarshalAs(UnmanagedType.LPWStr)] string pszName);
            void GetWorkingDirectory([Out, MarshalAs(UnmanagedType.LPWStr)] StringBuilder pszDir, int cchMaxPath);
            void SetWorkingDirectory([MarshalAs(UnmanagedType.LPWStr)] string pszDir);
            void GetArguments([Out, MarshalAs(UnmanagedType.LPWStr)] StringBuilder pszArgs, int cchMaxPath);
            void SetArguments([MarshalAs(UnmanagedType.LPWStr)] string pszArgs);
            void GetHotkey(out short pwHotkey);
            void SetHotkey(short wHotkey);
            void GetShowCmd(out int piShowCmd);
            void SetShowCmd(int iShowCmd);
            void GetIconLocation([Out, MarshalAs(UnmanagedType.LPWStr)] StringBuilder pszIconPath, int cchIconPath, out int piIcon);
            void SetIconLocation([MarshalAs(UnmanagedType.LPWStr)] string pszIconPath, int iIcon);
            void SetRelativePath([MarshalAs(UnmanagedType.LPWStr)] string pszPathRel, int dwReserved);
            void Resolve(IntPtr hwnd, int fFlags);
            void SetPath([MarshalAs(UnmanagedType.LPWStr)] string pszFile);
        }


Hazır olarak indirme linki
Bağlantıları görmek için lütfen Giriş Yap
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Üst