Программа и Папка

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

Программа и Папка

Сообщение Kolobuk » 14.02.2007 (Ср) 23:26

Код: Выделить всё
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long


...


Код: Выделить всё
Dim WINDOW As String * 5
WINDOW = "PROGR"
hwnd = FindWindow(vbNullString, WINDOW)


- находим hwnd...
Всё нормально находится, но вот проблема - программа PROGR лежит в папке с таким же названием - PROGR.
Если программу закрыть, hwnd нулём всёравно не будет (а мне нужно для проверки) - он будет браться из открытой папки, с названием PROGR.

Как определить что нашлось - директория или программа?
------------
И если есть два варианта программы (название одно, а вес ехе-файла разный), можно ли узнать какая программа открыта?

EUGY
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 214
Зарегистрирован: 09.11.2006 (Чт) 22:51
Откуда: Мурманск

Сообщение EUGY » 14.02.2007 (Ср) 23:46

Искать надо по имени класса окна, а не по его Caption.
Под папкой, видимо, подразумевается открытое окно проводника.

Kolobuk
Обычный пользователь
Обычный пользователь
 
Сообщения: 61
Зарегистрирован: 24.10.2006 (Вт) 20:03

Сообщение Kolobuk » 15.02.2007 (Чт) 0:07

Под папкой, видимо, подразумевается открытое окно проводника.

Да.

Искать надо по имени класса окна, а не по его Caption

Хм... это как? :oops:

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 15.02.2007 (Чт) 0:20

EUGY писал(а):Искать надо по имени класса окна, а не по его Caption.


Искать надо и по имени класса и по заголовку. У VB все стандартные окна одного класса "ThunderRT%версия VB%FormDC".
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

EUGY
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 214
Зарегистрирован: 09.11.2006 (Чт) 22:51
Откуда: Мурманск

Сообщение EUGY » 15.02.2007 (Чт) 0:23

Открыт проводник с надписью наверху "PROGR", это окно с именем класса "ExploreWClass".
Обеспечь проверку (GetClassName), нужно тебе окно с этим именем класса или нет. Можно поиграться с Spy++.

EUGY
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 214
Зарегистрирован: 09.11.2006 (Чт) 22:51
Откуда: Мурманск

Сообщение EUGY » 15.02.2007 (Чт) 0:25

To BV:

Мне-то не рассказывай.

Kolobuk
Обычный пользователь
Обычный пользователь
 
Сообщения: 61
Зарегистрирован: 24.10.2006 (Вт) 20:03

Сообщение Kolobuk » 15.02.2007 (Чт) 0:35

Спасибо. Попробую разобраться.


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

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

Сейчас этот форум просматривают: Google-бот и гости: 106

    TopList