Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.12.2009, 00:25   #1
пасечник
Заблокирован
 
Регистрация: 24.06.2009
Сообщений: 28
По умолчанию GUID Excel'Я

Как прочитать GUID нашего любимого приложения EXCEL (какбудто мы его совсем не знаем). Приветствуется Delphi, любой C, VB, (особенно C# и VB.NET).
API приветствуется особенно.
пасечник вне форума Ответить с цитированием
Старый 20.12.2009, 00:40   #2
Aent
Форумчанин
 
Аватар для Aent
 
Регистрация: 17.07.2009
Сообщений: 519
По умолчанию

Это вам не поможет ?
http://www.citforum.ru/programming/digest/excel_dotnet/
А в общем в HKEY_CLASSES_ROOT\CLSID ищем узел со значением "Microsoft Office Excel Application" и находим его естественно в
[HKEY_CLASSES_ROOT\CLSID\{00024500-0000-0000-C000-000000000046}]
Посмотрите так же http://vbrussian.com/Article.asp?ID=110
Ну и наконец в MSDN находим
Код:
      Dim myType As Type = GetType(YOURCLASSNAME) 
      ' Get the object of the Guid.
      Dim myGuid As Guid = CType(myType.GUID, Guid)
      Console.WriteLine(("The name of the class is " + myType.ToString()))
      Console.WriteLine(("The ClassId of MyClass is " + myType.GUID.ToString()))

Последний раз редактировалось Aent; 20.12.2009 в 01:01.
Aent вне форума Ответить с цитированием
Старый 20.12.2009, 01:16   #3
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Цитата:
Сообщение от пасечник Посмотреть сообщение
Как прочитать GUID нашего любимого приложения EXCEL (какбудто мы его совсем не знаем). Приветствуется Delphi, любой C, VB, (особенно C# и VB.NET).
API приветствуется особенно.
Конечная цель какая,не ликвидация процесса
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 20.12.2009, 01:56   #4
пасечник
Заблокирован
 
Регистрация: 24.06.2009
Сообщений: 28
По умолчанию

Этот вопрос возник попутно. Конечная цель - в VB.NET без API получить ссылки на все запущенные Excel (объекты, а не процессы). Но подробности завтра, сейчас исчезаю...
пасечник вне форума Ответить с цитированием
Старый 21.12.2009, 20:28   #5
пасечник
Заблокирован
 
Регистрация: 24.06.2009
Сообщений: 28
По умолчанию

Вот так я понял:
Коротенько для VB .NET
Код:
Dim G As Guid = GetType(Excel.ApplicationClass).GUID
если ссылка на EXCEL уже есть (xl = [new] Excel.Application)
Код:
Dim G As Guid = xl.GetType.GUID
Dim s = G.ToString().ToUpper()
Наверное, в реестре проще читать параметр "по умолчанию" в ключе HKEY_CLASSES_ROOT\Excel.Application \CLSID ' МОГУ ОШИБАТЬСЯ

Последний раз редактировалось пасечник; 21.12.2009 в 20:31.
пасечник вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц