פורסם 2007 במרץ 618 שנים מישהו יודע איך משיגים (שומרים כמחרוזת) את יעד הקובץ שאליו מצביע קובץ LNK מסויים?תודה מראש.
פורסם 2007 במרץ 618 שנים הממ... יש את הדרך הלא נוחה הזאת:http://www.vbaccelerator.com/home/NET/Code/Libraries/Shell_Projects/Creating_and_Modifying_Shortcuts/article.asp
פורסם 2007 במרץ 1618 שנים מחבר לא לקח לי כל הזמן הזה למצוא את הפתרון, פשוט עזבתי את הבעיה הזו בינתיים ורק היום חזרתי אליה. כדי שיהיה תיעוד של הפתרון הוספתי תגובה אז ככה. יש את IWshRuntimeLibrary שמטפל בכל מני דברים שקשורים ל-Windows וכדומה, ומחלקה זו גם מטפלת בקיצורי דרך. אז מה שהיה צריך לעשות זה ליצור קיצור דרך "חדש" עם אותו השם של קיצור הדרך שממנו רוצים להוציא את היעד (כלומר לשכתב את קיצור הדרך הנתון), ובגלל שעד שלא מריצים פקודה ששומרת את קיצור הדרך הוא לא נשמר, אפשר לקחת מידע מ"קיצור הדרך שעוד לא שכתבנו". ככה זה הולך: /// <summary>///Converts a Windows 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 Windows LNK file.", "Shortcut Import Error"); return; } WshShell shell = new WshShell(); IWshShortcut link = (IWshShortcut)shell.CreateShortcut(lnk); return link.TargetPath;} ואגב כדי לשמור עושים: link.Save(); מעניין אם עוד אנשים צריכים כזה דבר
פורסם 2007 במרץ 1618 שנים נחמד. רק כדאי אולי לזרוק exception במקום ההודעה וגם אולי ליצור העתק של TargetPath ולעשות nullify למשתנים.
פורסם 2007 במרץ 1618 שנים מחבר כן, למה לא. הקוד הנ"ל היה דרך כללית לזה, וההודעה שהמשתמש מקבל בטח תתחלף במשהו שמתאים יותר.
פורסם 2007 במרץ 1618 שנים זה תמיד טוב לזכור שגם בשפות שמנהלות לך את הזכרון לבד ועושות garbage collection עצמי, עדיין יכולות להיות דליפות זכרון, ושלפעמים עדיף ללכת על בטוח ולעשות nullify למשתנים ולפעמים לעשות clone כשמעבירים דברים ברפרנס.
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.