Форум программистов, компьютерный форум, киберфорум
Наши страницы
Visual Basic
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
yuniki
1 / 1 / 0
Регистрация: 28.09.2007
Сообщений: 285
1

Как в функции DLL сделанной на VB получить полное имя приложения из которого вызывается эта функция

22.04.2010, 21:19. Просмотров 696. Ответов 3
Метки нет (Все метки)

Как в одной из функций DLL, сделанной на VB,
получить полное имя (и/или путь) приложения из которого вызывается эта функция ?

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.04.2010, 21:19
Ответы с готовыми решениями:

Рекурсия, сколько вызывается эта функция
int f(int a, int b) { if (a <= 0 || b <= 0) { return a + b; } else { int s = 0; ...

Как получить полное имя компьютера
Как получить полное имя компьютера? И связанный с этим вопрос: "Как получить имя домена или рабочей...

Как получить полное имя файла
Здравствуйте! У меня на форме TSaveDialog, вот я сохранил текст с TMemo используя имя например...

Как получить полное имя файла?
Подскажите пожалуйста, File file = fileopen.getSelectedFile(); label.setText(file.getName()); ...

Как получить handle дочернего элемента если функция вызывается по событию?
Для задания координат подсказки для элементов div на все div с name="div2" навешивается Listener...

3
Comanche
23.04.2010, 01:11 2
Давненько тебя не видно было...

Пока что в голову приходит следующее:
ActiveX DLL - в отличие от ActiveX EXE - выполняется в том же процессе, что и родительское приложение. Поэтому можно в коде ActiveX DLL прочитать значение App.ThreadID, затем с помощью API (какой?! наверное, лучше не использовать этот VB-шный App.ThreadID, а юзать сразу API GetCurrentProcessId) получить по этому значению величину ProcessID, к которому относится этот поток, а затем с помощью API найти другие потоки из того же процесса (скорее всего, только перебором). Потом выделить из них 'первичный поток' и определить имя 'файла образа', запустившего поток. Последний этап, как я понимаю, непростой:
см. http://www.bugtraq.ru/cgi-bin/forum.mcgi?type=sb&b=2&m=90197

Наверняка ещё будут различия между Win98 и следующими версиями ОС.

Это 'навскидку'...
yuniki
1 / 1 / 0
Регистрация: 28.09.2007
Сообщений: 285
24.04.2010, 18:27  [ТС] 3
2 Comanche > Давненько тебя не видно было...
Да так , как - то на Oracle интереснее ,

За ответ спасибо,хотя и очень сложно,
А вообще как сейчас я понимаю, нужно не просто полное имя вызывающего приложения, а его корневой объект, если из Vb приложения, то App, если из Access или Excel, Word etc, то Application.Т.е. надо в вызванной DLL использовать некоторые свойства этого (App или Application) объекта, не передавая их через параметры.
0
Comanche
24.04.2010, 18:46 4
Слабо себе представляю, зачем такое может понадобиться DLL-ке!
Если НЕ передавать их через параметры, то сомневаюсь, что это решаемо - во всяком случае, с приемлемыми 'трудозатратами'...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.04.2010, 18:46

Как импортировать вызываемую из dll функцию, если эта функция возвращает значение типа ppchar
Подскажите, пожалуйста, как в с# импортировать вызываемую из dll функцию, если эта функция...

Получить объект, из которого вызывается new
Есть задача, приписывать всем объектам, объект, к которому они привязаны, грубо говоря: Main =...

Как получить имя файла из которого производиться копирование
Открываю текстовый файл, выделяю и копирую текст, вставляю в 1 тексбокс программы, а как сделать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru