Кто сталкивался с перечислением в массив имен файлов, ранее скопированных ctrl-c из explorer?
Не могу связать с:

FileNames = System.CopyClipBoardToStream();

Как работать с этим объектом?

Нравится

1 комментарий

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

1) Начиная с версии 3.3.1.95 -

 	var strClipboard = System.CopyClipBoardToText();

2) Независимо от версии -

 	var strClipboard = "";
 	var objIE = new ActiveXObject("InternetExplorer.Application");
 	objIE.Navigate("about:blank");
 	strClipboard = objIE.document.parentWindow.clipboardData.getData("Text");
 	objIE.Quit();

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

Возможно, Вашу задачу можно решить по-другому. Например, вместо предварительного копирования файлов использовать диалог для выбора файлов:

var FileNames = System.CreateObject('TSObjectLibrary.StringsList');
if ((System.PromptForFileNames(FileNames, '*.*', '', "Выберите файл(ы)", ''))) {
    var NameValues = FileNames;
}
var FileNamesArray = NameValues.Text.split('\r\n');

Олег Лабьяк,
разработчик,
3-я линия Службы поддержки Terrasoft.

Показать все комментарии