Albert32 Ответов: 0

Обновить параметр .url indirect с помощью файла .lnk


Меня просят решить проблему. Given-это программа, написанная на C / C++, работающая как windows-сервис под управлением пользователя LocalSystem.

На рабочем столе находится файл First.lnk, хранящийся в C:\Users\Public\Desktop. Ссылка указывает на D:\Second.url.

Когда пользователь входит в систему, содержимое второго.url-адрес есть:
[InternetShortcut]
URL=


Во время запуска сервиса программа добавляет допустимый url-адрес во вторую строку.

Затем я попробовал использовать метод SHChangeNotify() с разными аргументами. Но тем не менее, двойной щелчок на Первом.lnk все еще показывает:

The target "" of this Intenet Shortcut is not valid. Go to the Internet Shortcut property sheet and make sure the target is correct.


Что мне нужно сделать, чтобы ссылка на рабочем столе распознала, что к целевому url-файлу идет обновление?

Как уже было сказано выше, после выхода из системы / входа в систему все работает нормально. Но это не решение проблемы.

Что я уже пробовал:

Я уже пробовал
SHChangeNotify()
как на Первом.lnk, так и на втором.url. Ни за что.

В качестве аргументов я попробовал: SHCNE_UPDATEITEM, SHCNE_ATTRIBUTES, SHCNE_UPDATEDIR. В качестве 2-го параметра я использовал
SHCNF_PATHW
или
SHCNF_PATHW | SHCNF_FLUSH
или
SHCNF_PATHW | SHCNF_FLUSH | SHCNF_NOTIFYRECURSIVE

0 Ответов