|   |   | 
| 
 | Как запретить запуск программы более 1 раза? | ☑ | ||
|---|---|---|---|---|
| 0
    
        Mihenius 15.01.14✎ 18:10 | 
        Вопрос в теме.
 Не могу найти никакой утилитки. | |||
| 1
    
        Apokalipsec 15.01.14✎ 18:11 | 
        В настройках пользователя - "запретить открытие нескольких сеансов".     | |||
| 2
    
        Волшебник модератор 15.01.14✎ 18:12 | 
        Запуск программы сделай через ярлык. При запуске скриптом проверяй рабочие процессы в памяти.     | |||
| 3
    
        Mihenius 15.01.14✎ 18:15 | 
        (1) программа запускается локально. 
 (2) тоже так думал, но вдруг где есть небольшая утилитка или политика в винде. | |||
| 4
    
        oleg_km 15.01.14✎ 19:30 | 
        (3) Нет, обычно это делается в самой программе: или через поиск главного окна или созданием именованного объекта ядра.     | |||
| 5
    
        France 15.01.14✎ 20:03 | 
        А для чего натуги
 может легче найдется путь колись | |||
| 6
    
        Ненавижу 1С гуру 15.01.14✎ 20:11 | 
        (0) накуа?     | |||
| 7
    
        Dmitry1c 15.01.14✎ 20:29 | 
        (0) гугли Singleton     | |||
| 8
    
        Обработка 15.01.14✎ 21:23 | 
        (2) А если у него несколько  баз?     | |||
| 9
    
        Jackman 15.01.14✎ 21:31 | 
        Если речь идет про одну базу - проверяй при попытке входа, есть ли уже такой пользователь в базе, если есть - не пускать.     | |||
| 10
    
        Волшебник модератор 15.01.14✎ 21:32 | 
        (8) А почему ты решил, что речь вообще про 1С?     | |||
| 11
    
        NS 15.01.14✎ 21:34 | 
        (0) Создай файл в темпе, и открой его на запись.     | |||
| 12
    
        SergeyKB 15.01.14✎ 21:34 | 
        OpenMutex / CreateMutex     | |||
| 13
    
        Обработка 15.01.14✎ 21:37 | 
        (10) Пардон...     | |||
| 14
    
        DirecTwiX 15.01.14✎ 21:38 | 
        Мьютексы. В гугле куча примеров     | |||
| 15
    
        Koala 15.01.14✎ 22:04 | 
        (11) ...и однажды, после внезапного некорректного завершения программы, лови от пользователей кучу баг-репортов...
 Имхо, проверять наличие в базе текущего пользователя - наилучший вариант. Если речь об 1С, конечно. | |||
| 16
    
        Torquader 15.01.14✎ 22:26 | 
        (15) И в чём проблема - процесс открывает файл на запись, другой процесс его открыть на запись не может, пока процесс не завершится или не закроет файл.
 У меня половина сценариев на VbScript через этот механизм стартует и синхронизируется, и ещё ничего не упало и не сглючило. (12) Ещё лучше, но нужно вызывать функции Windows API и не всем программам доступно. | |||
| 17
    
        NS 15.01.14✎ 22:36 | 
        (15) и что произойдет после неккоретного завершения программы из-за открытого на запись файла?     | |||
| 18
    
        Mihenius 15.01.14✎ 22:40 | 
        Спасибо всем кто ответил.
 Программа к 1с никакого отношения не имеет ) Это ПО к рентген аппарату стоматологическому, она итальянско-немецкая. В мск ее с горем пополам, видимо еще с помощью промта перевели. Но вот беда если за 1 компом запустить 2 сеанса, то сервер падает в синий экран ))) или виснет наглухо. Соответственно в мск ни сном не духом, пишут только что программа написана для win xp/2003, у вас 7-ка - поэтому и проблемы. | |||
| 19
    
        Mihenius 15.01.14✎ 22:46 | 
        (18) Стоматологов, особенно в возрасте, убедить, что нельзя запускать 2-й раз не получается.
 Остался вариант закрыть такую возможность программно. Ждать пока контора из мск получит ответа на багрепорт от производителя можно очень долго, если они его зарегистрировали. | |||
| 20
    
        Torquader 15.01.14✎ 22:55 | 
        (18) Она датчик по USB открывает монопольно, а драйвер написан без блокировок - соответственно - два одномоментных вызова и память драйвера вместе с системой - коту под хвост.
 Поставьте Xp по downgrade, если можно. P.S. если окно имеет стандартный заголовок, то можно из сценария его поискать, и запускать только в том случае, если оно запущено. Также VbScript позволит следить, а не завершился ли процесс. | |||
| 21
    
        Mihenius 15.01.14✎ 22:57 | ||||
| 22
    
        Mihenius 15.01.14✎ 23:01 | 
        (20) 
 Не все так просто. На том же ПК еще стоит другой рентген для панорамных снимков, ему 7-ка нужна ) Глючит по сетке у врачей, на "типо сервере" куда все датчики подключены все нормально. Как по сетке на 1 машине запускают 2 окно, в момент обращения к БД, происходит косяк. Хотя если запустить хоть 10 сеансов с разных машин, никаких проблем нет Да понятно, что готового ничего нет. Скрипты, батники в руки и вперед ) | |||
| 23
    
        Torquader 16.01.14✎ 11:12 | 
        (22) Значит, программа использует прямой доступ к видео для отображения снимков, а два прямых доступа не проходят.
 Но, сия фигня и в XP точно также "работает". | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |