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

Вниз

Вылетает с ошибкой (периодически)   Найти похожие ветки 

 
ms.krabs   (2010-07-13 21:20) [0]

Есть проблема, запускаю поток который должен закрывать зависшие приложения. Но периодически возникает AcessViolation, т.е. 2 из 3 - ошибка. Без него проблем нет. Проблемы в CloseWin нет.

procedure CloseWin(h:HWND); //Убивание процесса
var
 PID:Cardinal;
 hProc:Cardinal;
begin
 GetWindowThreadProcessId(h,PID);
 hProc:=OpenProcess(PROCESS_TERMINATE,true,PID);
 TerminateProcess(hProc,0);
 CloseHandle(hProc);
end;

procedure Close; //Поиск зависших окон
var
 h:HWND;
 n:Array[0..255] of Char;
begin
 h:=FindWindow(nil,nil);
 while (h<>0) do
 begin
   GetWindowText(h,n,255);
   if (pos(CAPTION,n)>0) and (pos("отвечает",n)>0) then
   begin
     CloseWin(h);
     Exit;
   end;
   h := GetNextWindow(h,GW_HWNDNEXT);
 end;
end;

procedure CloseThread; //Поток поиска
begin
 while true do
 begin
   Close;
   Sleep(10000);
 end;
end;


 
Leonid Troyanovsky ©   (2010-07-14 07:56) [1]


> ms.krabs   (13.07.10 21:20)  

> n:Array[0..255] of Char;

Чего это сразу 255?

> FindWindow(nil,nil);

EnumWindows

> pos(CAPTION,n)

AnsiStrPos

> procedure CloseThread; //Поток поиска

Чего-чего?

--
Regards, LVT.


 
brother ©   (2010-07-15 08:39) [2]

Имена процедур не соответсвуют коду внутри, вот и путаница...


 
Leonid Troyanovsky ©   (2010-07-15 08:53) [3]


> brother ©   (15.07.10 08:39) [2]

> Имена процедур не соответсвуют коду внутри, вот и путаница.

Не путаница, а AV.
Потому, что функция потока не соответствует ни одному
разумному прототипу.

И, во-ще, оный код легче выкинуть, чем поправить.

--
Regards, LVT.


 
brother ©   (2010-07-15 09:30) [4]

согласен


 
Anatoly Podgoretsky ©   (2010-07-15 10:41) [5]


> Leonid Troyanovsky ©   (15.07.10 08:53) [3]

По нашему по русски - и переписать все нафиг.


 
_Юрий   (2010-07-16 21:38) [6]

Вероятно, поток создается через API, и флаг для менеджера памяти не выставлен


 
Deltas ©   (2010-07-16 23:39) [7]


> Leonid Troyanovsky ©   (15.07.10 08:53) [3]
> Потому, что функция потока не соответствует ни одному
> разумному прототипу.

А там нет функции потока. Можно только предположить, что CloseThread вызывается из функции потока.
ms.krabs   (13.07.10 21:20) [0]
Показывайте как поток создаете.


 
Leonid Troyanovsky ©   (2010-07-17 12:28) [8]


> Deltas ©   (16.07.10 23:39) [7]

> А там нет функции потока.

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

> Можно только предположить, что CloseThread вызывается из
> функции потока.


> Показывайте как поток создаете.

Автор давно уже загорает на берегу водоема.

--
Regards, LVT.



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

Форум: "WinAPI";
Текущий архив: 2016.08.14;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.001 c
1-1340133641
DmitriyG.
2012-06-19 23:20
2016.08.14
Проверка подписи файла


2-1418812220
garun
2014-12-17 13:30
2016.08.14
[TListView]: иконки в SubItems


2-1418547849
TQuickReport
2014-12-14 12:04
2016.08.14
Имитировать нахатие кнопок


4-1279041626
ms.krabs
2010-07-13 21:20
2016.08.14
Вылетает с ошибкой (периодически)


1-1340038658
IGray
2012-06-18 20:57
2016.08.14
Как получить ссылку на модальную форму из OnModalBegin?





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