Как получить handle

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
exit
Новичок
Новичок
 
Сообщения: 30
Зарегистрирован: 28.01.2003 (Вт) 2:31

Как получить handle

Сообщение exit » 22.03.2003 (Сб) 0:25

Как получить handle не формы, а именно проекта который запускается. Также емть ещё одно условие этот проект запускается не первый раз, т.е есть уже запущенные такие же проекты с теми же именами, а надо определить handle именно запускаемого проекта.

Alfa
Бывалый
Бывалый
 
Сообщения: 249
Зарегистрирован: 12.01.2003 (Вс) 20:15
Откуда: Россия, Красноярск

Ответ

Сообщение Alfa » 22.03.2003 (Сб) 6:24

Всмысле. Что за проект?

TimeKeeper
Постоялец
Постоялец
 
Сообщения: 437
Зарегистрирован: 11.10.2002 (Пт) 4:47
Откуда: Russia

Сообщение TimeKeeper » 22.03.2003 (Сб) 6:25

Что-нибудь с App. Точнее не могу, сейчас под рукой нет VB.

App.Path - путь запускаемой программы

Посмотри остальные свойства.

TimeKeeper
Постоялец
Постоялец
 
Сообщения: 437
Зарегистрирован: 11.10.2002 (Пт) 4:47
Откуда: Russia

Сообщение TimeKeeper » 22.03.2003 (Сб) 6:42

Ага, вот все свойства, а последнее - то, что тебе нужно.

MSDN
http://msdn.microsoft.com/library/defau ... jApp_P.asp
Comments Property
CompanyName Property
EXEName Property
FileDescription Property
HelpFile Property (App, CommonDialog, MenuLine)
LegalCopyright Property
LegalTrademarks Property
LogMode Property
LogPath Property
Major Property
Minor Property
NonModalAllowed Property
OLERequestPendingMsgText Property
OLERequestPendingMsgTitle Property
OLERequestPendingTimeout Property
OLEServerBusyMsgText Property
OLEServerBusyMsgTitle Property
OLEServerBusyRaiseError Property
OLEServerBusyTimeout Property
Path Property
PrevInstance Property
ProductName Property
RetainedProject Property
Revision Property
StartMode Property
TaskVisible Property
ThreadID Property
Title Property
UnattendedApp Property

hInstance Property

exit
Новичок
Новичок
 
Сообщения: 30
Зарегистрирован: 28.01.2003 (Вт) 2:31

Сообщение exit » 22.03.2003 (Сб) 15:54

TimeKeeper спасибо, но столкнулся с новой проблемой: попытался закрыть по hInstance через
Public Const SC_CLOSE = &HF060&
Public Const WM_SYSCOMMAND = &H112&
SendMessage App.hInstance, WM_SYSCOMMAND, SC_CLOSE, 0

не получается

Firestorm
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 946
Зарегистрирован: 02.05.2002 (Чт) 14:36
Откуда: Russia

Сообщение Firestorm » 22.03.2003 (Сб) 17:43

Как получить handle не формы, а именно проекта который запускается. Также емть ещё одно условие этот проект запускается не первый раз, т.е есть уже запущенные такие же проекты с теми же именами, а надо определить handle именно запускаемого проекта.

может проверять по запущенным процессам? 8)
вообще смысл этого кода в чём? для того чтобы не запускать вторую копию?
...просто гламурный падонак...
_________________
reborn! v.2 :twisted:
_________________

exit
Новичок
Новичок
 
Сообщения: 30
Зарегистрирован: 28.01.2003 (Вт) 2:31

Сообщение exit » 22.03.2003 (Сб) 17:53

Firestorm смысл этого кода в том, при запуске он проверяет запущена ли эта программа ранее и есле запущена закрывает её.

Firestorm
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 946
Зарегистрирован: 02.05.2002 (Чт) 14:36
Откуда: Russia

Сообщение Firestorm » 22.03.2003 (Сб) 18:08

ну вот думаю вполне реально проверять в списке процессов...
а это не подходит?
Код: Выделить всё
Private Sub Form_Load()
If App.PrevInstance = True Then
MsgBox "Обломись!"
End
End If
...просто гламурный падонак...
_________________
reborn! v.2 :twisted:
_________________

exit
Новичок
Новичок
 
Сообщения: 30
Зарегистрирован: 28.01.2003 (Вт) 2:31

Сообщение exit » 22.03.2003 (Сб) 18:29

Firestorm то приложение которое я запустил последний раз должно остаться, а предыдущие(и) закрыться. И заодно не мог бы ты мне сказать что такое hInstance и с его помощью можно сделать(например то что мне нужно). И ещё вопрос как закрыть приложение (именно моё)

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 23.03.2003 (Вс) 18:53

hInstsance это дескриптор колпии приложения.

НО чтобы закрыть приложение с помощью SendMessage тебе нужен не он, а дескриптор окна - hWnd.

Рлнако зарытие приложения таким робразом не лучший вариант. Лучше использовать TerminateProcess. А для него понадобится, AFAIR, PID, который можно получить через EnumProcesses.

ToT
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 124
Зарегистрирован: 10.06.2002 (Пн) 11:56
Откуда: Russia, Taganrog

Сообщение ToT » 27.03.2003 (Чт) 9:55

По-моему надо так:
Определяешь, запущена ли прога
Если да то закрываешь ее с помощью TerminateProcess или чего -то подобного, но не через SendMessage. Так как прога твоя, то наяти все что нужно для закрытия думаю сможешь.
Keyboard not found. Press any key.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 38

    TopList