Главная страница
    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.037 c
15-1181293433
G_M_S
2007-06-08 13:03
2007.07.08
TD2006 для Linux?


11-1164605756
StormA
2006-11-27 08:35
2007.07.08
RE_Text (RichEdit)


3-1176381602
svt
2007-04-12 16:40
2007.07.08
Уважаемы мастера,подскажите что может быть с соединением


3-1176199696
roughneck
2007-04-10 14:08
2007.07.08
Выборка из разных баз Interbase


15-1181247521
Slimer
2007-06-08 00:18
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский