Что Inventor отправляет в буфер обмена?

Автор Тема: Что Inventor отправляет в буфер обмена?  (Прочитано 3023 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн filat18Автор темы

  • ADN OPEN
  • Сообщений: 25
  • Карма: 1
С среде сборки пользователь выделяет элемент и нажимает CTRL+C.
Какой тип данных оказывается в буфере обмена?
Основной вопрос: как из буфера получить FullFileName этого элемента?

Оффлайн mikazakov

  • ADN
  • *
  • Сообщений: 752
  • Карма: 195
  • Skype: mikazakov@mail.ru
По всей видимости, в Инвенторе какой то свой буфер обмена, потому что в виндоуз 10 инвенторовский буфер не виден.

Оффлайн filat

  • ADN Club
  • ****
  • Сообщений: 265
  • Карма: 2
Буржуи дали недоответ на поставленный вопрос - кому интересно, можете поискать исходник на форуме Доски...
Я, как в том анекдоте: "...после сборки, Обработать! напильником...", допилил в меру своего понимания, авось кому поможет:
Код - vb.net [Выбрать]
  1.                 'Get clipboard data format
  2.                 Dim cbData = Clipboard.GetDataObject()
  3.                 Dim getFormats As String() = cbData.GetFormats()
  4.                 'Expected content
  5.                 'mstgCF_ComponentSelection = selected occurrence
  6.                 'Get data in readable format
  7.                 Dim getData As Object = cbData.GetData("mstgCF_ComponentSelection")
  8.                 Dim memStream As MemoryStream = getData
  9.                 Dim memStreamArray As Byte() = memStream.ToArray()
  10.                 Dim decoded = Encoding.Unicode.GetString(memStreamArray) ' в исходнике ASCII, но в нем кириллица идет лесом...
  11.                 Dim decodedWithoutNullChars = decoded.Replace(vbNullChar, "")
  12.                 oText = decodedWithoutNullChars.ToString
  13.                 oText = Microsoft.VisualBasic.Left(oText, InStr(oText, "|") - 1)
  14.                 oText = Mid(oText, InStr(oText, ":\") - 1, Len(oText))
  15.                 If Not IO.File.Exists(oText) Then
  16.                     oText = My.Computer.Clipboard.GetText
  17.                 End If