Форум: "Основная";
Текущий архив: 2002.05.20;
Скачать: [xml.tar.bz2];
Внизнужна помосч: клава и как проверить не запещена ли уже прога Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.007 c