Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply
  

Поиск:

Закрытая темаСоздание новой темы Создание опроса
> Закрытие explorer-а. 
:(
    Опции темы
<Spawn>
Дата 13.5.2003, 12:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: 1
Всего: 64



Я пытаюсь выгружать при старте своей проги explorer. Поискав среди всех классов окон в винде, единственным логически схожим оказался Internet Explorer_Hidden, но что бы я не делал он не завершается. Я пробовал делать CloseWindow и TerminatePorcess+GetExitCodeProcess(в CAD это ведь это как-то можно сделать), но ни чего не помогло. Подскажите, пожалуйста, как решить эту проблему (программа не для вредительских целей - для блокировки пользователю обычного интерфейса Windows в клубе(чтобы не рылись где не надоsmile.gif )). Заранее спасибо.

Это сообщение отредактировал(а) <Spawn> - 13.5.2003, 13:01


--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
DonPager
Дата 13.5.2003, 14:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Колдырь
**


Профиль
Группа: Участник
Сообщений: 327
Регистрация: 28.3.2003
Где: Воронеж

Репутация: нет
Всего: 2



А что, если вместо того чтобы выгружать эксплорер его просто не загружать ?
Например в 98 это делается в system.ini shell=someprog.exe...


--------------------
кодер + лодырь = колдырь
PM MAIL ICQ Skype GTalk   Вверх
<Spawn>
Дата 14.5.2003, 13:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: 1
Всего: 64



Цитата(DonPager @ 13.5.2003, 06:25)
А что, если вместо того чтобы выгружать эксплорер его просто не загружать ?
Например в 98 это делается в system.ini shell=someprog.exe...

Спасибо, если не найду способа выгрузть, то воспольуюсь этим (А выгрука была бы лучше тем, что подразумевается возможность выхода из мое проги админом клуба для каких либо настроек и тогда загружается explorer.exe, но при повторном запуске проги он выгружался бы опять. Твоим же способом придется делать перезагрузку компа или в ручную выгружать его в CAD и запускать мою прогу оттуда же)


--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
varra
Дата 14.5.2003, 14:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 67
Регистрация: 27.3.2003
Где: Новосибирск

Репутация: нет
Всего: нет



мне помогли таким кодом:
Код

function KillTask(ExeFileName: string): integer;
var
ContinueLoop: BOOL;
FSnapshotHandle: THandle;
FProcessEntry32: TProcessEntry32;
begin
result := 0;
FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
FProcessEntry32.dwSize := Sizeof(FProcessEntry32);
ContinueLoop := Process32First(FSnapshotHandle,FProcessEntry32);
while integer(ContinueLoop) <> 0 do
begin
if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile)) =  UpperCase(ExeFileName))
or (UpperCase(FProcessEntry32.szExeFile) =  UpperCase(ExeFileName))) then
Result := Integer(TerminateProcess(OpenProcess(PROCESS_TERMINATE, BOOL(0),FProcessEntry32.th32ProcessID), 0));
ContinueLoop := Process32Next(FSnapshotHandle,FProcessEntry32);
end;
CloseHandle(FSnapshotHandle);
end;
...
KillTask('Explorer.EXE'); //Убивает все процессы с названием Explorer



PM MAIL   Вверх
<Spawn>
Дата 14.5.2003, 14:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: 1
Всего: 64



Цитата(varra @ 14.5.2003, 06:29)
мне помогли таким кодом:
Код

function KillTask(ExeFileName: string): integer;
var
ContinueLoop: BOOL;
FSnapshotHandle: THandle;
FProcessEntry32: TProcessEntry32;
begin
result := 0;
FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
FProcessEntry32.dwSize := Sizeof(FProcessEntry32);
ContinueLoop := Process32First(FSnapshotHandle,FProcessEntry32);
while integer(ContinueLoop) <> 0 do
begin
if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile)) =  UpperCase(ExeFileName))
or (UpperCase(FProcessEntry32.szExeFile) =  UpperCase(ExeFileName))) then
Result := Integer(TerminateProcess(OpenProcess(PROCESS_TERMINATE, BOOL(0),FProcessEntry32.th32ProcessID), 0));
ContinueLoop := Process32Next(FSnapshotHandle,FProcessEntry32);
end;
CloseHandle(FSnapshotHandle);
end;
...
KillTask('Explorer.EXE'); //Убивает все процессы с названием Explorer

Большое спасибо)


--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
<Spawn>
Дата 15.5.2003, 16:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: 1
Всего: 64



To varra: Почему то, завершая этим кодом Explorer, он через секунду запускается снова. И я не поиму, почему ты в TerminateProcess в ExitCode передаешь 0?


--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
varra
Дата 16.5.2003, 05:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 67
Регистрация: 27.3.2003
Где: Новосибирск

Репутация: нет
Всего: нет



Цитата
Почему то, завершая этим кодом Explorer, он через секунду запускается снова


какая ОС ?
в 98 у меня все работало, в 2000 - да, есть такой косяк
PM MAIL   Вверх
Mikel
Дата 17.5.2003, 17:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 882
Регистрация: 30.3.2002
Где: Саратов

Репутация: нет
Всего: 2



Чтобы без особых проблем закрыть любое окно, воспользуйся этой функцией. В качестве параметра надо передать Handle окна. Закрывает всё, без wm_close.
Код

       Procedure Shut(Wnd:hWnd);
        Var
           pID,oph,ECode:Cardinal;
       begin
         GetWindowThreadProcessId(Wnd,@Pid);
         oph:=OpenProcess(PROCESS_TERMINATE,FALSE,PID);
         GetExitCodeProcess(oph,ECode);
         TerminateProcess(oph,ECode);
         CloseHandle(oph);
       end;



--------------------
...so remember, it's better to burn out than to fade away
PM MAIL ICQ   Вверх
vasekprizrak
Дата 26.3.2010, 08:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 26.3.2010

Репутация: нет
Всего: нет



Помогите мне вот такие ошибки выдаются когда я вствляю код в программу (((


[Error] Unit1.pas(149): Undeclared identifier: 'TProcessEntry32'
[Error] Unit1.pas(152): Undeclared identifier: 'CreateToolhelp32Snapshot'
[Error] Unit1.pas(152): Undeclared identifier: 'TH32CS_SNAPPROCESS'
[Error] Unit1.pas(153): Missing operator or semicolon
[Error] Unit1.pas(154): Undeclared identifier: 'Process32First'
[Error] Unit1.pas(157): ')' expected but identifier 'szExeFile' found
[Error] Unit1.pas(170): Undeclared identifier: 'ConvDate'
[Error] Unit1.pas(173): Statement expected but 'FUNCTION' found


PM MAIL   Вверх
bems
Дата 27.3.2010, 20:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

Репутация: 21
Всего: 88



Не туда вставляешь и не подключены нужные юниты. Читай литературу.


--------------------
Обижено школьников: 8
PM MAIL   Вверх
  
Закрытая темаСоздание новой темы Создание опроса
Правила форума "Delphi: WinAPI и системное программирование"
Snowybartram
MetalFanbems
PoseidonRrader
Riply

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • 99% ответов по WinAPI можно найти в MSDN Library, оставшиеся 1% здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.0704 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.