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

Вниз

Игровой клуб   Найти похожие ветки 

 
Sword-Fish   (2003-09-28 23:58) [0]

Добрый вечер, уважаемые знатоки !!!
Я открыл игровой клуб и пишу программу для администрирования и у меня возник небольшой вопрос !!!
У меня на "клиентах" стоит таймер и когда он срабатывает надо закрыть все процессы кроме моего. Как моно это осуществить ???
Моя программа работает вместо шела, т.е вместо Explorer.exe !!!


 
jonni   (2003-09-29 02:34) [1]

ochen" prosto .... perebiray vse processi v sisteme i esli oni ne sistemnie in etvoy to zakrivay ih....... vot i vse

PS: molodoy ti odnako dlya otkritiya.. a esli dazhe i otkril naydi normal"nogo programera kotoriy tebe horoshuyu programku sdelaet... kazhdiy dolzhen zanimat"sya svoim.....


 
Opuhshii   (2003-09-29 15:24) [2]

2Sword-Fish © (28.09.03 23:58)
"Я открыл игровой клуб и пишу программу для администрирования "....

а 10 вшивых убитых енота слабо заплатить,... уж этих программ за 10$ писано-переписано,...
ну может 20,...


 
(3223)jab   (2003-09-29 16:16) [3]

Это как и говорили просто...
Для этого тебе нужно перебрать все процессы... а именно:

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
(IsWindowVisible(Wnd)) and
(GetWindow(Wnd,gw_Owner)=0) 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;

Как видиш по клику на баттон ты получиш в листбоксе список всех окон в системе. Это тебе для разогрева! Куда это присобачить тебе виднее... Далее тебе нужно убивать все процессы которые не твои, а именно:

procedure TForm1.Button2Click(Sender: TObject);
var
ProcessHandle:THandle;
ProcessID:Integer;
TheWindow:HWND;
begin
TheWindow:=FindWindow(nil, PChar(Edit1.Text));
GetWindowThreadProcessID(TheWindow, @ProcessID);
ProcessHandle:=OpenProcess(PROCESS_ALL_ACCESS, FALSE, ProcessId);
TerminateProcess(ProcessHandle,4);
Edit1.Text:="";
end;

Ну сам понимаеш что в Edit1.Text у на должно быть название того окна, которое мы получили из листбокса в предыдущем клике и это название должно не равнятся названию твоего шэла :)
TerminateProcess(ProcessHandle,4); - убивает его нах...

Думаю теперь всё ясно и понятно....


 
Sword-Fish   (2003-09-30 11:54) [4]

Добрый день !!!
Я попробовал этот вариант с закрытием всех приложений, он работает, но Half-Life и Counter-Strike не закрывает почему и как это моно исправить ???


 
Sword-Fish   (2003-09-30 21:52) [5]

Мне может кто-нибудь ответить !!!


 
Livid   (2003-10-01 09:36) [6]

По-моему, проще перебирать процессы и соответственно убивать... Главное не трогать системные (как напр. svchost)
Чтобы перебрать процессы попробуй почитать документацию к CreateToolhelp32Snapshot, узнаешь много интересного :)
Все функции в юните tlhelp32.dcu


 
Livid   (2003-10-01 09:36) [7]

По-моему, проще перебирать процессы и соответственно убивать... Главное не трогать системные (как напр. svchost)
Чтобы перебрать процессы попробуй почитать документацию к CreateToolhelp32Snapshot, узнаешь много интересного :)
Все функции в юните tlhelp32.dcu



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

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

Наверх




Память: 0.46 MB
Время: 0.007 c
3-65369
Difar
2003-09-29 08:19
2003.10.20
Привет мастера !!! Такая проблема: при сохранении таблицы.....


3-65372
Dark Elf
2003-09-26 14:05
2003.10.20
Логин и пароль в TADOConnection


3-65360
Alex _German
2003-09-29 14:35
2003.10.20
немогу перенести скомпеллированный екзешник


3-65317
Vick
2003-09-30 13:21
2003.10.20
Программа в процессе работы пожирает всю память!!!!


1-65422
Nika
2003-10-03 21:27
2003.10.20
Запрет на Backspace





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский