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

Вниз

Завершение некоторых процессов с одинаковым именем   Найти похожие ветки 

 
Vladix ©   (2007-02-01 16:32) [0]

При выгрузке отчета в Excel в фоне (т.е. В закрытом состоянии), если это напрягает юзера, он завершает программу, но этот Excel в памяти продолжает висеть. Путем последовательных повторений можно сделать много таких процессов. Но среди них может быть один, с которым юзер работает непосредственно. Вопрос - как мне отфильтровать этот процесс и получить доступ ко всем оставшимся для их убийства?


 
Сергей М. ©   (2007-02-01 16:39) [1]


> если это напрягает юзера


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


 
Vladix ©   (2007-02-01 17:00) [2]

Хороший не ответ...

Может быть Вы, как хороший программист в силах хотя бы предположить, что такая ситуация могла бы произойти с Вами? Если у Вас нет фантазии смоделировать подобную ситуация, когда от Вас мало чего зависит, могу Вам помочь.
Но может лучше не тратить времени на дискуссии, не касающиеся вопроса?
Такое имеет место, собственными силами этот вопрос решить я оказался не в силах, проблема озвучена...
Буду рад услышать любое предложение по теме вопроса


 
Игорь Шевченко ©   (2007-02-01 17:09) [3]


> он завершает программу, но этот Excel в памяти продолжает
> висет


а по завершении программы Excel.Quit сказать ? Вроде вполне кошерно


 
Elen ©   (2007-02-01 17:10) [4]


> если это напрягает юзера, он завершает программу,

А ты не скрывай процесс. Пусть юзер видит на экране что что-то движется, как это в Commandere сделано. Юзера не должно ничего напрягать, а если твой процесс может выпасть в состояние "не отвечает", то это уж ты виноват, а не юзер.


 
Vladix ©   (2007-02-01 17:19) [5]

Ладно, углубимся в подробности.
Наша организация пользует FastReport. В этом генераторе отчетов есть возможность вывода отчета в прописанный экселевский шаблон, причем FR берет на себя вся работу по связи с БД, выполнению запроса и выводу отчета. От программера требуется вызвать метод типа "Выполнить" этого объекта, а FR все остальное делает сам, в том числе и запуск Excel (скрытый, в отдельном процессе), так вот, если выполняется долгий запрос, умный пользователь просто завершает программу любым известным ему способом. А EXCEL.EXE продолжает висеть, удерживая файл шаблона.
Такая ситуация.


 
Elen ©   (2007-02-01 17:27) [6]


>  так вот, если выполняется долгий запрос

юююпользователь должен видеть ход его выполнения, хотя бы песочные часы.

>  умный пользователь просто завершает программу любым известным
> ему способом

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


 
Игорь Шевченко ©   (2007-02-01 17:30) [7]

Vladix ©   (01.02.07 17:19) [5]

Может, задать вопрос FastReport"у ? Они наверное лучше в этом разберутся.
Или попросить пользователя убирать за собой мусор через TaskManager.

Совсем тупым способом может быть перебор всех окон, получение идентификатора процесса для каждого окна, для каких процессов Excel окна не будет - убивать. Но сдается мне, можно навредить.


 
Vladix ©   (2007-02-01 17:43) [8]

Игорь, спасибо!
По крайней мере, вы посмотрели на проблему моими глазами, без каких-то наездов на мой непрофессионализм. Над предложенными Вами вариантами я уже думал, видимо придется искать золотую середину между автоматической зачисткой процессов и предоставлении свободы действий пользователю.


 
Сергей М. ©   (2007-02-02 09:07) [9]


> когда от Вас мало чего зависит


Да что Вы говорите ?!

А исходники FastReporta для кого даны ?


 
Чапаев ©   (2007-02-02 09:18) [10]

GetWindowThreadProcessId(Handle,Tr00Excel);
WinExec(Format("taskkill /f /im excel.exe /fi "PID ne %d",[Tr00Excel])


Хотя вообще-то [3] и [1].



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

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

Наверх





Память: 0.47 MB
Время: 0.042 c
2-1181931418
nord489
2007-06-15 22:16
2007.07.08
Выделение записи в DBGrid


2-1181717913
Dr H
2007-06-13 10:58
2007.07.08
TValueListEditor


15-1181357065
Slider007
2007-06-09 06:44
2007.07.08
С днем рождения ! 9 июня 2007 суббота


15-1181208980
Alex7
2007-06-07 13:36
2007.07.08
Ошибка распаковки библиотеки Ehlib


1-1178626483
nali
2007-05-08 16:14
2007.07.08
Освобождение ресурсов потока





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