|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Нужно что бы программа в локальной сети запускалась в единственном энкземпляре |
|
CMD/BAT - [решено] Нужно что бы программа в локальной сети запускалась в единственном энкземпляре
|
Новый участник Сообщения: 5 |
Профиль | Отправить PM | Цитировать Нужно что бы программа в локальной сети запускалась в единственном энкземпляре.
Нашел способ с помощью утилиты PsList, но несколько дней экспериментов с политиками и правами доступа не дали рензультата, зато есть доступ в общую папку. Из чего родилась идея: -Батник должен запускать данную программу, при запуске создавая в своей общей папке например 111.txt -После выхода из программы 111.txt должен удаляться (Не знаю воозможно ли это). -А перед запуском проверять, нет ли такокого файлика в чужой общей папке по адресу \\User\111.txt Соответственно если файл есть, то программа не должна запускаться. Буду признателен за помощь. В батниках я чайник... |
|
Отправлено: 19:29, 22-02-2011 |
Старожил Сообщения: 415
|
Профиль | Отправить PM | Цитировать $Userlist - список пользователей, по 1 на строку. Например, так:
$Sharename - Название общей шары на всех компах в сети $LocalShare - Путь к общей шаре на этом компе $Program - Нужная программа Если компьютер не в сети, то опрашивать его может до 20 секунд, чтобы не казалось, что скрипт завис, я добавил индикацию текущего адреса @Echo Off Set $Userlist=userlist.txt Set $Sharename=Temp Set $LocalShare=D:\Temp Set $Program=C:\Windows\notepad.exe Set /A $isRunning=0 For /F "tokens=*" %%l In (%$Userlist%) Do ( Echo Checking... %%l\%$Sharename%\ If Exist %%l\%$Sharename%\isRunning.flag Set /A $isRunning=$isRunning+1 ) If Not %$isRunning%==0 (Exit) Else (Echo.>"%$LocalShare%\isRunning.flag") Echo Do not close this window Call "%$Program%" Del "%$LocalShare%\isRunning.flag" |
Отправлено: 14:27, 23-02-2011 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 3806
|
Профиль | Отправить PM | Цитировать Цитата Anonymоus:
|
|
Отправлено: 17:44, 23-02-2011 | #3 |
Новый участник Сообщения: 5
|
Профиль | Отправить PM | Цитировать Anonymоus Код работает. Премного благодарен, просто огромное спасибо.
Сначала isRunning.flag не создавался в своей общей папке (нет доступа). Оказалось что надо добавить в разрешения себя (админа !!!). |
Отправлено: 19:56, 23-02-2011 | #4 |
Старожил Сообщения: 415
|
Профиль | Отправить PM | Цитировать Цитата Busla:
|
||
Отправлено: 22:52, 23-02-2011 | #5 |
Ветеран Сообщения: 3806
|
Профиль | Отправить PM | Цитировать Anonymоus, да, извиняюсь - что-то попутал
|
Отправлено: 10:08, 24-02-2011 | #6 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Как узнать запускалась ли программа | Ledax | Хочу все знать | 1 | 29-12-2010 15:43 | |
Mandriva/Mandrake - Программа мониторинга локальной сети | Nerde | Общий по Linux | 2 | 06-05-2010 16:53 | |
[решено] Как сделать чтобы запускалась программа на компьютере при подключении флешки | t1nkoff | Хочу все знать | 10 | 08-06-2009 21:16 | |
Программа для общения по локальной сети | kazarkin | Сетевые технологии | 7 | 31-01-2006 17:24 | |
Что нужно для АДСЛ-Интернет в локальной сети. | Zippy | Сетевые технологии | 4 | 28-09-2004 15:44 |
|