1 (изменено: inock, 2015-03-04 10:44:41)

Тема: VBS: WshShell.Run не удается дождаться процесса

Восьмое марта близко-близко,
И сердце бьется как олень...

Суть проблемы: пытаюсь в групповой политике пользователя на logon повесить поздравление. Строчка кода такая:

WshShell.Run "\\Domain.Local\SysVol\teplo.local\Policies\{2B6E8279-5A3E-401C-AFDC-12BE686BA842}\User\Scripts\Logon\rozi.jpg",3,1

Получаю ошибку:

WshShell.Run: Не удается дождаться процесса.

Если третий параметр поменять с 1 на 0, то никто никаких процессов не ждет, но у пользователя потом еще запускается куча приложений, окна которых закроют картинку. Пробовал как-то прикрутить WshShell.AppActivate, но во-первых, как получить ID процесса, а если по заголовку окна - то не известно чем откроется эта картинка у конкретного пользователя, софт может стоять разный в разных отделах, и соответственно, заголовок окна может отличаться. А во-вторых, окно все равно на первый план не выводится, а просто значок в панели задач начинает моргать, а это не тот вариант...

Может быть можно как-то окно модальным сделать?

Что-то вот ничего путного на ум не приходит...

2

Re: VBS: WshShell.Run не удается дождаться процесса

A WSH принципиально? Будь то форма на PowerShell можно было бы указать в свойствах формы TopMost, то бишь поверх окон.

3 (изменено: inock, 2015-03-04 13:57:00)

Re: VBS: WshShell.Run не удается дождаться процесса

greg zakharov пишет:

A WSH принципиально?

Нет, не принципиально, AD запускает скрипты PowerShell с тем же успехом, что и WSH или cmd. Другое дело, что я powershell этот не знаю совершенно. У меня в скрипте же не тупо запуск картинки (это бы и cmd справился). Там сначала идет анализ даты, потом анализ пользователя на членство в группе, и уже потом, если все сходится - тогда запускается картинка. На PowerShell я сам такое не осилю на текущий момент.

Пока написал 

On Error Resume Next

Понимаю, что решение крайне кривое, но все работает и сообщение об ошибке не выскакивает.

P.S: Хотя, наверное PowerShell не подойдет. У нас же куча машин с XP. На них этот повершелл будет работать?

4

Re: VBS: WshShell.Run не удается дождаться процесса

inock
А не лучше scr создать или на рабочий стол замостить?

На них этот повершелл будет работать?

Только если установить.

5

Re: VBS: WshShell.Run не удается дождаться процесса

inock, товарищ Flasher опередил с ответом касательно PowerShell. Что же касается WSH... а не пробовали ли Вы провернуть такой трюк: перед тем как показать сообщение с поздравлением, вызвать метод MinimizeAll (или ToggleDesktop, оба определены в Shell.Application), а далее взывать нужный код?