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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> не компилится код, закрытия всех программ 
:(
    Опции темы
Darkmaster
Дата 19.6.2006, 12:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



вот код взятый из ДРКБ:
Код

procedure TForm1.ButtonKillAllClick(Sender: TObject);    
var    
  pTask: PTaskEntry;    
  Task: Bool;    
  ThisTask: THANDLE;    
begin    
  GetMem(pTask, SizeOf(TTaskEntry));    
  pTask^.dwSize := SizeOf(TTaskEntry);    
  Task := TaskFirst(pTask);    
  while Task do    
  begin    
    if pTask^.hInst = hInstance then    
      ThisTask := pTask^.hTask    
    else    
      TerminateApp(pTask^.hTask, NO_UAE_BOX);    
    Task := TaskNext(pTask);    
  end;    
  TerminateApp(ThisTask, NO_UAE_BOX);    
end; 

Ошибку выдает уже здесь 
pTask: PTaskEntry;

И еще один вопрос реально ли сделать так чтобы закрывались все проги кроме той которая их закрывает? 
--------------------
GeekTV - интернет-телевидение для гиков
PM MAIL   Вверх
Matematik
Дата 19.6.2006, 12:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1027
Регистрация: 11.3.2006

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



Ты не первый  smile 
Может раскажешь, зачем тебе понадобилось убивать все программы  

Это сообщение отредактировал(а) Matematik - 19.6.2006, 13:38
PM MAIL WWW ICQ   Вверх
Dynamic
Дата 19.6.2006, 13:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Darkmaster @  19.6.2006,  12:39 Найти цитируемый пост)
pTask: PTaskEntry;

не уверен, но похоже на 
Код

uses Windows;
..... 


--------------------
Было бы о чем молчать, а уж что сказать – всегда найдется...
PM MAIL WWW   Вверх
Alexeis
Дата 19.6.2006, 14:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

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



Dynamic, 
Цитата(Dynamic @  19.6.2006,  12:55 Найти цитируемый пост)
uses Windows;
 здесь не при чем этот тип какой-то не стандартный.
Поиск показал что требуется модуль ToolHelp.
 


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Darkmaster
Дата 19.6.2006, 14:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



а где взять ToolHelp . Просто если его в uses прописываешь то он выдает что файл ToolHelp.dcu не найден... 
--------------------
GeekTV - интернет-телевидение для гиков
PM MAIL   Вверх
Alexeis
Дата 19.6.2006, 15:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

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



Попробуйте заменить ToolHelp.pas на более новый TLHelp32 и соответственно TTaskEntry на TProcessEntry32. 


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Yanis
Дата 19.6.2006, 22:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



TTaskEntry так и осталась жить в Windows 3.1. Её альтернативой насколько я могу судить является TProcessEntry32, а для TaskFirst и TaskNext соответственно Process32FirstW, Process32NextW. 


--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
Sunvas
Дата 20.6.2006, 01:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Соль и сахар
****


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

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



Старенький немного примерчик! Лучше пиши новый на его основе - возьми работающий код получения всех процессов, а потом их просто киляй по очереди.

Цитата(Darkmaster @  19.6.2006,  12:39 Найти цитируемый пост)
И еще один вопрос реально ли сделать так чтобы закрывались все проги кроме той которая их закрывает?

Это твоя прога? Вирусы пишешь?  smile  Сравнивай хенделы! 


--------------------
Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их.
PM MAIL   Вверх
Darkmaster
Дата 21.6.2006, 12:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



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

Проблемка в этой строке:

GetMem(pTask, SizeOf(TProcessEntry32));

Выдает что типы несовместимы... 
--------------------
GeekTV - интернет-телевидение для гиков
PM MAIL   Вверх
Poseidon
Дата 21.6.2006, 13:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


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

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



Цитата(Darkmaster @  21.6.2006,  12:50 Найти цитируемый пост)
просто пишу программу которая автоматом выключает комп. Проблема в том что в таком случае нужно подтверждать ззакрытия прог других. 
 Нет никаких проблем. Выключай с помощью ExitWindowsEx и параметром EWX_FORCE.

Для NT это будет выглядеть так:
Код

Function SetPrivilege(aPrivilegeName: String; aEnabled: Boolean ): Boolean;  
Var TPPrev,  
      TP: TTokenPrivileges;  
      Token: THandle;  
      dwRetLen: DWord;  
Begin  
 Result:=False;  
 OpenProcessToken(GetCurrentProcess,TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, @Token );  
 TP.PrivilegeCount:=1;  
 IF LookupPrivilegeValue(nil,PChar(aPrivilegeName),TP.Privileges[0].LUID )) then  
  Begin  
   IF aEnabled then TP.Privileges[0].Attributes:=SE_PRIVILEGE_ENABLED  
              else  TP.Privileges[0].Attributes:=0;  
   dwRetLen:= 0;  
   Result:=AdjustTokenPrivileges(Token,False,TP,SizeOf(TPPrev),TPPrev,dwRetLen);  
  End;  
 CloseHandle(Token);  
End;  


Код

 SetPrivilege('SeShutdownPrivilege',True); 
 ExitWindowsEx(EWX_SHUTDOWN or EWX_FORCE, 0); 


Для не NT привелегии можно не получать. 


--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
Yanis
Дата 21.6.2006, 15:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(Darkmaster @  21.6.2006,  13:50 Найти цитируемый пост)
GetMem(pTask, SizeOf(TProcessEntry32));

А у тебя pTask объявлена как PProcessEntry32? 


--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
Sunvas
Дата 21.6.2006, 19:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Соль и сахар
****


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

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



Цитата(Darkmaster @  21.6.2006,  12:50 Найти цитируемый пост)
Проблема в том что в таком случае нужно подтверждать ззакрытия прог других. 

Если б ты правильно задал вопрос ты бы нашел решение быстрее! smile  


--------------------
Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

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

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

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


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

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


 




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


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

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