Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB6 > Получить имя ЕХЕ


Автор: Feliastre 13.7.2005, 09:44
Ситуация такая.
Есть програмуля, которая использует ActiveX Dll. Как внутри этой библиотеки получить имя ИСПОЛНЯЕМОГО файла. Поясняю.

Dll может лежать в другом каталоге, а App.Path выдаёт путь до Dll.

Автор: __Sergey__ 13.7.2005, 10:37
Странно smile , длл находится в адресном пространстве проги и вроде
App.Path должна выдавать именно путь к проге.
Может это в отладочном режиме App.Path дает путь к длл?
Пробовать лень smile smile
Добавлено @ 10:41
Или используй АПИ ф-цию GetModuleFileName smile

Автор: Feliastre 13.7.2005, 10:57
__Sergey__ Даже не в отладочном режиме она выдаёт путь до библиотеки. А вот насчёт GetModuleFileName спс... попробую...

Но вопрос остаёцца открытым

--------------------------------
А GetModuleFileName требует Хандл ту модуль. Это откуда берёццо?!
smile

Автор: __Sergey__ 13.7.2005, 11:14
Сделай проперти в длл и передай туда App.hInstance из проги.
Добавлено @ 11:15
Или опять же GetModuleHandle(vbNullString) если используеш GetModuleFileName.
Добавлено @ 11:18
Я так понял надо пример использования smile , вот
Код

      Private Declare Function GetModuleFileName Lib "kernel32" _
         Alias "GetModuleFileNameA" _
         (ByVal hModule As Long, _
         ByVal lpFileName As String, _
         ByVal nSize As Long) As Long

         Dim strFileName As String
         Dim lngCount As Long

         strFileName = String(255, 0)
         lngCount = GetModuleFileName(App.hInstance, strFileName, 255)
         strFileName = Left(strFileName, lngCount)


Автор: Feliastre 13.7.2005, 11:27
__Sergey__ Приведённый тобой код даёт имя ДЛЛ.

А передать из Экзе в ДЛЛ я не могу. Потому что Экзе - не мой.

Автор: __Sergey__ 13.7.2005, 12:11
Вместо App.hInstance использовал GetModuleHandle(vbNullString)?
Добавлено @ 12:14
Или так попробуй GetModuleHandle("ИмяПроги.exe").
А интересно, как не твоя прога использует твою длл (если это не хук smile )???!!!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)