|
С пятницей всех.
|
|||
---|---|---|---|
#18+
Привет друзья. Как дела? Какие пятничные темы вы хотели-бы услышать? (Пятничные темы - любые технологичные. По программированию. Но не срочные. Не продуктовы баги вобщем.) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2021, 20:46 |
|
С пятницей всех.
|
|||
---|---|---|---|
#18+
Весенние каникулы у детей начинаются. Зефирки учимся жарить на мангале. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2021, 22:17 |
|
С пятницей всех.
|
|||
---|---|---|---|
#18+
mayton, интересует запрет повторного запуска проги той же папки. Из другой можно. Главный вопрос - активировать прогу уже запущенную из этой папки. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2021, 22:20 |
|
С пятницей всех.
|
|||
---|---|---|---|
#18+
Создавай в текущей папке .pid файл с кодом текущего процесса. Да это горбуха. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2021, 22:26 |
|
С пятницей всех.
|
|||
---|---|---|---|
#18+
Dima T Весенние каникулы у детей начинаются. Зефирки учимся жарить на мангале. Разве зефирки жарят? Обычно - сосиски. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2021, 22:28 |
|
С пятницей всех.
|
|||
---|---|---|---|
#18+
mayton Создавай в текущей папке .pid файл с кодом текущего процесса. А если прога крашнеца и не уберет за собой .pid? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2021, 22:28 |
|
С пятницей всех.
|
|||
---|---|---|---|
#18+
mayton Dima T Весенние каникулы у детей начинаются. Зефирки учимся жарить на мангале. Разве зефирки жарят? Обычно - сосиски. Кстати да. Никогда не понимал этого буржуйского извращения. Или у них зефир другой? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2021, 22:29 |
|
С пятницей всех.
|
|||
---|---|---|---|
#18+
didgik mayton, интересует запрет повторного запуска проги той же папки. Из другой можно. Главный вопрос - активировать прогу уже запущенную из этой папки. Ну… Создать именованный мьютекс (уровня системы). Имя мьютекса должно содержать папку запуска. При этом мьютекс нужно захватить при запуске и никогда не нужно отпускать. А вот переключиться на уже запущенное приложение... ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2021, 22:35 |
|
С пятницей всех.
|
|||
---|---|---|---|
#18+
mayton Dima T Весенние каникулы у детей начинаются. Зефирки учимся жарить на мангале. Разве зефирки жарят? Обычно - сосиски. Жарят. Все горячее вкуснее чем холодное. Фотки дал бы, но с телефона пишу, не дома, комп дети отжали ((( ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2021, 22:35 |
|
С пятницей всех.
|
|||
---|---|---|---|
#18+
didgik mayton Создавай в текущей папке .pid файл с кодом текущего процесса. А если прога крашнеца и не уберет за собой .pid? Если крашнеца... При старте прога должна взять эксклюзивные права на доступ к этому файлу. Если твоя прога крашается, то все ограничения доступа слетают. Как и тот заблокированный мьютекс. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2021, 22:38 |
|
С пятницей всех.
|
|||
---|---|---|---|
#18+
petrav didgik пропущено... А если прога крашнеца и не уберет за собой .pid? Если крашнеца... При старте прога должна взять эксклюзивные права на доступ к этому файлу. Если твоя прога крашается, то все ограничения доступа слетают. Как и тот заблокированный мьютекс. С мьютексом понятно, не понятно причем тут .pid. А как активировать уже запущенную прогу по мьютексу?? И да. В винде. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2021, 22:41 |
|
С пятницей всех.
|
|||
---|---|---|---|
#18+
didgik petrav пропущено... Если крашнеца... При старте прога должна взять эксклюзивные права на доступ к этому файлу. Если твоя прога крашается, то все ограничения доступа слетают. Как и тот заблокированный мьютекс. С мьютексом понятно, не понятно причем тут .pid. А как активировать уже запущенную прогу по мьютексу?? И да. В винде. "Активировать" это что значит в реальной жизни? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2021, 22:47 |
|
С пятницей всех.
|
|||
---|---|---|---|
#18+
didgik petrav пропущено... Если крашнеца... При старте прога должна взять эксклюзивные права на доступ к этому файлу. Если твоя прога крашается, то все ограничения доступа слетают. Как и тот заблокированный мьютекс. С мьютексом понятно, не понятно причем тут .pid. Я не знаю, что это такой за файл .pid. Видимо, что это файл содержащий process id. Имея process id возможно можно определить дескриптор главного окна этого процесса и послать ему что-то типа сообщения WM_SHOW. Кстати, Process Explorer умеет определять какой процесс держит файл. Так что в файл записывать process id, видимо, не нужно. didgik А как активировать уже запущенную прогу по мьютексу?? И да. В винде. Я не знаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2021, 22:48 |
|
С пятницей всех.
|
|||
---|---|---|---|
#18+
Вот только что я запустил программу, которая держит определённый файл. Потом я запустил Process Explorer. Главное меню: Find -> Find handle or DLL. По имени файла нашёлся процесс, который держит этот файл. Дальше ПКМ на этом процессе: Window -> Bring to front. Всё, приложение активировано на основе пути к файлу, который (файл) держит это приложение. Как блокировку файла заменить на блокировку глобального мьютекса... Ну... может можно. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2021, 22:57 |
|
С пятницей всех.
|
|||
---|---|---|---|
#18+
Dima T "Активировать" это что значит в реальной жизни? Чтоб запущенная прога развернулась с панели задач. Впрочем, вопрос только в том, как во второй копии получить хендл окна уже запущеной проги из этой же папки. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2021, 22:57 |
|
С пятницей всех.
|
|||
---|---|---|---|
#18+
didgik Dima T "Активировать" это что значит в реальной жизни? Чтоб запущенная прога развернулась с панели задач. Впрочем, вопрос только в том, как во второй копии получить хендл окна уже запущеной проги из этой же папки. How to get main window handle from process id? . Поиск в гугле по: winapi get main window handle for process id. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2021, 23:04 |
|
С пятницей всех.
|
|||
---|---|---|---|
#18+
petrav didgik пропущено... Чтоб запущенная прога развернулась с панели задач. Впрочем, вопрос только в том, как во второй копии получить хендл окна уже запущеной проги из этой же папки. How to get main window handle from process id? . Поиск в гугле по: winapi get main window handle for process id. Тогда вопрос в том, как во второй копии получить process id уже запущеной проги из этой же папки. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2021, 23:07 |
|
С пятницей всех.
|
|||
---|---|---|---|
#18+
didgik petrav пропущено... How to get main window handle from process id? . Поиск в гугле по: winapi get main window handle for process id. Тогда вопрос в том, как во второй копии получить process id уже запущеной проги из этой же папки. Уже всё же сказано. - В .pid файл записать process id. Но на случай падения приложения нужно держать эксклюзивные права на запись в этот файл. - Можно держать эксклюзивные права вообще на пустой файл в папке приложения. И по пути к этому файлу определить process id — process explorer так может. - Можно попробовать по имени мьютекса (который содержит путь к папке) определить process id, который его держит. Тут есть ещё момент, что на компе может быть авторизовано сразу несколько пользователей. WinAPI неисчерпаем так же как и атом. Это ещё В.И. Ленин говорил. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2021, 23:17 |
|
С пятницей всех.
|
|||
---|---|---|---|
#18+
у меня есть ini файл. Наверно можно его заюзать под это дело. И писать в него pid при запуске. Т.е. при запуске проги, мы проверяем, есть ли возможность в него писать, если нет, то берем оттуда pid, активируем запущенный экземпляр и закрываемся. И никакие мьютексы не нужны. Осталось узнать про эксклюзивные права записи. Как ставить и как проверять. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2021, 23:28 |
|
С пятницей всех.
|
|||
---|---|---|---|
#18+
didgik у меня есть ini файл. Наверно можно его заюзать под это дело. И писать в него pid при запуске. Т.е. при запуске проги, мы проверяем, есть ли возможность в него писать, если нет, то берем оттуда pid, активируем запущенный экземпляр и закрываемся. И никакие мьютексы не нужны. Осталось узнать про эксклюзивные права записи. Как ставить и как проверять. При запуске проги пытаемся заблокировать файл на эксклюзивную запись. Если получилось, то записываем в ini файл pid и запускаемся. Если не получилось, то пытаемся открыть этот файл на чтение и читаем pid. Если получилось, читаем pid. По нему получаем HWND и активируем окно. Выходим. Эксклюзивные права на запись, например, проверяются попыткой получить такие права. Получил - значит ты хозяин. Документация на функцию ::CreateFile() из WinAPI. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2021, 23:36 |
|
С пятницей всех.
|
|||
---|---|---|---|
#18+
о, а может сразу HWND в ини пихать? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2021, 23:38 |
|
С пятницей всех.
|
|||
---|---|---|---|
#18+
didgik о, а может сразу HWND в ини пихать? Не знаю. Попробуйте. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2021, 23:48 |
|
С пятницей всех.
|
|||
---|---|---|---|
#18+
petravЭксклюзивные права на запись, например, проверяются *попыткой* получить такие права. Получил - значит ты хозяин. Документация на функцию ::CreateFile() из WinAPI. Ага. Прочитать PID из файла, который не удалось открыть. Отличный план. Может, не стоит маяться дурью с файлом, а сразу искать окно?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2021, 01:27 |
|
С пятницей всех.
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov petravЭксклюзивные права на запись, например, проверяются *попыткой* получить такие права. Получил - значит ты хозяин. Документация на функцию ::CreateFile() из WinAPI. Ага. Прочитать PID из файла, который не удалось открыть. Отличный план. Может, не стоит маяться дурью с файлом, а сразу искать окно?.. Прочитать PID из файла, который не удалось открыть на запись. Читать можно. Я так понял. А поиск окна я не осилил пока что. В этом и проблема. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2021, 02:11 |
|
|
start [/forum/topic.php?fid=57&msg=40055417&tid=2017244]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
160ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
67ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 287ms |
0 / 0 |