Завершение процессов

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

Завершение процессов

Сообщение Morgot » 14.03.2007 (Ср) 10:39

Прошу помощи. Нужно программно закрыть окно IE или диспетчера задач.
Пытался сделать через
WinWnd=FindWindow(vbNullString, Имя окна)
SendMessage WinWnd, WM_CLOSE, 0, 0
Никакой реакции, хотя эта же команда без проблем закрывает Counter Strike или калькулятор.
Если кто знает, в чем дело и как с этим справиться, помогите.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 14.03.2007 (Ср) 10:56

WinWnd, WM_SYSCOMMAND, SC_CLOSE, 0
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Morgot
Начинающий
Начинающий
 
Сообщения: 18
Зарегистрирован: 07.12.2006 (Чт) 12:16

Сообщение Morgot » 17.03.2007 (Сб) 10:19

попробовал следовать совету, написал так:
WinIE = FindWindow("IEFrame", vbNullString)
If WinIE <> 0 Then SendMessage WinIE, WM_SYSCOMMAND, SC_CLOSE, 0
Не работает, ругается такими словами - validate not defined
в чем моя ошибка?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 17.03.2007 (Сб) 10:39

Такой ошибки нет. Читай текст ошибки внимательнее.
Хотя, если честно, удивительно, почему у тебя вообще запустился твой начальный код, раз ты не знаешь, в чём здесь дело :?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Morgot
Начинающий
Начинающий
 
Сообщения: 18
Зарегистрирован: 07.12.2006 (Чт) 12:16

Сообщение Morgot » 17.03.2007 (Сб) 11:56

с текстом я действительно ошибся, точное написание - variable not defined

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 17.03.2007 (Сб) 12:04

Ни на какие мысли не наводит прямой перевод этого текста?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Morgot
Начинающий
Начинающий
 
Сообщения: 18
Зарегистрирован: 07.12.2006 (Чт) 12:16

Сообщение Morgot » 17.03.2007 (Сб) 12:09

Но WinIE определена, как Long. Или дело не в ней?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 17.03.2007 (Сб) 12:13

Morgot, объясни мне, каким образом у тебя работал первый код, с SendMessage WinWnd, WM_CLOSE, 0, 0?
И главный вопрос - VB при возникновении этой ошибки выделяет текст, где она встречена. Ты не видишь это выделение? :roll:
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Morgot
Начинающий
Начинающий
 
Сообщения: 18
Зарегистрирован: 07.12.2006 (Чт) 12:16

Сообщение Morgot » 17.03.2007 (Сб) 12:16

могу переслать весь листинг

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

Сообщение BV » 17.03.2007 (Сб) 15:34

Сильно подозреваю, что Morgot не определил константу(ы) WM_SYSCOMMAND/SC_CLOSE.
А надо бы.

Код: Выделить всё
Private Const WM_SYSCOMMAND As Long = &H112
Private Const SC_CLOSE As Long = &HF060&
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;

RUSYA
Обычный пользователь
Обычный пользователь
 
Сообщения: 84
Зарегистрирован: 22.07.2005 (Пт) 20:17
Откуда: Харьков

Сообщение RUSYA » 18.03.2007 (Вс) 22:57

Да понято что надо было, GSerg пытался заставить топстартера напрячь мозг, а не заниматься копипестом, BV всё испортил :))))
А как оно на самом деле - Х.З. !

Morgot
Начинающий
Начинающий
 
Сообщения: 18
Зарегистрирован: 07.12.2006 (Чт) 12:16

Сообщение Morgot » 19.03.2007 (Пн) 12:40

С константами я разобрался чуть раньше подсказки, до этого сильно тупил, за что извиняюсь. Но проблема в том, что получилось закрыть только диспетчер задач, а с Internet Explorer это не прокатило. В чем фишка, если не секрет?

RUSYA
Обычный пользователь
Обычный пользователь
 
Сообщения: 84
Зарегистрирован: 22.07.2005 (Пт) 20:17
Откуда: Харьков

Сообщение RUSYA » 19.03.2007 (Пн) 22:47

Хендел окошка IE точно нашёлся?
А как оно на самом деле - Х.З. !

Morgot
Начинающий
Начинающий
 
Сообщения: 18
Зарегистрирован: 07.12.2006 (Чт) 12:16

Сообщение Morgot » 20.03.2007 (Вт) 10:42

да, проверял на других событиях, вроде msgbox-а, всплывающего при открытии IE - работает безотказно, но закрывать не хочет


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

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

Сейчас этот форум просматривают: AhrefsBot и гости: 111

    TopList