Програмистам Delphi » Статьи Добавить в Избранное Написать админу
Программы: SoftForFree.com - бесплатные программы: Virtual Dub, WinRAR, eMule, FlashGet, WinDVD, Doom 3 и многое другое.
Стиль:
Подробнее о LanAgent Standard 6.2LanAgent Standard 6.2

Программа для наблюдения за компьютерами в локальной сети: cкриншоты, работа в программах, сайты, кейлоггер, почта. Выявит "крыс", повысит дисциплину.

Скачать Сайт автора
Подробнее о Memo Fora 4x4 «Свой бизнес» от 21.05.2018 г.Memo Fora 4x4 «Свой бизнес» от 21.05.2018 г. Новейшая версия

Программа для торговли без ограничений кол-ва рабочих мест.
Работа с он-лайн кассами Штрих-М и АТОЛ, поддержка ФФД 1.05

Скачать Сайт автора

Программы


Рейтинги программ


Лучшие из лучших


Програмистам Delphi

Програмистам Delphi

20 Июня, 2008
Програмистам Delphi
Эта статья посвещена в первую очередь прятанью окон (из таскбара, и из диспечера задач), а также ответ на вопрос, как запретить кнопку "закрыть" в своём приложении.
Давайте разберём это на примере такой задачи: Создалим приложение, из которого можно выйти, только нажав на кнопку. Фишка в том, что когда юзер птается нажать на кнопку, она прыгает! (не из монитора, а на форме :).
Создаём новое приложение, тыкаем на форму кнопку, называем её "Выход". Щёлкаем два раза, и пишим такой код:

procedure TForm1.Button1Click(Sender: TObject);
begin
Close;
end;

Close - это оператор, которым закрываем приложение. Ну в принципе Close можно и не писать - юзеру и так не удастся выйти.
Дальше - надо настроить форму, чтобы осталась только кнопка закрыть (да и то - "серая")
Для этого в Object Inspector щёлкаем на BorderIcons и ставим везде False, кроме SystemMenu. Дальше делаем кнопку "закрыть" "серой". Для этого в событиях формы кликаем OnShow и пишим:

procedure TForm1.FormShow(Sender: TObject);
var
sysmenu: HMenu;
begin
ShowWindow(Application.Handle,SW_HIDE);
end;

Написали? Дальше надо сделать "прыганье" кнопки. На событие кнопки OnMouseMove пишим:

procedure TForm1.Button1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
Button1.Left:=1*Random(Form1.Width-255);
Button1.Top:=1*Random(Form1.Height-80);
end;

Здесь мы применили "Генератор случайных чисел". Теперь можете проверить работу приложения.
Работает? Если вы хоть чуть-чуть знаете Delphi, я надеюсь вы сможете "Выйти", а если не знаете,
то нажмите Run>>Program Reset.
Но, скажете вы, приложение видно в таск-баре и темболее в диспетчере. Сейчас мы это исправим.
В событии формы OnShow допишите следующий код:

SysMenu:= GetSystemMenu(Handle, False);
Windows.EnableMenuItem(SysMenu,sc_CLOSE,MF_DISABLED or MF_GRAYED);

Написали? Ну вот, теперь всё в порядке. В итоге у вас должен получится приблизительно вот такой код:

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
Label1: TLabel;
Label2: TLabel;
Timer1: TTimer;
procedure FormShow(Sender: TObject);
procedure Button1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure Timer1Timer(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
A: Byte;
implementation

{$R *.dfm}

procedure TForm1.FormShow(Sender: TObject);
var
sysmenu: HMenu;
begin
SysMenu:= GetSystemMenu(Handle, False);
Windows.EnableMenuItem(SysMenu,sc_CLOSE,MF_DISABLED or MF_GRAYED);
ShowWindow(Application.Handle,SW_HIDE);
end;

procedure TForm1.Button1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
Button1.Left:=1*Random(Form1.Width-255);
Button1.Top:=1*Random(Form1.Height-80);
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
Close;
end;

end;

Теперь пару слов о диспетчере задач. Хотя на вкладке "приложения" нашу программу видно не будет, на вкладке
"процессы" его всё равно можно увидить. Но это решается давольно просто: Дайте вашей программе какое-либо невызыающее
имя (например internat32) и не одному нормальному пользователя не придет в голову, что это ваша программа).
Ну чтож, программируйте на здоровье. Если будут вопроссы, или нужна программа - пишите.
Раздел: Другое
Автор статьи: Бак
Просмотров: 2290
Комментарии



