Модераторы: diadiavova, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Библиотека классов 
:(
    Опции темы
Mobi
Дата 4.5.2010, 15:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 3.5.2010
Где: Новосибирск

Репутация: нет
Всего: нет



Здравствуйте.
Вопрос в следующем:
Есть шаблон VB.NET, Addin приложения для SolidWorks API, он состоит из файла библиотеки классов (.vb) , при компиляции шаблона в интерфейс SolidWorks добавляются новые инструменты и т.п. формируется библиотека Addin.dll, нужно прикрутить все к проекту Windows Forms, да так чтобы выполнить все процедуры библиотеки Addin.dl при каком либо событии формы.
Заранее благодарю за помощь.

В архиве проект...


Это сообщение отредактировал(а) Mobi - 4.5.2010, 15:45

Присоединённый файл ( Кол-во скачиваний: 6 )
Присоединённый файл  SwVBAddin5.rar 363,95 Kb
PM MAIL   Вверх
diadiavova
Дата 4.5.2010, 15:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 8
Всего: 142



Добавь в винформ приложение ссылку на эту библиотеку и выполняй что нужно в обработчиках событий. Какие с этим проблемы то? Или я чего-то не понял?


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
Mobi
Дата 4.5.2010, 15:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 3.5.2010
Где: Новосибирск

Репутация: нет
Всего: нет



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

Imports System
Imports System.Collections
Imports System.Reflection
Imports System.Runtime.InteropServices

Imports SolidWorks.Interop.sldworks
Imports SolidWorks.Interop.swconst
Imports SolidWorks.Interop.swpublished
Imports SolidWorksTools
Imports SolidWorksTools.File

<Guid("58c68ff3-be36-4a9a-bb29-2ef89642385d")> _
    <ComVisible(True)> _
    <SwAddin( _
        Description:="SwVBAddin description", _
        Title:="SwVBAddin", _
        LoadAtStartup:=True _
        )> _
        Public Class SwAddin
    Implements SolidWorks.Interop.swpublished.SwAddin

#Region "Local Variables"
    Dim WithEvents iSwApp As SldWorks
    Dim iCmdMgr As ICommandManager
    Dim addinID As Integer
    Dim openDocs As Hashtable
    Dim SwEventPtr As SldWorks
    'Dim ppage As UserPMPage

    ' Public Properties
    ReadOnly Property SwApp() As SldWorks
        Get
            Return iSwApp
        End Get
    End Property

    ReadOnly Property CmdMgr() As ICommandManager
        Get
            Return iCmdMgr
        End Get
    End Property

    ReadOnly Property OpenDocumentsTable() As Hashtable
        Get
            Return openDocs
        End Get
    End Property
#End Region
#Region "SolidWorks Registration"

    <ComRegisterFunction()> Public Shared Sub RegisterFunction(ByVal t As Type)
        ' Get Custom Attribute: SwAddinAttribute
        Dim attributes() As Object
        Dim SWattr As SwAddinAttribute = Nothing

        attributes = System.Attribute.GetCustomAttributes(GetType(SwAddin), GetType(SwAddinAttribute))

        If attributes.Length > 0 Then
            SWattr = DirectCast(attributes(0), SwAddinAttribute)
        End If

        Dim hklm As Microsoft.Win32.RegistryKey = Microsoft.Win32.Registry.LocalMachine
        Dim hkcu As Microsoft.Win32.RegistryKey = Microsoft.Win32.Registry.CurrentUser

        Dim keyname As String = "SOFTWARE\SolidWorks\Addins\{" + t.GUID.ToString() + "}"
        Dim addinkey As Microsoft.Win32.RegistryKey = hklm.CreateSubKey(keyname)
        addinkey.SetValue(Nothing, 0)
        addinkey.SetValue("Description", SWattr.Description)
        addinkey.SetValue("Title", SWattr.Title)

        keyname = "Software\SolidWorks\AddInsStartup\{" + t.GUID.ToString() + "}"
        addinkey = hkcu.CreateSubKey(keyname)
        addinkey.SetValue(Nothing, SWattr.LoadAtStartup, Microsoft.Win32.RegistryValueKind.DWord)
    End Sub
    <ComUnregisterFunction()> Public Shared Sub UnregisterFunction(ByVal t As Type)
        Dim hklm As Microsoft.Win32.RegistryKey = Microsoft.Win32.Registry.LocalMachine
        Dim hkcu As Microsoft.Win32.RegistryKey = Microsoft.Win32.Registry.CurrentUser

        Dim keyname As String = "SOFTWARE\SolidWorks\Addins\{" + t.GUID.ToString() + "}"
        hklm.DeleteSubKey(keyname)

        keyname = "Software\SolidWorks\AddInsStartup\{" + t.GUID.ToString() + "}"
        hkcu.DeleteSubKey(keyname)
    End Sub
#End Region
#Region "ISwAddin Implementation"

    Function ConnectToSW(ByVal ThisSW As Object, ByVal Cookie As Integer) As Boolean Implements SolidWorks.Interop.swpublished.SwAddin.ConnectToSW
        iSwApp = ThisSW
        addinID = Cookie

        ' Setup callbacks
        iSwApp.SetAddinCallbackInfo(0, Me, addinID)

        ' Setup the Command Manager
        iCmdMgr = iSwApp.GetCommandManager(Cookie)
        AddCommandMgr()

        'Setup the Event Handlers
        SwEventPtr = iSwApp
        openDocs = New Hashtable
        'AttachEventHandlers()

        'Setup Sample Property Manager

        ConnectToSW = True
    End Function

    Function DisconnectFromSW() As Boolean Implements SolidWorks.Interop.swpublished.SwAddin.DisconnectFromSW
        RemoveCommandMgr()
        'DetachEventHandlers()
        iSwApp = Nothing
        'The addin _must_ call GC.Collect() here in order to retrieve all managed code pointers 
        GC.Collect()
        DisconnectFromSW = True
    End Function
#End Region

#Region "UI Methods"
    Public Sub AddCommandMgr()

        Dim cmdGroup As ICommandGroup
        Dim iBmp As New BitmapHandler
        Dim thisAssembly As Assembly

        Dim cmdIndex0 As Integer
        Dim Title As String = "Свойства"
        Dim ToolTip As String = "Удалить"

        Dim docTypes() As Integer = {swDocumentTypes_e.swDocASSEMBLY, _
                                       swDocumentTypes_e.swDocDRAWING, _
                                       swDocumentTypes_e.swDocPART}
        thisAssembly = System.Reflection.Assembly.GetAssembly(Me.GetType())

        cmdGroup = iCmdMgr.CreateCommandGroup(1, Title, ToolTip, "", -1)

        cmdIndex0 = cmdGroup.AddCommandItem("Конструктор свойств", -1, "Конструктор свойств", "Конструктор свойств", 0, "CreateCube", "", 0)
        'cmdIndex1 = cmdGroup.AddCommandItem("Show PMP", -1, "Display sample property manager", "Show PMP", 2, "ShowPMP", "PMPEnable", 2)

        cmdGroup.HasToolbar = False
        cmdGroup.HasMenu = True
        cmdGroup.Activate()

        thisAssembly = Nothing
        'iBmp.Dispose()
    End Sub
    Public Sub RemoveCommandMgr()
        iCmdMgr.RemoveCommandGroup(1)
    End Sub
#End Region
    Sub CreateCube()
        Shell("C:\Program Files\SolidWorks Corp\SolidWorks\Addins\Конструктор свойств.exe", AppWinStyle.NormalFocus)
    End Sub
End Class



Это сообщение отредактировал(а) Mobi - 4.5.2010, 16:03
PM MAIL   Вверх
diadiavova
Дата 4.5.2010, 16:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 8
Всего: 142



Цитата(Mobi @  4.5.2010,  16:59 Найти цитируемый пост)
все методы библиотеки которые выполняются при компиляции этой самой библиотеки

 smile Это как это?


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
Mobi
Дата 4.5.2010, 16:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 3.5.2010
Где: Новосибирск

Репутация: нет
Всего: нет



Еслиб я знал то не спрашивал… smile 
Я наверно не туда копаю?
PM MAIL   Вверх
diadiavova
Дата 4.5.2010, 16:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 8
Всего: 142



Цитата(Mobi @  4.5.2010,  17:05 Найти цитируемый пост)
Я наверно не туда копаю? 

Скорей всего. Тогда опиши проблему.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
Mobi
Дата 4.5.2010, 16:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 3.5.2010
Где: Новосибирск

Репутация: нет
Всего: нет



Все просто smile 
Нужно чтоб выполнился весь код см. выше, при клике на винформе а не при компиляции как "библиотеки классов".
Когда программа компилируется в виде библиотеки классов все ок, но нужно чтоб она на других машинах проделала тоже самое без компилятора естесно…

PM MAIL   Вверх
diadiavova
Дата 4.5.2010, 16:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 8
Всего: 142



А почему просто проект установки не создать?


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
Mobi
Дата 4.5.2010, 16:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 3.5.2010
Где: Новосибирск

Репутация: нет
Всего: нет



Ух ты, а можно в деталях пожалуйста  smile 
PM MAIL   Вверх
diadiavova
Дата 4.5.2010, 16:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 8
Всего: 142





--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
Mobi
Дата 4.5.2010, 16:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 3.5.2010
Где: Новосибирск

Репутация: нет
Всего: нет



Спсиб, будем посмотреть... smile


Это сообщение отредактировал(а) Mobi - 4.5.2010, 16:38
PM MAIL   Вверх
Mobi
Дата 4.5.2010, 17:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 3.5.2010
Где: Новосибирск

Репутация: нет
Всего: нет



Подскажите пожалуйста как в моем случае нужно создать проект установки??

Это сообщение отредактировал(а) Mobi - 4.5.2010, 17:45
PM MAIL   Вверх
diadiavova
Дата 4.5.2010, 17:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 8
Всего: 142



В меню Файл-> Добавить->Новый проект. В диалоге, в разделе Другие типы проектов, выбрать Проект установки. Далее все настройки в нём выполнять, там есть редактор реестра, файловой системы и мног чего другого. Всего так просто не опишешь, потому что возможностей очень много. Вот отсюда можно начать
http://msdn.microsoft.com/ru-ru/library/2kt85ked(VS.90).aspx


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
Mobi
Дата 4.5.2010, 17:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 3.5.2010
Где: Новосибирск

Репутация: нет
Всего: нет



А не подскажите как добавить библиотеку классов так чтоб она скомпилировалась?
PM MAIL   Вверх
diadiavova
Дата 4.5.2010, 21:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 8
Всего: 142



В контекстном меню проекта установки(В обозревателе решений) выбери Добавить->Выходной элемент проекта, в открывшемся диалоговом окне вверху выбери проект, выходные данные которого устанавливаешьи в списке выбери Основные выходные файлы


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума VB .NET
diadiavova
  • Прежде чем задать вопрос, воспользуйтесь поиском: возможно Ваш вопрос уже обсуждался и на него был получен ответ.
  • Если такой же вопрос не найден, не стоит задавать свой вопрос в любую тему, создайте новую.
  • Заголовок темы должен отображать ее суть.
  • Содержание поста должно описывать проблему понятно, но в то же время, по возможности, лаконично. Сначала следует описать суть вопроса, потом можно привести пример кода, не вынуждайте других участников угадывать в чем Ваша проблема - телепатов здесь нет.
  • Будьте взаимно вежливы и дружелюбны.
  • При оформлении сообщений используйте форматирование, примеры кода заключайте в теги [CODE=vbnet][/CODE].
  • Также ознакомьтесь с общими правилами, действующими на всем форуме.
  • Если вопрос решен, не забывайте помечать тему решенной(вверху темы есть ссылка). Кроме того, если Вы хотите отблагодарить участников, оказавших помощь в решении, можно повысить им репутацию, в случае, если у Вас менее 100 сообщений в форуме и функция изменения репутации Вам недоступна, можете написать сюда.
  • Общие вопросы по программированию на платформе .NET обсуждаются здесь.
  • Литература по VB .NET обсуждается здесь.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, diadiavova.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB .NET | Следующая тема »


 




[ Время генерации скрипта: 0.1335 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.