powered by simpleCommunicator - 2.0.41     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как сделать, чтобы приложение не запускалось второй раз
10 сообщений из 35, страница 2 из 2
Как сделать, чтобы приложение не запускалось второй раз
    #32767917
oleg_km
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну все съехало на флейм.

Не буду дальше спорить, потому, как оспариваются уже мои познания Win32. Скажу только, что читал и MSDN, и Джеффри Рихтера и Хелен Кастер, и недокументированную Windows NT Коберниченко, написал программу с реальным использованием и Event'ов и Mutex'ов именно для синхронизации процессов и достаточно хорошо представляю что такое объекты синхронизации.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Как сделать, чтобы приложение не запускалось второй раз
    #39222641
rock-n-roll
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго времени суток!

Dushes Как вариант:
Код: sql
1.
2.
3.
4.
5.
6.
7.
......
   do while Process32Next(hSnap, @proc) > 0
	  str1=substr(proc,9*4+1,260)
	  str1=left(str1,iif(at(chr(0),str1)>0,at(chr(0),str1)-1,len(str1)))
	  ProcessID = substr(proc,2*4+1,4)
	  ProcessID = ( ((ASC(SUBST(ProcessID,4,1))*256) + ASC(SUBST(ProcessID,3,1)))*256 + ASC(SUBST(ProcessID,2,1)))*256 *ASC(LEFT(ProcessID,1) )
.........







Процес и ИД . А можно из "proc" еще и имя пользователя выцарапать?

Собственно мне нужно проверить наличие процесса у пользователя терминалки (последний может быть открыт другими юзверами)
Проверка на процесс+sys(0)

Заранее благодарен
...
Рейтинг: 0 / 0
Как сделать, чтобы приложение не запускалось второй раз
    #39222652
rock-n-rollПроцес и ИД . А можно из "proc" еще и имя пользователя выцарапать?ЗАЧЕМ?
Собственно мне нужно проверить наличие процесса у пользователя терминалки (последний может быть открыт другими юзверами)Другой юзер работает в другой теринальной сессии. А сессии содержимое друг друга не видят.Проверка на процесс+sys(0)Еще раз - нафига? Пользователи терминалки друг друга не видят. В одной терминальной сессии не может быть более одного пользователя. Не надо пытаться быть святее Папы римского и из прикладного софта пытаться делать административные вещи.
Или очень захотелось ограничить одним процессом на всю терминалку?
...
Рейтинг: 0 / 0
Как сделать, чтобы приложение не запускалось второй раз
    #39222704
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наверно как-то можно, погугли каким WinAPI диспетчер задач пользуется. Только без админских прав виндовс просто тебе не покажет все процессы.

rock-n-rollСобственно мне нужно проверить наличие процесса у пользователя терминалки (последний может быть открыт другими юзверами)
Выше примеры с именованными мутексами. 1068527
Только там поправить немного надо чтобы в терминале работало, добавить "Global\" к названию объекта, тогда он будет общий для всех сессий.
Код: sql
1.
2.
3.
4.
5.
lc_NameApp = "Global\UnicNameApp" && Тут можешь к примеру писать имя своего APP
hMutex =  CreateMutex(null,0, @lc_NameApp)
IF hMutex = 0
?  "Ошибка создания объекта ядра - мьютекс" && эта ошибка будет если объект создан в другой терминальной сессии
ELSE
...
Рейтинг: 0 / 0
Как сделать, чтобы приложение не запускалось второй раз
    #39222798
rock-n-roll
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
правильный проходящий. Пользователи терминалки друг друга не видят. В одной терминальной сессии не может быть более одного пользователя.
Здесь под админом , но и под рядовым могу такую же картинку
Все все видят. Вопрос лишь ху из ху.


Dima T погугли каким WinAPI диспетчер задач пользуется
Все правильно- так и должно быть, но как надеялось на "блюдечко с голубой каемочкой"
Спасибо
...
Рейтинг: 0 / 0
Как сделать, чтобы приложение не запускалось второй раз
    #39222807
rock-n-roll
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rock-n-roll,ой
...
Рейтинг: 0 / 0
Как сделать, чтобы приложение не запускалось второй раз
    #39222813
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rock-n-rollDima T погугли каким WinAPI диспетчер задач пользуется
Все правильно- так и должно быть, но как надеялось на "блюдечко с голубой каемочкой"
Спасибо
Все темы связанные с ограничениями доступа виндовса очень слабо раскрыты. Как-то гуглил как сделать тот же мутекс доступным в разных сессиях, т.е. не просто использовать его как флаг (запущена/незапущена прога), а как полноценный мутекс. С трудом нарыл пример на C#, на голом WinAPI так и не смог сделать. Толи МС перемудрил с безопасностью (простейшие примеры на MSDN не одна сотня строк, в книгах тоже особо ее не раскрывают), толи просто тема неактуальная и никто по ней ничего не пишет.
...
Рейтинг: 0 / 0
Как сделать, чтобы приложение не запускалось второй раз
    #39222822
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почитай гугл там такие портянки приводят что на фоксе устанешь писать.
...
Рейтинг: 0 / 0
Как сделать, чтобы приложение не запускалось второй раз
    #39222836
rock-n-roll
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T,

Ну если гуру затрудняются, что взять со смертных
Спасибо еще раз, вопрос снимаю.
В принципе и задумка была не кон необходимая, оставлю как есть- юзверь лишний раз "глазом увидев, пальчиком кнопочку нажмет"- оно там не часто.
Спасибо еще раз
...
Рейтинг: 0 / 0
Как сделать, чтобы приложение не запускалось второй раз
    #39222847
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rock-n-rollВ принципе и задумка была не кон необходимая, оставлю как есть- юзверь лишний раз "глазом увидев, пальчиком кнопочку нажмет"- оно там не часто.
Спасибо еще раз
Ты бы лучше задумку свою описал, может и решение попроще нашлось бы.
...
Рейтинг: 0 / 0
10 сообщений из 35, страница 2 из 2
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как сделать, чтобы приложение не запускалось второй раз
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]