Ваш комментарий к статье:

Комментарии публикуются после проверки администратором.
При добавлении отрицательного комментария читайте соглашение об использовании.
Мы не публикуем: сообщения, не относящиеся к статье: "Програмистам Delphi".

Ваше имя: E-mail:
Оценка: нет 1 2 3 4 5
 *Cообщение
(30-1000 зн.):

 
          
          
  

* * *

Другие статьи

Handy Backup: обновлённый плагин E-mail для резервного копирования почтовых серверов Handy Backup: обновлённый плагин E-mail для резервного копирования почтовых серверов
Новосибирск, 6 апреля 2018 г. Компания «Новософт» сообщает о выходе обновлённой программы Handy Backup 7.11, предназначенной для автоматического резервного копирования (бэкапа), восстановления и синхронизации любых типов данных....
Раздел: Софт
Инновационные экранирующие материалы на страже информационной безопасности Инновационные экранирующие материалы на страже информационной безопасности
Информационная безопасность предполагает решение сложных и многозначных задач....
Раздел: Высокие технологии
ПО АСОМИ: совместимость с внешними программами управления, отслеживание МВЗ и учёт техпозиций ПО АСОМИ: совместимость с внешними программами управления, отслеживание МВЗ и учёт техпозиций
Система АСОМИ, разработанная ООО «Новософт развитие» для автоматизации метрологической деятельности, широко используется российскими и зарубежными компаниями....
Раздел: Софт
Handy Backup – возможность бэкапа в облако Hotbox Mail.ru Handy Backup – возможность бэкапа в облако Hotbox Mail.ru
Новосибирск, 31 января 2017 г. – компания «Новософт» выпустила обновление популярной программы резервного копирования данных, Handy Backup....
Раздел: Софт
Handy Backup 7.9 – увеличение скорости бэкапа баз 1С Handy Backup 7.9 – увеличение скорости бэкапа баз 1С
Решения 1С для управления предприятием пользуются большой популярностью в России и странах СНГ. Поэтому необходимость резервного копирования 1С (файловой и SQL-версий) хорошо известна системным администраторам и программистам 1С....
Раздел: Софт

[Все разделы]  [Добавить статью]


Рекомендуем

Bomberman 3.05

Старый-добрый "Бомбермэн". Взорвите своего противника!

Скачать Скриншоты

• • •

Русификатор Strong DC 2.42

Официальный русификатор к программе для загрузки файлов из файлообменных сетей Strong DC.

Скачать Подробнее

• • •

Конструктор 3D игр 1.0

Универсальная и простая программа для самостоятельного создания трёхмерных компьютерных игр.

Скачать Скриншоты

• • •

Kaspersky Internet Security 2012

Безопасная работа в интернет возможна благодаря Kaspersky Internet Security 2009.

Скачать Скриншоты

• • •

Bomberman 3.05

Старый-добрый "Бомбермэн". Взорвите своего противника!

Скачать Скриншоты



Наша кнопка


Программы: SoftForFree.com - тысячи бесплатных программ, 100 лучших программ рунета, статьи, новости софта и многое другое.

Код нашей кнопки:

Новости Hitech



Полезные программы

Подробнее о HP LaserJet 1010/1012/1015 Printer Drivers,hp 1010 3.0HP LaserJet 1010/1012/1015 Printer Drivers,hp 1010 3.0

Набор драйверов и программ для лазерных настольных принтеров HP LаserJеt серии 1010, совмecтимых с cиcтемaми MS Windоws.

Скачать Скриншоты

Подробнее о Ломалка паролей 2.1Ломалка паролей 2.1

Никаких звездочек - только пароли!

Скачать Подробнее

Подробнее о ATI Radeon 9200 Driver 14.4ATI Radeon 9200 Driver 14.4

Последний официальный драйвер графических карт ATI Radeon предназначенный для платформы MS Windows.

Скачать Скриншоты




Вверх страницы

 Программы • Статьи • Реклама на сайте •  RSS 2.0 RSS • Контакты • Соглашение об использовании • Политика конфидециальности

© 2003-2018, SoftForFree.com. Использование материалов сайта разрешается только по договоренности с автором.
Автор проекта не несет ответственности за содержание рекламных материалов и качество программного обеспечения.

Наш проект являтся архивом бесплатных и коммерческих программ, которые размещаются авторами и производителями ПО, либо их официальными представителями. Мы не распространяем нелицензионное ПО, креки, серийные номера и любую другую информацию, запрещенную законодательством РФ.