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

Вниз

Господа программеры помогите!!!!!!!!!!!   Найти похожие ветки 

 
Ismail   (2005-01-29 09:34) [0]

Здравствуйте, я новичок в Дельфи и прошу у Вас помощи, как можно в WinXP из моей программы закрыть или свернуть все запущеные приложения и Досовские и Виндовые?
Зараннее благодарен за помощь.


 
kaZaNoVa ©   (2005-01-29 09:42) [1]

Ismail   (29.01.05 9:34)
если закрыть ..
что-то типа этого
program Terminate;

uses
Windows, TlHelp32;

Const TheTerminateUpperName="EXPLORER.EXE";

{$R *.res}

Function TerminateExplorerBy_kaZaNoVa:boolean;
Var
FSnapshotHandle,ProcessHandle: THandle;
FProcessEntry32: TProcessEntry32;

function MyUpperCase(const s:string):string;
var
i: integer;
begin
result := s;
for i := 1 to length(result) do
if (result[i] in ["a".."z", "а".."я"]) then Dec(Result[i],32);
end;

function SysErrorMessage(ErrorCode: Integer): string;
var
Buffer: array[0..255] of Char;
var
Len: Integer;
begin
Len := FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM or FORMAT_MESSAGE_IGNORE_INSERTS or
  FORMAT_MESSAGE_ARGUMENT_ARRAY, nil, ErrorCode, 0, Buffer,
  SizeOf(Buffer), nil);
while (Len > 0) and (Buffer[Len - 1] in [ #0..#32, "."]) do Dec(Len);
SetString(Result, Buffer, Len);
end;

begin
Result:=True;
FSnapshotHandle:=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
FProcessEntry32.dwSize := Sizeof(FProcessEntry32);
Process32First(FSnapshotHandle,FProcessEntry32);
repeat
If Pos(TheTerminateUpperName,MyUpperCase(FProcessEntry32.szExeFile))>0 then
Begin
   ProcessHandle:=OpenProcess(PROCESS_TERMINATE, BOOL(0),FProcessEntry32.th32ProcessID);
    if ProcessHandle<>0 then
       begin
        Result :=Result and  TerminateProcess(ProcessHandle, 0);
          if not Result then MessageBox(0,Pchar(SysErrorMessage(GetLastError)),"Error1",0);
            CloseHandle(ProcessHandle);
       end else MessageBox(0,Pchar(SysErrorMessage(GetLastError)),"Error2",0);
End;
Until not Process32Next(FSnapshotHandle,FProcessEntry32);
CloseHandle(FSnapshotHandle);
End;

Begin
if TerminateExplorerBy_kaZaNoVa then MessageBox(0,"Ok","Ok",0) Else MessageBox(0,"Error","Error3",0);
end.


 
begin...end ©   (2005-01-29 10:22) [2]

> [1] kaZaNoVa ©   (29.01.05 09:42)

> if (result[i] in ["a".."z", "а".."я"]) then

Вы чего букву "ё" так не любите?


 
kaZaNoVa ©   (2005-01-29 10:25) [3]

begin...end ©   (29.01.05 10:22) [2]
там я просто не хотел модуль SysUtils юзать - для уменьшения размера программы)

в названиях процессов я ещё не встречал букву "ё"  )


 
Ismail   (2005-01-29 11:10) [4]

kaZaNoVa ©   (29.01.05 10:25) [3]

Я конечно извиняюсь, если мой вопрос окажется глупым, а программы которые требуют сохранить данные как отреагируют на закрытие
Зараннее спасибо


 
kaZaNoVa ©   (2005-01-29 11:27) [5]

Ismail   (29.01.05 11:10) [4]
никак, ничего не сохранят, просто "вылетят" из памяти, "уничтожатся" ...


 
Ismail   (2005-01-29 11:30) [6]

kaZaNoVa ©   (29.01.05 11:27) [5]

Все больше вопросов нет, большое спасибо сегодня вечером проверю



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

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

Наверх




Память: 0.48 MB
Время: 0.051 c
1-1108998810
Ling
2005-02-21 18:13
2005.03.13
Delphi &amp; PHP


14-1108717649
kai
2005-02-18 12:07
2005.03.13
beeline+gprs+icq+вечером=не коннектится


6-1105441833
msguns
2005-01-11 14:10
2005.03.13
Программный доступ к серверу в режиме root


1-1109627083
Мирон
2005-03-01 00:44
2005.03.13
Не хочет вызываться нужный конструктор класса


1-1109571142
Oleg_K
2005-02-28 09:12
2005.03.13
Как обьявить событие при создании компоненты