
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
22.01.2008, 16:46
|
|||
|---|---|---|---|
|
|||
MsgBox поверх всех окон Windows |
|||
|
#18+
Настоящие программеры, подскажите! У меня вот какая задача: работает программа и по завершении её работы появляется мэссэджбокс с надписью, например: "Работа программы закончена". НО его я вижу, если активно окно программы. А если я на момент окончания работы программы открыл другое приложение или окно моей программы находится в свёрнутом положении, или ... вобщем не видно окан проги, то как же мне увидеть это сообщение? Как сделать так, чтоб МэссэджБокс выползал при каких либо обстоятельствах (даже если запущен проигрыватель или ещё что-нить)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.01.2008, 16:49
|
|||
|---|---|---|---|
|
|||
MsgBox поверх всех окон Windows |
|||
|
#18+
Если программа твоя, в смысле есть исходный код, то переделываеш меседжбокс на форму и делаеш её топмост Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.01.2008, 16:53
|
|||
|---|---|---|---|
|
|||
MsgBox поверх всех окон Windows |
|||
|
#18+
В смысле топмост? Это в свойствах формы нада? Не сердитесь, и не обращайте внимания на тупость, но где этот топмост ставить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.01.2008, 17:31
|
|||
|---|---|---|---|
MsgBox поверх всех окон Windows |
|||
|
#18+
Чтобы выползал MsgBox "при каких либо обстоятельствах", вам не надо ничего делать. Т.е. абсолютно. Он (MsgBox) выползает, если просто к нему обратиться - чем вам не обстоятельство? Какое-либо. Если же вы хотите, чтобы он (MsgBox) выползал при каких угодно обстоятельствах (почувствуйте разницу), то напишите свою форму, заменяющую MsgBox. Для этого в модуле напишите: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. А в код такой формы добавьте: Код: plaintext 1. 2. 3. 4. 5. 6. Тогда, если не видно "окан проги" (кстати, что это такое?), то сама форма должна стоять "on top". Вот так над а ! Вопрос к Игорю Горбонос: Что это такое: "переделываеш меседжбокс на форму и делаеш её топмост"? Это в какого языка? Успехов! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.01.2008, 18:23
|
|||
|---|---|---|---|
|
|||
MsgBox поверх всех окон Windows |
|||
|
#18+
Помогите мне ещё раз. Значит есть вот такой код: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. чтобы не ломали долго себе голову над исходником, объясняю: это код для MS Outlook, при получении почты все вложения сохраняются в папку "Оутлук" и выдаётся на экране сообщение о том, что пришла почта (см. выше) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.01.2008, 18:44
|
|||
|---|---|---|---|
|
|||
MsgBox поверх всех окон Windows |
|||
|
#18+
> чтобы не ломали долго себе голову над исходником, объясняю: это код > для MS Outlook, при получении почты все вложения сохраняются в папку > "Оутлук" и выдаётся на экране сообщение о том, что пришла почта (см. выше) А когда и как вызывается код обработки вошедшей почты? Вставить в отдельный модуль, можно тот в котором остальной код, но нежелательно. И из этого кода совсем не понятно, когда должен показыватся MsgBox, который нужно заменить. > Что это такое: "переделываеш меседжбокс на форму и делаеш её > топмост"? Это в какого языка? это "непереводимая игра слов на местном диалекте" (с) Бриллиантовая рука :-) Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.01.2008, 18:56
|
|||
|---|---|---|---|
|
|||
MsgBox поверх всех окон Windows |
|||
|
#18+
авторИгорь Горбонос MsgBox уже заменил. Вот исходник, где был мессэджбокс Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. А вот, собственно, и как вызывается код обработки вошедшей почты Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.01.2008, 19:12
|
|||
|---|---|---|---|
MsgBox поверх всех окон Windows |
|||
|
#18+
part_ok...И куда вы предлагаете вставить Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Так в модуль вставить..., обычный, даже не в класс... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.01.2008, 19:16
|
|||
|---|---|---|---|
|
|||
MsgBox поверх всех окон Windows |
|||
|
#18+
Вот здесь http://www.developersdex.com/vb/message.asp?p=2677&r=6117943&page=2 можно прочитать как получить HWND для UserForm. Потом немного переделать код который дал VladConn, исправив функцию Public Sub StayOnTop(ByVal hwnd As Long) SetWindowPos hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE End Sub и переписать то что было написанно Вами так ....... Wend Set OLF = Nothing load UserForm1 здесь вставить код нахождения HWND для UserForm1 и вызвать функцию имя модуля.StayOnTop найденный hwnd End Sub Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.01.2008, 19:17
|
|||
|---|---|---|---|
MsgBox поверх всех окон Windows |
|||
|
#18+
Игорь Горбонос > Что это такое: "переделываеш меседжбокс на форму и делаеш её > топмост"? Это в какого языка? это "непереводимая игра слов на местном диалекте" (с) Бриллиантовая рука :-) Posted via ActualForum NNTP Server 1.4 Попробую перевести : Заменяете MsgBox формой и делате ее "always on top". "топмост" - недостаточно, надо "всегда топмост" :0) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.01.2008, 19:24
|
|||
|---|---|---|---|
|
|||
MsgBox поверх всех окон Windows |
|||
|
#18+
> > Что это такое: "переделываеш меседжбокс на форму и делаеш её > > топмост"? Это в какого языка? > это "непереводимая игра слов на местном диалекте" (с) > Бриллиантовая рука > :-) > > Попробую перевести : Заменяете MsgBox формой и делате ее "always on > top". это заархивированный вариант Вашего ответа чуть раньше > "топмост" - недостаточно, надо "всегда топмост" Согласен, но нужно же хоть что нибудь оставлять и разработчику ;-) Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.01.2008, 22:00
|
|||
|---|---|---|---|
MsgBox поверх всех окон Windows |
|||
|
#18+
А распростецкое MsgBox+vbSystemModal чем не устраивает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.01.2008, 16:48
|
|||
|---|---|---|---|
MsgBox поверх всех окон Windows |
|||
|
#18+
AntonariyА распростецкое MsgBox+vbSystemModal чем не устраивает? Так це ж само собою.... Я посчитал, что там еще надо, чтобы форма приложения могла минимизироваться, оставляя сообщение поверх всего. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.01.2008, 17:22
|
|||
|---|---|---|---|
MsgBox поверх всех окон Windows |
|||
|
#18+
Antonariy, вот что я раскопал на одном из британских форумов по вопросу vbSystemModal: ...it's important to be very careful when you use this, by the way. A good example of when Windows uses it is when you run low on memory (which happens when you do something like run AOL for three days straight). The idea is that the user will want to know this no matter what the application context, because this is a warning about a general system issue that could affect every application. If you are using this in an application context and taking over another application context, that's considered bad manners. On the other hand, bad manners are sometimes exactly what is required. Just not very often... Я лично раньше и не задумывался об этой стороне дела. Там ребята как-то шугаются такого режима, мол, как правило, неудобно такое ставить. Интересно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.01.2008, 20:00
|
|||
|---|---|---|---|
MsgBox поверх всех окон Windows |
|||
|
#18+
Уместность всяких действий зависит не только от правил, но и обстоятельств. Лично я использовал vbSystemModal только в случаях межпрограммных взаимодействий, например с экселем, когда и в программе и в экселе идут какие-то процессы. Если произойдет ошибка в одном приложении, а активно другое, то MsgBox с сообщеним об ошибке заблокирует оба приложения и при отсутствии vbSystemModal не будет доступен для ответной реакции пользователя. Придется тыркаться между подвисшими окнами, пока волею винды это сообщение не проявится. А некоторые вообще могут не вкурить, что произошло, и прибить все через диспетчер задач. On the other hand, bad manners are sometimes exactly what is required. Just not very often...Потпесалсо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=60&mobile=1&tid=2162786]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
91ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
35ms |
get tp. blocked users: |
1ms |
| others: | 210ms |
| total: | 374ms |

| 0 / 0 |
