Avatar
Lukáš Tesař:

Ahoj, můžete mi někdo poradit, jak vytvořit v C# .NET zástupce na ploše? Hledal jsem na netu, a našel jsem jen něco na stack overflow, ale to byl internetový zástupce.
Předem děkuji za odpovědi

 
Odpovědět 1.8.2014 14:11
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na Lukáš Tesař
Jan Vargovský:

V podstatě to co jsi ty našel je jedna z možností. Seskupil jsem to celé dohromady a tu máš výsledek.

Musíš si přidat referenci (Pravým na References -> Add reference). Vyhledej v COM "Windows Script Host Object Model", tu označ a potvrď.

Pak už můžeš využívat tuhle metodu.

private static void CreateShortcut(string shortcutPath, string targetPath)
{
    if (!shortcutPath.EndsWith(".lnk"))
        shortcutPath += ".lnk";

    if (!System.IO.File.Exists(targetPath))
        throw new FileNotFoundException();

    IWshRuntimeLibrary.WshShell shell = new IWshRuntimeLibrary.WshShell();
    IWshRuntimeLibrary.IWshShortcut shortcut = shell.CreateShortcut(shortcutPath);
    shortcut.TargetPath = targetPath;
    shortcut.Save();
}

Pak jen ukázka na čem jsem to testoval

[STAThread]
private static void Main(string[] args)
{
    var shortcutName = "shortcut test.lnk";
    var shortcutPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), shortcutName);

    var executableName = "TestConsole.exe";
    var executablePath = Path.Combine(Environment.CurrentDirectory, executableName);

    CreateShortcut(shortcutPath, executablePath);
}

Kdyby něco, klidně se zeptej :)

Editováno 1.8.2014 22:01
 
Nahoru Odpovědět 1.8.2014 22:00
Avatar
Odpovídá na Jan Vargovský
Lukáš Tesař:

Díky za reakci, ale přece jen bych se chtěl na něco zeptat; Proč deklaruješ proměnné tak, jak v javě? (var) A jak funguje Current Directory ?

 
Nahoru Odpovědět 2.8.2014 7:04
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na Lukáš Tesař
Jan Vargovský:

Nevím o tom, že by Java měla klíčové slovo var, asi myslíš JavaScript (Btw, to není var tak jako v dynamických jazycích, ono si to zjistí typ hned při kompilaci a hned to zamění). Každopádně momentálně nevím, v tu chvíli jsem to tak napsal, klidně si to změn na stringy.

CurrectDirectory funguje tak jak bys očekával (když si to správně přeložíš), takže ti vrátí cestu (path) k tomu, odkud jsi spustil aplikaci (Většinou to je Nazev projektu/bin/de­bug/nazev projektu.exe)

 
Nahoru Odpovědět 2.8.2014 11:48
Avatar
 
Nahoru Odpovědět 2.8.2014 19:09
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 5 zpráv z 5.