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

Вниз

нужна помосч: клава и как проверить не запещена ли уже прога   Найти похожие ветки 

 
com6   (2002-05-07 16:34) [0]

1) как проверить, может быть моя программа уже запущенна на конкретном компе?
2) подскажите КОНКРЕТНО как сделать на дельфях 6-ых: если не нажимались клавишиклавиатуры в течении какого-то времени, сделать то-то. я заню, что надо использовать таймер и уже догадался как. вопрос в том, как проверить, нажимались ли клавиши. пример с DLL (тот что предлагается в faq просто не пошел).

буду благодарен за любую помошь. запишу в tanks to!


 
Fellomena   (2002-05-07 16:41) [1]

1). см. Mutex, CreateMutex
2). Устанавливаешь хук WH_KEYBOARD и если в течении некоторого промужутка времени была нажата некая кнопка - изменяешь флаговую переменную, коотрая должна располагаться в области, доступной твоему процессу (см. Memory Mapped Files - файлы отображённые в память; можно писать в файл), или можно воспользоваться сообщениями, т.е. когда происходит нажатие из кода обработки ловушки посылаешь своему приложению сообщение, дальше думаю понятно.


 
DenKop ©   (2002-05-07 18:10) [2]

1)
procedure SendMesCopyProg;
var
Wnd : hWnd;
buff: array [0..127] of Char;
begin
Wnd := GetWindow(Application.Handle, gw_HWndFirst);
while Wnd <> 0 do
begin
if (Wnd<>Application.Handle) and
(GetWindow(Wnd, gw_Owner) = 0) and
(GetWindowText(Wnd, buff, sizeof(buff)) <> 0)
then
begin
GetWindowText(Wnd, buff, sizeof(buff));
if (StrPas(buff)="CryptoGraph") then
begin
PostMessage(wnd,10000,1000,0);
Exit;
end;
end;
Wnd := GetWindow(Wnd, gw_hWndNext);
end;
end;

procedure TForm1.AppMessage(var Msg: TMsg; var Handled: Boolean);
begin
if msg.message=10000 then
Application.Terminate;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
...
Application.OnMessage := AppMessage;
...
end;

В разделе Private пишешь
procedure AppMessage(var Msg: TMsg; var Handled: Boolean);

При запуске копии программы закрывется та, которая была запущена раньше.



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

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

Наверх




Память: 0.47 MB
Время: 0.015 c
4-64877
Gayrus
2002-03-13 16:29
2002.05.20
ExeName


1-64641
MaXie
2002-05-08 12:46
2002.05.20
Вещественный тип имеет привязку к раскладке клавиатуры?


1-64670
DiGiTaL
2002-05-04 20:24
2002.05.20
Странная вещь!


3-64504
Termik
2002-04-23 09:51
2002.05.20
Подскажите, как заставить Oracle выполнить мат. выражение ?


7-64849
Olfi
2002-01-26 12:33
2002.05.20
Как можно узнать параметры компьютера?