Как мне написать в буфер обмена, чтобы получить возможность «создать ярлык» в проводнике Windows? - PullRequest
2 голосов
/ 01 сентября 2011

После помещения списка файлов в буфер обмена - щелчок правой кнопкой мыши в проводнике Windows не дает мне возможность «создать ярлык».Как мне это получить?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 06 сентября 2011

Вам нужны другие форматы, особенно OLE.

Экспериментируя с режимом диагностики моего приложения (ClipMate), я вижу, что когда вы скопировали файл в буфер обмена, а затем щелкните правой кнопкой мыши на рабочем столе Windows, из буфера обмена будут считаны следующие форматы:

Ole Private Data
DataObject
Preferred DropEffect
HDROP
Shell IDList Array

А затем, когда вы фактически выполняете «вставку ярлыка», извлекается дополнительный формат:

Shell Object Offsets

Я смог выполнить «вставку ярлыка» без Preferred DropEffect,так что я думаю, что это необязательно.Я тестировал на Windows XP, SP3.YMMV с другими платформами.

0 голосов
/ 01 сентября 2011

Это не сработает так, как вы хотите.Когда вы перетаскиваете файл на свой компьютер и отпускаете правую кнопку мыши, буфер обмена не задействуется.Вы можете проверить это, открыв блокнот, написав некоторый текст и скопировав его, затем создайте ярлык на своем компьютере, щелкнув правой кнопкой мыши и, наконец, вставив текст обратно в блокнот.Когда вы сделаете это, вы увидите, что текст все еще там, что означает, что ни один файл не был помещен над ним.

Так что вы ничего не можете сделать с буфером обмена, чтобы изменить значение «создать ярлык здесь».Самое близкое, что вы можете сделать, - это создать ярлык, как сказал @IAbstract, и скопировать его в буфер обмена.Вы сможете щелкнуть правой кнопкой мыши и вставить ярлык.См. Эту статью для получения дополнительной информации Перетаскивание динамически созданного ярлыка

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...