Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2009.04.05;
Скачать: [xml.tar.bz2];

Вниз

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

 
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 вся ветка

Форум: "WinAPI";
Текущий архив: 2009.04.05;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.006 c
15-1233354903
Германн
2009-01-31 01:35
2009.04.05
Интересный вопрос всплыл неожиданно.


2-1234591942
K
2009-02-14 09:12
2009.04.05
одновременная запись в файл на ftp


2-1234973272
Dimm><
2009-02-18 19:07
2009.04.05
Как отключить программно HotKeys - TMainMenu?


1-1209046362
Михаил
2008-04-24 18:12
2009.04.05
Как поместить картинку в диаграмму Excel ?


2-1234775951
Scot Storch
2009-02-16 12:19
2009.04.05
организация сортировки по нескольким полям





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский