[C#] שליפת מידע מקיצור דרך ב-Windows (קבצי .lnk) - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

[C#] שליפת מידע מקיצור דרך ב-Windows (קבצי .lnk)


pilotkevin

Recommended Posts

  • 2 שבועות מאוחר יותר...

לא לקח לי כל הזמן הזה למצוא את הפתרון, פשוט עזבתי את הבעיה הזו בינתיים ורק היום חזרתי אליה. כדי שיהיה תיעוד של הפתרון הוספתי תגובה :)

אז ככה. יש את IWshRuntimeLibrary שמטפל בכל מני דברים שקשורים ל- וכדומה, ומחלקה זו גם מטפלת בקיצורי דרך.

אז מה שהיה צריך לעשות זה ליצור קיצור דרך "חדש" עם אותו השם של קיצור הדרך שממנו רוצים להוציא את היעד (כלומר לשכתב את קיצור הדרך הנתון), ובגלל שעד שלא מריצים פקודה ששומרת את קיצור הדרך הוא לא נשמר, אפשר לקחת מידע מ"קיצור הדרך שעוד לא שכתבנו".

ככה זה הולך:


/// <summary>
///Converts a LNK file path into its real destination path.
/// </summary>
/// <param name="lnk">The link to investigate</param>
private string getLinkDest(string lnk)
{
if (!lnk.EndsWith(".lnk"))
{
MessageBox.Show("Path " + lnk + " is not a LNK file.", "Shortcut Import Error");
return;
}
WshShell shell = new WshShell();
IWshShortcut link = (IWshShortcut)shell.CreateShortcut(lnk);
return link.TargetPath;
}

ואגב כדי לשמור עושים:

link.Save();

מעניין אם עוד אנשים צריכים כזה דבר ;)

קישור לתוכן
שתף באתרים אחרים

זה תמיד טוב לזכור שגם בשפות שמנהלות לך את הזכרון לבד ועושות garbage collection עצמי, עדיין יכולות להיות דליפות , ושלפעמים עדיף ללכת על בטוח ולעשות nullify למשתנים ולפעמים לעשות clone כשמעבירים דברים ברפרנס.

קישור לתוכן
שתף באתרים אחרים

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

×
  • צור חדש...