![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
System [D7]
Pacific © (2007-09-28 21:15:00)Здравствуйте! Хотел бы задать несколько вопросов.
1) Мне нужно сделать чтобы мое приложение в дистпетчере задач отображалось как системное и его нельзя было закрыть.
2) Как прочитать загаловок приложения, допустим если присутствует в каком нибудь запущеном прилолжение слово l2 то закрываем его
homm (2007-09-28 22:38:00) [1]
procedure KillProgram(WindowTitle : PChar);
function EnumFunc (hwnd: THandle; lParam: Pchar): BOOL; stdcall;
var
s: array [0..255] of Char;
begin
GetWindowText(hWnd, S, 255);
if StrPos(s, lParam) <> nil then
SendMessage(hWnd, WM_CLOSE, 0, 0);
Result := TRUE;
end;
begin
EnumWindows(@EnumFunc, Integer(WindowTitle));
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
KillProgram('Блокнот');
end;
Pacific (2007-09-28 22:15:00) [2]Немогли бы примерчик какой нить?
1) как я могу узнать загаловок окна
2) как я могу по загаловку окна узнать какое приложение это и закрыть его, причем мне надо сделать так чтобы пример:
'Безымянный - блакнот' если в любом запущенном приложение в загаловке есть слово блакнот, то мы убиваем это приложение
homm (2007-09-28 22:06:00) [3]> [5] Pacific (28.09.07 21:57)
> но ошибка вот здесь TheWindow : HWND;
Что значит «ошибка вот здесь»? Здесь нет никакой ошибки.
> ProcessHandle := OpenProcess(PROCESS_TERMINATE, FALSE, ProcessId);
Ты уверен, что винда даст право на убиение неповинных процессов? Я не говорю, что нет, просто я не уверен :) Лучше неверное слать WM_CLOSE.
Pacific (2007-09-28 21:57:00) [4]Ошибся, я имел введу загаловок окна:)
Вот что я нашел, но ошибка вот здесь TheWindow : HWND;
procedure KillProgram(Classname : string; WindowTitle : string);
const
PROCESS_TERMINATE = $0001;
var
ProcessHandle : THandle;
ProcessID: Integer;
TheWindow : HWND;
begin
TheWindow := FindWindow(Classname, WindowTitle);
GetWindowThreadProcessID(TheWindow, @ProcessID);
ProcessHandle := OpenProcess(PROCESS_TERMINATE, FALSE, ProcessId);
TerminateProcess(ProcessHandle,4);
end;
homm (2007-09-28 21:51:00) [5]> [3] Bast (28.09.07 21:48)
> загаловке приложения
Ну нет у приложения заголовка! Не сподобилась майкросовтс сделать так, как тебе нужно.
Подсказку, хочешь? Тебе нужен заголовок окна!
Bast (2007-09-28 21:48:00) [6]
> Что делает? На пальцах, пожалуста.
Если в загаловке приложения (любого) есть слово l2 то моя программа должна закрыть это приложение. Как я могу это сделать?
Pacific (2007-09-28 21:24:00) [7]Кароче, я пишу программу которая если запускается читерская программа для игры xxx моя программа закрывает клиент игры xxx
homm (2007-09-28 21:20:00) [8]> [0] Pacific (28.09.07 21:15)
> Как прочитать загаловок приложения
Нет такого поняти я никогда не было.
> если присутствует в прилолжение слово l2
Что делает? На пальцах, пожалуста.