Завершення деяких процесів із однаковим ім’ям
При розвантаженні звіту в Excel на тлі (тобто. у закритому стані), якщо це напружує користувача, він завершує програму, але цей Excel у пам'яті продовжує висіти. Шляхом послідовних повторень можна зробити багато таких процесів. Але серед них може бути один, з яким користувач працює безпосередньо. Питання - як мені відфільтрувати цей процес і отримати доступ до всіх, хто залишився для їхнього вбивства?
> якщо це напружує користувача
..означає гріш ціна тобі як програмісту, якщо ти не даєш користувачеві можливості перервати цей "цікавий процес"коректно, без всяких там "продовжує висіти"
Гарна не відповідь.
Може бути Ви, як хороший програміст, хоч би припустити, що така ситуація могла б статися з Вами? Якщо Ви не маєте фантазії змоделювати подібну ситуацію, коли від Вас мало чого залежить, можу Вам допомогти. Але може краще не витрачати час на дискусії, що не стосуються питання? Таке має місце, власними силами це питання вирішити я виявився не в змозі, проблема озвучена. Буду радий почути будь-яку пропозицію з теми питання
> він завершує програму, але цей Excel у пам'яті продовжує > висить
а після завершення програми Excel.Quit сказати? Начебто цілком кошерно
> якщо це напружує користувача, він завершує програму,А ти не приховуй процес. Нехай користувач бачить на екрані щось рухається, як це в Commandere зроблено. Користувача не повинно нічого напружувати, а якщо твій процес може випасти в стан "не відповідає", то це вже ти винен, а не користувач.
Гаразд, заглибимося в подробиці. Наша організація користується FastReport. У цьому генераторі звітів є можливість виведення звіту в прописаний екселівський шаблон, причому FR бере на себе всяроботу зі зв'язку з БД, виконання запиту та виведення звіту. Від програмера потрібно викликати метод типу "Виконати" цього об'єкта, а FR все інше робить сам, у тому числі і запуск Excel (прихований, в окремому процесі), так ось, якщо виконується довгий запит, розумний користувач просто завершує програму будь-яким відомим способом . А EXCEL.EXE продовжує висіти, утримуючи файл шаблону. Така ситуація.
> так от, якщо виконується довгий запитюююкористувач повинен бачити хід його виконання, хоча б пісочний годинник.> розумний користувач просто завершує програму будь-яким відомим > йому способомКористувача який завершує програму за його ж завданням не дочекавшись результатів розумним важко назвати, винятки можуть бути в тому випадку, якщо користувач по помилці натиснув не ту клавішу, але це вже повинен продумувати розробник проги, т. .е. ти.
Може, поставити питання FastReport"у? Вони напевно краще в цьому розберуться. Або попросити користувача прибирати за собою сміття через TaskManager.
Зовсім тупим способом може бути перебір всіх вікон, отримання ідентифікатора процесу для кожного вікна, для яких процесів вікна Excel не буде - вбивати. Але мені здається, можна нашкодити.
Ігоре, дякую! Принаймні, ви подивилися на проблему моїми очима, без якихось наїздів на мій непрофесіоналізм. Над запропонованими Вами варіантами я вже думав, мабуть доведеться шукати золоту середину між автоматичним зачищенням процесів та наданням свободи дій користувачеві.
> коли від Вас мало чого залежить
Та що ви говорите ?!
А вихідники FastReporta для кого дані?