Вставка из буфера обмена

Автор azeshko, 04.07.14, 21:48:59

« назад - далее »

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

azeshko

Добрый день!
Мне нужно поочередно вставлять в документ Компас скопированные во внешнем приложении (MS Excel) фрагменты через буфер обмена....
Вручную это делаю через Редактор - Специальная вставка - Picture (Metafile)
Настало время сделать это программно.... Порылся в спецификации по Компас - SDK. Как я понял это можно делать методом ksCMEditPaste

Может у кого-то есть пример решения подобной задачи, спасибо

PS. по ksCMEditPaste в хелпе нет никаких примеров кроме упоменания названия метода.

Запустить процесс ksCMEditPaste можно так:
KompasApi7.ExecuteKompasCommand(ksCMEditPaste,False);
или
KompasObject.ksExecuteKompasCommand(ksCMEditPaste,False);
или сервисной функцией ksExecuteKompasCommand(ksCMEditPaste,0);
+ Благодарностей: 1

azeshko

Спасибо, все работает. Вот только вставка происходит в формате Bitmap
Скажите, как передать параметры вставки. Мне нужно вставить Picture (Metafile) - так качество намного выше
А еще продолжить задавать параметры объекта вставки - масштаб и т.д. Вот мой код



Public Sub copyTableAndPasteAsPicture(rName As String)
   
    Application.Range(rName).Copy
    ActiveSheet.Pictures.Paste(Link:=False).Cut
 

End Sub

Sub kompasRuner()


Dim kompas As Kompas6API5.Application
Dim ksDoc2D As Kompas6API5.Document2D

'This I wanna check if kompas run. But it's not work. I do it later

'If Not kompas Is Nothing Then
'    MsgBox "Kompas is run"
'    Exit Sub
'End If


Set kompas = New Kompas6API5.Application
    kompas.Visible = True

    Call openKompasDocument(kompas)
   

End Sub


Private Sub openKompasDocument(ByRef kompas As Kompas6API5.Application)
    Dim path As String
    Dim ksDoc2D As Kompas6API5.Document2D
        path = "c:\kmp.cdw"
    If Not kompas Is Nothing Then
    Set ksDoc2D = kompas.Document2D
       ksDoc2D.ksOpenDocument path, False
       
       If Not ksDoc2D Is Nothing Then
            kompas.ksExecuteKompasCommand ksCMEditPaste, False
       End If
       
       
    End If
End Sub