MaterStudiorum.ru - домашняя страничка студента.
Минимум рекламы - максимум информации.


Авиация и космонавтика
Административное право
Арбитражный процесс
Архитектура
Астрология
Астрономия
Банковское дело
Безопасность жизнедеятельности
Биографии
Биология
Биология и химия
Биржевое дело
Ботаника и сельское хоз-во
Бухгалтерский учет и аудит
Валютные отношения
Ветеринария
Военная кафедра
География
Геодезия
Геология
Геополитика
Государство и право
Гражданское право и процесс
Делопроизводство
Деньги и кредит
Естествознание
Журналистика
Зоология
Издательское дело и полиграфия
Инвестиции
Иностранный язык
Информатика
Информатика, программирование
Исторические личности
История
История техники
Кибернетика
Коммуникации и связь
Компьютерные науки
Косметология
Краткое содержание произведений
Криминалистика
Криминология
Криптология
Кулинария
Культура и искусство
Культурология
Литература и русский язык
Литература(зарубежная)
Логика
Логистика
Маркетинг
Математика
Медицина, здоровье
Медицинские науки
Международное публичное право
Международное частное право
Международные отношения
Менеджмент
Металлургия
Москвоведение
Музыка
Муниципальное право
Налоги, налогообложение
Наука и техника
Начертательная геометрия
Новейшая история, политология
Оккультизм и уфология
Остальные рефераты
Педагогика
Полиграфия
Политология
Право
Право, юриспруденция
Предпринимательство
Промышленность, производство
Психология
Психология, педагогика
Радиоэлектроника
Разное
Реклама
Религия и мифология
Риторика
Сексология
Социология
Статистика
Страхование
Строительные науки
Строительство
Схемотехника
Таможенная система
Теория государства и права
Теория организации
Теплотехника
Технология
Товароведение
Транспорт
Трудовое право
Туризм
Уголовное право и процесс
Управление
Управленческие науки
Физика
Физкультура и спорт
Философия
Финансовые науки
Финансы
Фотография
Химия
Хозяйственное право
Цифровые устройства
Экологическое право
Экология
Экономика
Экономико-математическое моделирование
Экономическая география
Экономическая теория
Эргономика
Этика
Юриспруденция
Языковедение
Языкознание, филология
    Начало -> Информатика, программирование -> Предотвращение запуска 2-x копий программы

Название:Предотвращение запуска 2-x копий программы
Просмотров:83
Раздел:Информатика, программирование
Ссылка:Скачать(5 KB)
Описание:Известно, что Windows - многозадачная система. Это конечно хорошо. Но обратной стороной многозадачности является то, что одновременно можно запустить несколько копий одного и того же приложения.

Часть полного текста документа:

Предотвращение запуска 2-x копий программы
    Известно, что Windows - многозадачная система. Это конечно хорошо. Но обратной стороной многозадачности является то, что одновременно можно запустить несколько копий одного и того же приложения. Пользователь может это сделать не специально, да и вторая копия приложения может запуститься из-за ошибки в программе или же самой OC. Из-за клона могут возникнуть некоторые проблемы, связанные с файловыми операциями, операциями с реестром и т.п. Поэтому код поиска и закрытия собственной копии в программе совсем не лишний. Есть несколько методов выполнения нахождения копии. В этой статье я их вам продемонстрирую. Поиск главной формы (окна)
    Чтобы найти копию главного окна можно воспользоваться функцией WinApi - FindWindow. В качестве параметра этой функции передается имя класса окна, которое использовалось при регистрации типа, определяющиего окно формы или в системе окон (WndClass) и заголовка окна. В Дельфи имя оконного класса WndClass совпадает с именем класса формы в Object Pascal (например TForm1). Функция возвращает 0, в случае если окна не существует, либо дескриптор окна, если окно существует. Основной код вашей программы должен быть написан так, что бы программа смогла запуститься, если результат функции FindWindow равен нулю или завершиться в обратном случае. Следующий пример, если вы собираетесь его использовать, нужно вставить в dpr-файл проекта (меню Project - View Source). Пример:
    program Project1;
    uses
    Forms,
    Unit1 in 'Unit1.pas' {Form1};
    {$R *.res}
    var
    HWnd : THanlde;
    begin
    HWnd := FindWindow ('TForm1', nil);
    if HWnd 0 then
    if not IsWindowVisible(HWnd) then
    PostMessage(HWnd, wm_User, 0, 0);
    SetForegroundWindow (HWnd)
    else
    begin
    Application.Initialize;
    Application.CreateForm(TForm1, Form1);
    //если в программе несколько форм, то создайте их здесь
    //вручную, например Application.CreateForm(TForm2, Form2)
    Application.Run;
    end;
    end.
    Разъясню код по строчкам. В первых двух строках я объявил переменную HWnd типа THandle для хранения результата работы функции. Далее записываю результат выполнения функции FindWindow в переменную HWnd. Затем сравниваю результат: если он не равен нулю (т.е. программа уже запущена и данный экземпляр является копией) активизирую главную форму запущенного приложения. В обратном случае выполняю операции по инициализации, создания форм и запуска программы.
    Однако при использовании этого кода могут возникнуть некоторые проблемы. Учтите, что если вы запустите программу в то время, когда работает дельфи с открытым в ней проектом запускаемого приложения, то программа вообще не запустится. Это связано с тем, что в системе уже существует форма с сответствующим классом в конструкторе дельфи. Однако вы сможете запустить программу, если закроете в дельфи файл юнита, связанного с формой, и саму форму (или лучше вообще весь проект). Если же вы просто закроете форму в конструкторе дельфи, то окно не уничтожится, а будет скрыто и так же будет существовать в системе. Поэтому встраивать этот код лучше на этапе завершения работы над программой. Использование мьютексов
    Mutex - это сокращение от mutual exclusion (взаимное исколючение). ............




Нет комментариев.



Оставить комментарий:

Ваше Имя:
Email:
Антибот:  
Ваш комментарий:  



Похожие работы:

Название:Функции сравнительного правоведения
Просмотров:109
Описание: МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ УКРАИНЫКУРСОВАЯ РАБОТА на тему Функции сравнительного правоведения по дисциплине Сравнительное правоведениеКИЕВ 2011   СОДЕРЖАНИЕ Введение 1. Научная функц

Название:Функции государства в их многообразии и развитии
Просмотров:86
Описание: Содержание Введение Глава 1. Функции государства 1.1. Понятие и признаки функций государства 1.2 Классификация функций государства 1.3 Глобальные проблемы и функции государства 1.4. Эволюция функций госуд

Название:Булевы функции
Просмотров:205
Описание: 1.Основные понятия булевой алгебры Технические вопросы, связанные с составлением логических схем ЭВМ, можно решить с помощью математического аппарата, объектом исследования которого являются функции, приним

Название:Предмет и функции философии
Просмотров:153
Описание: Содержание Введение 1. Предмет философии. Место философии в системе наук и культуре 2. Основные разделы философии 3. Мировоззренческая, методологическая, рефлексивно–критическая и интегративная функция

Название:Фонд обязательного медицинского страхования: структура и функции
Просмотров:285
Описание: ВВЕДЕНИЕ фонд обязательное медицинское страхование Обязательное медицинское страхование - составная часть системы социального страхования. Создание внебюджетных фондов (пенсионного, занятости, социальног

 
     

Вечно с вами © MaterStudiorum.ru