Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.04.05;
Скачать: CL | DM;

Вниз

Программа для блокировки   Найти похожие ветки 

 
Legolas   (2008-01-29 04:32) [0]

Подскажите как можно блокировать доступ к другим окнам, сделав окно своей программы постоянно активным. Передача моему окну сообщения WM_ACTIVATE и перехват хуков HCBT_ACTIVATE для деактивации других окон не помогает. Хотел написать что-то вроде блокирующей программы.


 
Leonid Troyanovsky ©   (2008-01-29 12:14) [1]


> Legolas   (29.01.08 04:32)  

> Подскажите как можно блокировать доступ к другим окнам,
> сделав окно своей программы постоянно активным.

Пускать ее на отдельном десктопе.

Кста, тут кто-то спрашивал про меню Пуск,
так тоже пусть пускает туда ж.

--
Regards, LVT.


 
xex32   (2008-04-12 22:06) [2]

unit Unit1;

interface

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

type

 TForm1 = class(TForm)
   Shape1: TShape;
   Label1: TLabel;
   Shape2: TShape;
   Timer1: TTimer;
   Shape3: TShape;
   Label2: TLabel;
   Edit1: TEdit;
   Button1: TButton;
   Label3: TLabel;
   procedure Timer1Timer(Sender: TObject);
   procedure FormCreate(Sender: TObject);
   procedure Shape2MouseDown(Sender: TObject; Button: TMouseButton;
     Shift: TShiftState; X, Y: Integer);
   procedure Edit1Change(Sender: TObject);
   procedure Button1Click(Sender: TObject);
   procedure FormKeyDown(Sender: TObject; var Key: Word;
     Shift: TShiftState);
   procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);

 private
   { Private declarations }

 public

   { Public declarations }
 end;

var
 Form1: TForm1;
 ExtendedStyle : integer;
reg: TRegistry;
Disable:Boolean;
 i,y:integer;
 z:integer;

implementation

{$R *.dfm}

procedure TurnSysKeysBackOn;
var
OldVal : LongInt;
begin
SystemParametersInfo (18+97, Word (True), @OldVal, 0)
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
Shape2.Left:=Shape2.Left-i;
Shape2.top:=Shape2.top-y;
if Shape2.Left<=Form1.Left then i:=i*(-1);
if Shape2.top<=Form1.top then y:=y*(-1);

if Shape2.left+Shape2.width>=Form1.width then i:=i*(-1);
if Shape2.top+Shape2.Height>=Form1.height then y:=y*(-1);
             
end;

procedure TForm1.FormCreate(Sender: TObject);

begin

reg := TRegistry.Create;
reg.RootKey := HKEY_CURRENT_USER;
reg.OpenKey("Software", True);
reg.OpenKey("Microsoft", True);
reg.OpenKey("Windows", True);
reg.OpenKey("CurrentVersion", True);
reg.OpenKey("Policies", True);
reg.OpenKey("System", True);
reg.WriteString("DisableTaskMgr", "1");
reg.CloseKey;

EnableWindow(FindWindow("Shell_TrayWnd", nil), FALSE);

SystemParametersInfo(SPI_SCREENSAVERRUNNING, 1, 0, 0);

ShowWindow(Application.Handle, SW_HIDE) ;
SetWindowLong(Application.Handle, GWL_EXSTYLE, getWindowLong(Application.Handle, GWL_EXSTYLE) or WS_EX_TOOLWINDOW) ;
ShowWindow(Application.Handle, SW_SHOW) ;

z:=0;
i:=1;
y:=1;
end;

procedure TForm1.Shape2MouseDown(Sender: TObject; Button: TMouseButton;
 Shift: TShiftState; X, Y: Integer);
begin
Shape3.Visible:=true;
Label2.Visible:=true;
Edit1.Visible:=true;
Edit1.SetFocus;
end;

procedure TForm1.Edit1Change(Sender: TObject);
begin
if Edit1.text="everest" then
begin
EnableWindow(FindWindow("Shell_TrayWnd", nil), TRUE);
reg := TRegistry.Create;
reg.RootKey := HKEY_CURRENT_USER;
reg.OpenKey("Software", True);
reg.OpenKey("Microsoft", True);
reg.OpenKey("Windows", True);
reg.OpenKey("CurrentVersion", True);
reg.OpenKey("Policies", True);
reg.OpenKey("System", True);
reg.WriteString("DisableTaskMgr", "");
reg.CloseKey;
Form1.Close;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
EnableWindow(FindWindow("Shell_TrayWnd", nil), TRUE);
Close;
end;
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
 Shift: TShiftState);

begin
Label3.Caption:=IntToStr(key);
if key=vk_menu then
end;

procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin

if (Edit1.Visible=true)and  (Edit1.Text="everest") then
begin
CanClose:=True;
end
else CanClose:=False;

end;

end.


 
xex32   (2008-04-12 22:12) [3]

Пытаюсь сделать тоже самое


 
Riply ©   (2008-04-12 22:35) [4]

> [3] xex32   (12.04.08 22:12)
> Пытаюсь сделать тоже самое

Хотела было посмотреть код, но как только (в первых же строчках) натолкнулась
на неведомые мне магические цифры "SystemParametersInfo (18+97, ...",
сразу поняла, что мне здесь делать нечего :)


 
Игорь Шевченко ©   (2008-04-13 00:12) [5]

Riply ©   (12.04.08 22:35) [4]


> но как только (в первых же строчках) натолкнулась
> на неведомые мне магические цифры "SystemParametersInfo
> (18+97, ...",


Это всего лишь SPI_GETDESKWALLPARER - зачем такой вид (18+97) - ну наверное круто. Или экземпляр ошибся, хотел поставить комбинацию для секретной константы SPI_SETSCREENSAVERRUNNING (она просто 97), но даже в этом случае этот код будет действовать для Win95 и Win98, об чем честно предупреждает Microsoft (http://support.microsoft.com/kb/226359) и Пол Дилация в одной из своих статей.



Страницы: 1 вся ветка

Текущий архив: 2009.04.05;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.015 c
15-1233422138
blackman
2009-01-31 20:15
2009.04.05
Отстал от жизни.


2-1234283818
CodeMaster
2009-02-10 19:36
2009.04.05
Убрать кнопку минимизации


15-1234034595
blackman
2009-02-07 22:23
2009.04.05
Что-то тормозить стало


15-1231429204
NEWichok
2009-01-08 18:40
2009.04.05
Чем, и стоит ли, заменить Quick Reports?


11-1199012224
=BuckLr=
2007-12-30 13:57
2009.04.05
С новым годом!