PDA

View Full Version : آموزش: ساخت شورتکات



kiadata
دوشنبه 25 اسفند 1393, 11:14 صبح
این نوع ساختن شورتکات برای دات نت 3.5 و 3.5 به پائین می باشد




string programs_path4 = Environment.GetFolderPath(Environment.SpecialFolde r.DesktopDirectory);
Type shellType = Type.GetTypeFromProgID("WScript.Shell");
object shell = Activator.CreateInstance(shellType);
object shortcut = shellType.InvokeMember("CreateShortcut",
BindingFlags.Public | BindingFlags.Instance | BindingFlags.InvokeMethod,
null, shell, new object[] { programs_path4 + "\\MyAPP.lnk" });
Type shortcutType = shortcut.GetType();
shortcutType.InvokeMember("TargetPath",
BindingFlags.Public | BindingFlags.Instance | BindingFlags.SetProperty,
null, shortcut, new object[] { InstallPath + "\\MyAPP.exe" });
shortcutType.InvokeMember("WorkingDirectory",
BindingFlags.Public | BindingFlags.Instance | BindingFlags.SetProperty,
null, shortcut, new object[] { InstallPath });
shortcutType.InvokeMember("Save",
BindingFlags.Public | BindingFlags.Instance | BindingFlags.InvokeMethod,
null, shortcut, null);


اگه بخواهیم تو start\program\myapp ایجاد کنیم به این روشه انجام میشود :



//-----------------------------program\MyAPP-------------------------------------------
string programs_path = Environment.GetFolderPath(Environment.SpecialFolde r.Programs);
string MyAPP = programs_path + @"\MyAPP";
if (!Directory.Exists(MyAPP))
{
Directory.CreateDirectory(MyAPP);
}

Type shellType2 = Type.GetTypeFromProgID("WScript.Shell");
object shell2 = Activator.CreateInstance(shellType);
object shortcut2 = shellType2.InvokeMember("CreateShortcut",
BindingFlags.Public | BindingFlags.Instance | BindingFlags.InvokeMethod,
null, shell2, new object[] { MyAPP + "\\MyAPP.lnk" });
Type shortcutType2 = shortcut2.GetType();
shortcutType2.InvokeMember("TargetPath",
BindingFlags.Public | BindingFlags.Instance | BindingFlags.SetProperty,
null, shortcut2, new object[] { InstallPath + "\\MyAPP.exe" });
shortcutType2.InvokeMember("WorkingDirectory",
BindingFlags.Public | BindingFlags.Instance | BindingFlags.SetProperty,
null, shortcut2, new object[] { InstallPath });
shortcutType2.InvokeMember("Save",
BindingFlags.Public | BindingFlags.Instance | BindingFlags.InvokeMethod,
null, shortcut2, null);


البته روش دیگه ای هم هست که در دات نت 4 و 4 به بالا انجام میشه با این DLL : interop.iwshruntimelibrary.dll

که بعضی وقتها از رجیستر بودن در میاد و ساختن شورتکاتمون به خطا بر میخوره

موفق باشین.

danialafshari
دوشنبه 25 اسفند 1393, 20:24 عصر
با سلام
بهتره کد های کاربردی رو به جای ایجاد تاپیک در قسمت نمونه برنامه های کوچک و مفيد در سي شارپ (http://barnamenevis.org/showthread.php?64210-%D9%86%D9%85%D9%88%D9%86%D9%87-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%87%D8%A7%DB%8C-%DA%A9%D9%88%DA%86%DA%A9-%D9%88-%D9%85%D9%81%D9%8A%D8%AF-%D8%AF%D8%B1-%D8%B3%D9%8A-%D8%B4%D8%A7%D8%B1%D9%BE)قرار دهید تا همه بتونن استفاده کنن
موفق باشید