Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.11;
Скачать: [xml.tar.bz2];




Вниз

Как заблокировать во время выполнения моей программы 


michael_B   (2002-03-30 20:21) [0]

Как заблокировать во время выполнения моей программы
запуск всех остальных и второй копии моей.
Мне нужно сделать полноэранный режим моей проги.



Song   (2002-03-30 21:02) [1]

"второй копии своей" - это несложно.
А вот "всех остальных"....



DenKop   (2002-03-30 23:37) [2]

Вот это проверка запущенной копии твоей программы:
(В принципе готовый модуль подключай и юзай)

Unit OneInstance32;

interface

implementation

uses
Forms;

var
g_hAppMutex: THandle;

function OneInstance: boolean;
var
g_hAppCritSecMutex: THandle;
dw: Longint;
begin
g_hAppCritSecMutex := CreateMutex( nil, true, PChar(Application.Title + ".OneInstance32.CriticalSection") );

// if GetLastError - лениво писать

g_hAppMutex := CreateMutex( nil, false, PChar(Application.Title + "OneInstance32.Default") );

dw := WaitForSingleObject( g_hAppMutex, 0 );

Result := (dw <> WAIT_TIMEOUT);

ReleaseMutex( g_hAppCritSecMutex ); // необязательно вследствие последующего закрытия
CloseHandle( g_hAppCritSecMutex );

end;

initialization

g_hAppMutex := 0;

finalization

if LongBool( g_hAppMutex ) then
begin
ReleaseMutex( g_hAppMutex); // необязательно
CloseHandle( g_hAppMutex );
end;

end.

В OnCreate добавляешь:
If Not(OneInstance) then Application.Terminate;{после этого никогда не увидишь второй копии своего творения}


А вот это получишь список всех запущенных:

procedure TForm1.Button1Click(Sender: TObject);
VAR
Wnd : hWnd;
buff: ARRAY [0..127] OF Char;
begin
ListBox1.Clear;
Wnd := GetWindow(Handle, gw_HWndFirst);
WHILE Wnd <> 0 DO
BEGIN {Не показываем:}
IF (Wnd <> Application.Handle) AND {-Собственное окно}
AND (GetWindowText(Wnd, buff, sizeof(buff)) <> 0) {-Окна без заголовков}
THEN
BEGIN
GetWindowText(Wnd, buff, sizeof(buff));
ListBox1.Items.Add(StrPas(buff));
END;
Wnd := GetWindow(Wnd, gw_hWndNext);
END;
ListBox1.ItemIndex := 0;
end;

После этого можешь лишь корректно завершить работу своей программы, но запретить запуск какой либо программы думаю ОС тебе этого не позволит, хотя может я и ошибаюсь.




Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.11;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.72 MB
Время: 0.034 c
14-32954          lel                   2002-03-01 16:04  2002.04.11  
Пирушка.


1-32871           skovorodka            2002-03-29 14:20  2002.04.11  
Помогите, как потаскать форму за выступающие части кроме синей полоски ?


3-32652           clarin                2002-03-19 14:24  2002.04.11  
Сортировка по вычислимому полю в TQuery


14-32963          Blackweber            2002-03-03 01:25  2002.04.11  
AND&OR


1-32840           snoup                 2002-03-29 08:38  2002.04.11  
Посоветуйте и скажите где можно скачать компонент для работы с ин