Предотвращение запуска 2-x копий программы
Состав работы
|
|
|
|
Необходимые программы
Работа представляет собой zip архив с файлами (распаковать онлайн), которые открываются в программах:
- Microsoft Word
Описание
Известно, что Windows - многозадачная система. Это конечно хорошо. Но обратной стороной многозадачности является то, что одновременно можно запустить несколько копий одного и того же приложения. Пользователь может это сделать не специально, да и вторая копия приложения может запуститься из-за ошибки в программе или же самой OC. Из-за клона могут возникнуть некоторые проблемы, связанные с файловыми операциями, операциями с реестром и т.п. Поэтому код поиска и закрытия собственной копии в программе совсем не лишний. Есть несколько методов выполнения нахождения копии. В этой статье я их вам продемонстрирую.
Поиск главной формы (окна)
Чтобы найти копию главного окна можно воспользоваться функцией WinApi - FindWindow. В качестве параметра этой функции передается имя класса окна, которое использовалось при регистрации типа, определяющиего окно формы или в системе окон (WndClass) и заголовка окна. В Дельфи имя оконного класса WndClass совпадает с именем класса формы в Object Pascal (например TForm1). Функция возвращает 0, в случае если окна не существует, либо дескриптор окна, если окно существует. Основной код вашей программы должен быть написан так, что бы программа смогла запуститься, если результат функции FindWindow равен нулю или завершиться в обратном случае. Следующий пример, если вы собираетесь его использовать, нужно вставить в dpr-файл проекта (меню Project - View Source). Пример:
Поиск главной формы (окна)
Чтобы найти копию главного окна можно воспользоваться функцией WinApi - FindWindow. В качестве параметра этой функции передается имя класса окна, которое использовалось при регистрации типа, определяющиего окно формы или в системе окон (WndClass) и заголовка окна. В Дельфи имя оконного класса WndClass совпадает с именем класса формы в Object Pascal (например TForm1). Функция возвращает 0, в случае если окна не существует, либо дескриптор окна, если окно существует. Основной код вашей программы должен быть написан так, что бы программа смогла запуститься, если результат функции FindWindow равен нулю или завершиться в обратном случае. Следующий пример, если вы собираетесь его использовать, нужно вставить в dpr-файл проекта (меню Project - View Source). Пример:
Другие работы
Теплотехника КНИТУ Задача ТД-4 Вариант 85
Z24
: 16 января 2026
Водяной пар при давлении р1 и температуре t1, дросселируется до давления p2. Определить неизвестные параметры пара h, υ, s в начале и в конце дросселирования и потерю работоспособности Dh=T0·Δs.
Принять температуру окружающей среды равной t0. Изобразить процессы на hs — диаграмме.
150 руб.
Вычислительная математика. Экзамен. Билет 14.
nik200511
: 10 июня 2019
Билет №14
1. Определите, какое равенство точнее (найдите относительные погрешности).
или .
2. Для дифференциального уравнения выполните 2 шага методом Рунге-Кутта четвертого порядка (h = 0.4) и найдите y(1.8).
256 руб.
КУРСОВАЯ РАБОТА по дисциплине « Информатика (часть 2-я)». Вариант №09.
teacher-sib
: 27 декабря 2018
Задание:
Разработать программу, которая должна начать работу с диалога с пользователем: какую операцию с файлом он желает выполнить:
а) добавить запись в файл или начать запись нового файла;
б) начать обработку созданного файла;
Предусмотреть возможность выполнения данных операций многократно.
В соответствии с индивидуальным заданием, номер которого совпадает с Вашими двумя последними цифрами пароля, разработать алгоритмы и программу на языке Си.
Вариан
500 руб.
Лабораторная работа №1 по информатике. Программирование разветвляющихся процессов
evanarty
: 24 мая 2013
Вариант 2
Задание:
Даны три числа. Возвести в квадрат те из них, значения которых неотрицательны.
Отрицательные числа оставить без изменения.
Работа выполнена на языке Turbo Pascal 7.0
50 руб.