Открыть модальное окно windows. Как? Доброго времени суток! Необходимо из 1С при наступлении некого события открыть поверх всех окон модальное окно windows. В настоящий момент используется такой код: WshShell = Новый COMObject("WScript.Shell"); WshShell.Popup(Текст,, "Заголовок", 0+64); Проблема в том, что окно открвается не поверх всех окон, а где-то на заднем плане. В общем нужно сообщение вывести таким образом, чтобы его сразу увидели и пока не нажали ОК, работать дальше не смогли. |
а чем модальное окно 1С не устраивает? |
(0) не прокатит, будут жать ОК бездумно. ни на что не обращая внимания. задачку надо генерить и ждать ввод ответа... |
1-Синегурочка >Очевидно тем, что при свернутой 1С пользователь его не увидит. 2-Чучундер >Пусть жмут. Главное обратить внимание пользователя, что произошло некое событие. |
ТС похоже спятил. Однако весна 1. При наличии двух модальных окон из разных программ одно из них всегда будет внизу. 2. послать все модальные окна в одно место или в зад ТС пользователь может элементарно - либо с клавиатуры либо мышкой. И продолжить свои делишки на компе без нажатия ОК. 3. Пользователь имеет право бить морду лица ТС. Сразу. Без суда и следствия чтобы окно висело и не пускало пользователя дальше - это надо очень постараться. Хотя в общем то способы известны |
4-Helen1986 > Конечно с "работать дальше не смогли" это я загнул. Пользователь сам попросил уведомлять его о событии, поэтому он сам заинтересован их получать. Что он будет с ними делать после вывода, это его личные проблемы. А кто тут ненормальный уже давно всем известно. Давайте перефразирую вопрос. Есть задача уведомлять пользователя о наступлении некого события в 1С, даже если окно 1С свернуто. Как это лучше сделать? На мой взгляд это было бы окно с текстом уведомления которое открывается поверх всех окон. |
5-Noldor > Послать задание какому-нить "мессенджеру", чтоб он уведомил пользователя, что ему есть сообщение. Этих "мессенджеров", как кошек на помойке. И не [filolog]ипать[/filolog] мозг. |
(6) да ТС туп и о мессенгерах понятия не имеет к тому же програмка на сях или дельфях с указанной возможностью без установки в среде вендоф пишется за 5 минут (ибо если нормальный админ возьмет ТС или пользователя за .... одно место - фиг он поставит мессенджера) |
Ну вот. Задача решена. Обошелся и без мессенгеров и без самописных программулек. |
Можно в конце, после паузы, передать в ОС нажатие клавиш Alt+Tab или Alt+Shift+Tab, по памяти: WScript.sleep(500) WshShell.SendKeys "^+{Tab**" Чтобы сработало в Terminal Server - в его настройках должна быть включено "исп-е локальных ресурсов" - "клавиатура". И о чудо - Alt+Tab заработает, и бедным бухам не нужно будет рыскать в день раз по триста глазами и рукой+мышкой по всему верху экрана в поисках мелконькой кнопки свернуть. О-ооо! По моей статистике - эта фишка включена только у 1/100 клиентов. Берегите бухш, они такие несчастные... |
Noldor - раз уж взбаламутили - колитесь! Неужто двойным вызовом? Или свернули терминал программно? |
10-economist >Нет. Все гораздо проще. Я вспомнил про процедуру ПоказатьОповещениеПользователя Её функционала вполне достаточно для решения моей задачи. |
Понятно. Кстати, проверил Alt+tab, как в (9) - работает! При этом WSH/WBS скрипт может быть достаточно сложным и полезным. В частности, у меня он распознает скан PDF-а с невидимым searchable-слоем в момент его прикрепления к документу 1С, после чего возможен fulltextsearch по текстам договоров, с/ф итп. Опять же, наколенный EDM... |
пан-директор хорош свою глупость выпячивать |
автор открой для себя месаджбокс |
(4) пункт 1 опровержим |
(15) в трехмерном пространстве? если программа1 вывалила модальное окно и программа2 вывалила тоже модальное окно - одно из них будет ПОД... а под этими модальными будут все остальные окна. Вроде так можно конечно сделать чтобы модальное окно все время "всплывало" в случае перекрытия... |
(16) рядом |
будем считать что размеры каждого модального окна равны размеру экрана кстати, переключаться между этими модальными можно |
(18) индекс и ордер могут быть равными по сути оба будут первыми, а уж как увидит их индивидуум )) автору Скрыпт=Новый COMObject("MSScriptControl.ScriptControl"); Скрыпт.language="vbscript"; Скрыпт.eval("msgbox(123,4096)") |
(18) лучче расскажи гипервизора процессоры 1%, гостя процессоры сопоставленные 30% - где остальные 29% ? - кто украл у меня счастье ? |
и попутно - имею ли моральное право использовать х64 на 384 мб памяти ? (это не стеб - реальное смятение чувств) |
(19) один фиг в упор не увидит - хотя ТС хочет чтобы увидел. Не выйдет - особенности человеческого воспрятия. Если он занят чем то более серьезным в данный момент (с его точки зрения) (20) сперли. прямо на глазах. а если серьезно - ищи, кто замаскировался в системе (21) у админа есть загрузочная флешка 64 битная - там какой то огрызок виндов грузится и работает, правда, я работала с ней на 512. Но если нет сильно тяжелых приложений - вроде даже мег 200 оперативки остается. |
не венда - боевая почта постфикс - грызут сомнения - может никчему баловстово с 64 (гость) |
Текущее время: 21:54. Часовой пояс GMT +3. |