Поиск ярлыка, с которого была вызвана программа Windows

Есть ли способ для программы Windows узнать, какой ярлык (например, файл .lnk), если таковой имеется, был вызван, чтобы он мог подобрать значок ярлыка?


person ak2    schedule 26.07.2011    source источник


Ответы (2)


Вы можете позвонить GetStartupInfo(), чтобы заполнить STARTUPINFO. Если установлен флаг STARTF_TITLEISLINKNAME, поле STARTUPINFO::lpTitle содержит путь к файлу .lnk.

(Это было недокументировано в течение длительного времени. Вероятно, оно работало вплоть до Win95) .

person Anders    schedule 26.07.2011
comment
О, я просмотрел документацию STARTUPINFO, но пропустил это. Спасибо большое! - person ak2; 26.07.2011
comment
В C# это правильно работает с использованием P/Invoke, однако мне было интересно, есть ли другой способ получить значение lpTitle без вызова собственного метода GetStartupInfo. Что-то вроде свойства приложения или среды? - person Alex Vang; 02.03.2012

См. эту тему http://social.msdn.microsoft.com/Forums/en-IE/csharplanguage/thread/31cc117e-7726-475c-b9e4-b8041409ce85

Я думаю, что параметры строки cmd - единственный способ.

person mservidio    schedule 26.07.2011