Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Имя аппликации из внешнего класса / 10 сообщений из 10, страница 1 из 1
26.07.2005, 16:45:40
    #33185447
Alexoid
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имя аппликации из внешнего класса
Привет всем.

Возникла необходимость в получении имени аппликации, поднявшей инстанс класса находящегося во внешнем dll-е, из самого класса.
Пример:
Аппликация aaa.exe и DLL - bbb.dll включающий в себя класс ссс.cls.
aaa.exe поднимает объект типа bbb.ccc.
Каким образом из класса ссс можно получить имя аппликации тобишь "aaa.exe", причем без добавления свойства в класс для передачи имени аппликации?

Есть серьёзные подозрения, что без WinAPI не обойтись.

Заранее благодарен за помощь.
...
Рейтинг: 0 / 0
26.07.2005, 17:11:25
    #33185526
Melkiades
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имя аппликации из внешнего класса
Необходимо что-то типа такого:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Private Declare Function GetModuleFileName Lib "kernel32" Alias "GetModuleFileNameA" (ByVal hModule As Long, ByVal lpFileName As String, ByVal nSize As Long) As Long
Private Declare Function GetWindowWord Lib "user32" (ByVal hwnd As Long, ByVal nIndex As Long) As Integer
Const GWW_HINSTANCE = (- 6 )

Private Sub Form_Load()
    Dim ModuleName As String, FileName As String, hInst As Long
    'create a buffer
    ModuleName = String$( 128 , Chr$( 0 ))
    'get the hInstance application:
    hInst = GetWindowWord(Me.hwnd, GWW_HINSTANCE)
    'get the ModuleFileName:
    'enter the following two lines as one, single line:
    ModuleName = Left$(ModuleName, GetModuleFileName(hInst, ModuleName, Len(ModuleName)))
    'set graphics mode to persistent
    Me.AutoRedraw = True
    'show the module filename
    Me.Print "Module Filename: " + ModuleName
End Sub

...
Рейтинг: 0 / 0
26.07.2005, 17:20:27
    #33185549
Alexoid
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имя аппликации из внешнего класса
Melkiades
Код: plaintext
1.
    hInst = GetWindowWord(Me.hwnd, GWW_HINSTANCE)

Проблема в том что в классе нет свойства hwnd
...
Рейтинг: 0 / 0
26.07.2005, 17:40:13
    #33185597
Alexoid
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имя аппликации из внешнего класса
Melkiades
Код: plaintext
1.
    hInst = GetWindowWord(Me.hwnd, GWW_HINSTANCE)

Проблема в том что в классе нет свойства hwnd
...
Рейтинг: 0 / 0
27.07.2005, 21:56:16
    #33187985
Alexoid
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имя аппликации из внешнего класса
Неужели ни у кого нет идей на этот счет?
...
Рейтинг: 0 / 0
28.07.2005, 10:14:14
    #33188418
Melkiades
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имя аппликации из внешнего класса
Можно попробовать определить через инстанс или GetParent.
...
Рейтинг: 0 / 0
28.07.2005, 21:34:30
    #33190450
Andrew
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имя аппликации из внешнего класса
Вместо Me.hwnd подставь App.hInstance
...
Рейтинг: 0 / 0
29.07.2005, 11:40:41
    #33191207
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имя аппликации из внешнего класса
App.hInstance это хэндл процесса, если я не ошибаюсь, он к окнам отношения не имеет. Вообще, в библиотеке нет окон, можно в них не копаться. Попробуй поковырять GetStartupInfo.
...
Рейтинг: 0 / 0
29.07.2005, 18:22:47
    #33192468
Andrew
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имя аппликации из внешнего класса
AntonariyApp.hInstance это хэндл процесса...
Что хочет получить автор, цитирую:
Antonariyимя аппликации тобишь "aaa.exe",
То есть имя процесса в который загружена длл. Код приведенный Melkiades поместить в длл и заменить Me.hwnd на App.hInstance решает поставленую автором задачу.
...
Рейтинг: 0 / 0
01.08.2005, 09:38:19
    #33193539
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имя аппликации из внешнего класса
Сподобился проверить. Действительно, все работает.
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Имя аппликации из внешнего класса / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]