Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Управление предыдущим экземпляром, запретить повторный запуск 
:(
    Опции темы
Guest45
  Дата 13.10.2011, 14:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 199
Регистрация: 24.5.2009

Репутация: нет
Всего: нет



В общем-то несложно заблокировать повторный запуск программы на VB.
Но мне хочется, чтобы результатом повторного запуска, уже существующее окно (первый экземпляр) вызывалось на передний план.

Я использую такой код:

Код

Private Sub Form_Load()
If App.PrevInstance = True Then
Me.Caption = "  " 'смена заголовка, чтоб не был как у предыдущей копии
'нахождение предыдущего окна по его заголовку и показ
CmdShow = 9 'номер режима показа
s = ShowWindow(FindWindow(vbNullString, "Form1"), CmdShow)
End
End If
. . .
End Sub

код модуля:
Код

'Функция поиска окна
Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
'Функция показа окна
Declare Function ShowWindow Lib "user32.dll" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long


Если окно первого экземпляра было свернуто, то попыткой повторного запуска экзешника оно развертывается, но помещается на задний план, а не на передний.

Каким должен быть номер режима CmdShow,  чтобы оно помещалось на передний план?


PM MAIL   Вверх
Akina
Дата 13.10.2011, 14:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



SW_SHOWNORMAL



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Guest45
Дата 13.10.2011, 15:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 199
Регистрация: 24.5.2009

Репутация: нет
Всего: нет



Копипастил это заклинание из Вашего поста и вставил его прямо в функцию вместо переменной CmdShow.

Результат:
При повторном запуске экзешника окно не просто свернулось - оно исчезло совсем, и из строки задач, став недоступным. (Так у меня работал номер 0).
Удалил процесс через диспетчер задач. 

Что сделал неправильно?


Это сообщение отредактировал(а) Guest45 - 13.10.2011, 15:15
PM MAIL   Вверх
Akina
Дата 13.10.2011, 15:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Цитата(Guest45 @  13.10.2011,  16:10 Найти цитируемый пост)
Что сделал неправильно?

Не прочитал описание функции и параметров в MSDN. Не присвоил соотв. значение константе.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Guest45
Дата 13.10.2011, 16:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 199
Регистрация: 24.5.2009

Репутация: нет
Всего: нет



А какое именно значение надо присвоить константе, для правильного решение выше изложенной задачи?

PM MAIL   Вверх
Akina
Дата 13.10.2011, 17:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Цитата(Guest45 @  13.10.2011,  17:02 Найти цитируемый пост)
какое именно значение надо присвоить константе

Уже же сказано
Цитата(Akina @  13.10.2011,  15:53 Найти цитируемый пост)
SW_SHOWNORMAL

И сказано, где искать его численное значение
Цитата(Akina @  13.10.2011,  16:56 Найти цитируемый пост)
описание функции и параметров в MSDN




--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Guest45
Дата 13.10.2011, 17:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 199
Регистрация: 24.5.2009

Репутация: нет
Всего: нет



Цитата(Akina @ 13.10.2011,  17:03)
Цитата(Guest45 @  13.10.2011,  17:02 Найти цитируемый пост)
какое именно значение надо присвоить константе

Уже же сказано
Цитата(Akina @  13.10.2011,  15:53 Найти цитируемый пост)
SW_SHOWNORMAL

И сказано, где искать его численное значение
Цитата(Akina @  13.10.2011,  16:56 Найти цитируемый пост)
описание функции и параметров в MSDN

К сожалению мне не удалось найти этого численного значения.
Если кто-нибудь знает, какое именно численное значение нужно использовать для вызова окна на передний план, напишите здесь это число, если Вас не слишком затруднит.



PM MAIL   Вверх
Akina
Дата 13.10.2011, 18:19 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Цитата(Guest45 @  13.10.2011,  18:50 Найти цитируемый пост)
К сожалению мне не удалось найти этого численного значения.

Ну чего врёшь-то? так и скажи - не искал. Потому как в Гугле что имя функции, что имя константы забей, и первая же ссылка - это описание функции на MSDN, и там же дано и значение константы.



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Dexx
Дата 13.10.2011, 18:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 292
Регистрация: 13.6.2005

Репутация: 5
Всего: 7



Видимо в гугле забанили(;

Код

Const SW_SHOWNORMAL = ?

 

Вместе с vb6 идет "API Text Viewer" там можно глянуть.

Это сообщение отредактировал(а) Dexx - 13.10.2011, 18:22


--------------------

PM   Вверх
Guest45
Дата 14.10.2011, 09:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 199
Регистрация: 24.5.2009

Репутация: нет
Всего: нет



Цитата(Akina @ 13.10.2011,  18:19)
Ну чего врёшь-то?
 Ну зачем же так волноваться, уважаемый?
Да я не знаю.- но ведь и никто тут не знает этого числа, как можно видеть по постам в этой теме.



PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.1022 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.