|
0 / 1 / 3
Регистрация: 27.03.2012
|
|
Пример убийства процесса02.10.2007, 14:50. Показов 2493. Ответов 15
Метки нет (Все метки)
Подкиньте пример убийства процесса, никак не могу найти самостоятельно - все в основном опираются на поиск окошка по заголовку и затем отправки ему сообщения о закрытии. В моем же случае приложение не имеет окна и по ALT+TAB невидимо, зато если открыть Task Manager, то присутсвует... Поэтому надо именно закрытие процесса, а не окна.
0
|
|
| 02.10.2007, 14:50 | |
|
Ответы с готовыми решениями:
15
Запрет убийства процесса
Защита процесса от закрытия(убийства) |
|
0 / 0 / 0
Регистрация: 17.08.2007
Сообщений: 539
|
|
| 02.10.2007, 16:54 | |
|
С кодом пока помочь не могу. Но задача оказалась интересной. Пошел от обратного: спрятал свое приложение от ALT+CTRL+DEL функцией RegisterServiceProcess (см. API). А когда еще раз перечитал пример к этой функции, то появилась одна мысля... Попробуй сделать так: сними атрибут 'сервис' со своей программы через RegisterServiceProcess, а потом убей программу по проверенному пути, т.е. через посылку ему сообщения и т.д. В качестве аргумента эта функция требует PID, брал я его у Process Viewer'а
0
|
|
|
0 / 1 / 3
Регистрация: 27.03.2012
|
|
| 02.10.2007, 17:12 | |
|
Нужен бы работающий пример... Приложение не мое, после работы VB c MS Word 2000, Word почему-то не убивает свой процесс 'WINWORD.EXE', вот его бы я и хотел убить.
0
|
|
|
0 / 0 / 0
Регистрация: 17.08.2007
Сообщений: 539
|
|
| 02.10.2007, 17:17 | |
|
И даже Set objWord=Nothing не помогает?
0
|
|
|
0 / 1 / 3
Регистрация: 27.03.2012
|
|
| 02.10.2007, 17:31 | |
|
Нет, не помогает. Я открываю Word для печати документа и тут же закрываю:
msWord.ActiveDocument.Close True 'False тоже пробовал Set msWord = Nothing открывается Word так: Dim msWord As Word.Application If WordCount > 0 Then Set msWord = GetObject(Class:='Word.Application.9') Else Set msWord = CreateObject('Word.Application.9') End If где WordCount - кол-во обрабатываемых документов. Если это не первый документ, то берется GetObject
0
|
|
|
Light
|
|
| 02.10.2007, 18:19 | |
|
Да-да-да.
И у меня такая же картина с Excel. Создаю CreateObject, делаю что надо, сохраняю, затем очищаю Nothing и объект, и книгу, и лист. В списке Ctrl_alt_del остается Excel. Он исчезает сам только после закрытия моей программы, вызывющей Excel. |
|
|
0 / 0 / 0
Регистрация: 17.08.2007
Сообщений: 539
|
|
| 02.10.2007, 18:54 | |
|
Решение проблемы:
1. objWord.Quit '!!!!!!! 2. Удалить все ссылки на объекты Word 3. Убрать все ссылки в проекте на библиотеку Word(хотя, если ты используешь CreateObject, то их быть не должно)
0
|
|
|
0 / 1 / 3
Регистрация: 27.03.2012
|
|
| 02.10.2007, 20:37 | |
|
Блин, они бы еще Exit назвали! Спасибо, это было то, что нужно!
0
|
|
|
Light
|
|
| 03.10.2007, 14:43 | |
|
Не помогает object.quit
Тем более, что мне надо его оставить видимым, пользователь закрывает после просмотра сам. Дополнительная информация: Пока Excel еще не закрыт, в окне Ctrl-Alt-Del процесс называется 'Microsoft Excel файл.xls'. После закрытия Excelа этот процесс исчезает, но появляется другой. И называется он уже 'Excel'. Все бы ничего, только при такой ситуации при попытке запуска любого другого файла xls (не из моей программы) открывается только оболочка Excel (окно,меню), а рабочее поле собственно с документом пусто. Вернее, прозрачно. Вызванного бокумента там не отображается. |
|
|
2 / 2 / 1
Регистрация: 07.05.2007
Сообщений: 126
|
|
| 03.10.2007, 16:22 | |
|
Надо
УDim xlBook As Object Set ExcelWorkbook = GetObject('Z:Muugiosakond.xls') ExcelWorkbook.Application.Visible = True ' видимость Excel ExcelWorkbook.Application.Windows('Muugi osakond.xls').Visible = True 'Видимость Конкретной книги ExcelWorkbook.Application.Quit' Вроде работает
0
|
|
|
0 / 0 / 0
Регистрация: 17.08.2007
Сообщений: 539
|
|
| 03.10.2007, 16:42 | |
|
Может это подойдет?
Насколько я понял, пользователь САМ закрывает Excel, если это так то попробуй в коде VB создать объектную пременную с WithEvents: Dim WithEvents xlBook As Excel.Workbook Потом в коде события закрытия книги очищай свои переменные и прочее: Private Sub xlBook_BeforeClose(Cancel As Boolean) ' Hide the Microsoft Excel window so the message ' will be visible. xlBook.Application.Visible = False ' Display the message. MsgBox 'This workbook must remain open.' ' Unhide the Microsoft Excel window. xlBook.Application.Visible=True ' Set the event procedure's Cancel argument ' to True, cancelling the event. Cancel = True End Sub Почитай MSDN по VB, там много примеров и эти примеры взяты из MSDN
0
|
|
|
MiCros
|
|
| 05.10.2007, 16:39 | |
|
'**************************************
' Name: Kill every process ' Description:Kill every window or process that 'you want if you know the handle 'Inputs:handle of the window that you want to kill '************************************** Declare Function GetWindowThreadProcessId Lib 'user32' (ByVal Hwnd As Long, lpdwProcessId As Long) As Long Declare Function TerminateProcess Lib 'kernel32' (ByVal ApphProcess As Long, ByVal uExitCode As Long) As Long Declare Function OpenProcess Lib 'kernel32' (ByVal dwDesiredAccess As Long, ByVal blnheritHandle As Long, ByVal dwAppProcessId As Long) As Long Declare Function CloseHandle Lib 'kernel32' (ByVal hObject As Long) As Long Const PROCESS_ALL_ACCESS = 0 Function KillWindow(Hwnd) Dim PROCESSID As Long Dim exitcode As Long Dim MyProcess As Long Call GetWindowThreadProcessId(Hwnd, PROCESSID) ' Get the processid from the window MyProcess = OpenProcess(PROCESS_ALL_ACCESS, False, PROCESSID) ' open the process by processid AppKill = TerminateProcess(MyProcess, exitcode) ' Terminate the process by process Call CloseHandle(MyProcess) ' close the process End Function |
|
|
0 / 1 / 3
Регистрация: 27.03.2012
|
|
| 06.10.2007, 14:50 | |
|
MiCros, я же указал, что окна нет, поэтому KillWindow не подойдет
0
|
|
|
0 / 0 / 0
Регистрация: 02.10.2007
Сообщений: 11
|
|
| 07.10.2007, 15:26 | |
|
It may be necessary to forcibly terminate an unresponsive application programmatically. This code performs the same function as the Task Manager 'End Process' command.
Declare Function OpenProcess Lib 'kernel32' (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long Declare Function CloseHandle Lib 'kernel32' (ByVal hObject As Long) As Long Public Const PROCESS_ALL_ACCESS = &H1F0FFF Declare Function TerminateProcess Lib 'kernel32' (ByVal hProcess As Long, ByVal uExitCode As Long) As Long Sub ProcessTerminate(pl_ProcessID As Long) Dim ll_ProcessHandle As Long Dim ll_ExitCode As Long Dim ll_RetVal As Long On Error GoTo ProcessTerminate_Error ll_ProcessHandle = OpenProcess(PROCESS_ALL_ACCESS, 0, pl_ProcessID) If ll_ProcessHandle Then ll_RetVal = TerminateProcess(ll_ProcessHandle, ll_ExitCode) Call CloseHandle(ll_ProcessHandle) End If ProcessTerminate_Error: Exit Sub End Sub Please note that a process should only be terminated as a very last resort. Windows will attempt to clean up whatever resources it can but it is far better to allow a process to terminate cleanly whenever possible. Use this technique with extreme caution.
0
|
|
|
Deymos
|
|
| 26.12.2007, 15:32 | |
|
Блин, люди добрые пожите чем можите!!!
Ничего из перечисленного выше не работает ![]() У меня аналогичная проблема: из Access вызываю Excel, делаю там все что надо, убиваю все объектные переменные из excel выхожу (obj.quit). А процесс остается!!! И убивается после закрытия Access. Что делать? |
|
|
0 / 0 / 0
Регистрация: 05.07.2007
Сообщений: 110
|
|
| 26.12.2007, 15:44 | |
|
Dim WB As Excel.Workbooks
Dim WS As Excel.Worksheet Set WB = Excel.Workbooks WB.Open fileExcel, 0, 1 Set WS = WB(1).Sheets(1) '.......... WB.Close У меня все нормально)) Не забудь установить референс на Microsoft Excell XX Object Lib....
0
|
|
| 26.12.2007, 15:44 | |
|
Помогаю со студенческими работами здесь
16
Выполнить действие после убийства процесса Как программно произвести перезапуск приложения, если оно завершается из диспетчера задач (вкладка процессы) методом убийства процесса? Пример функции для изменения региона защиты памяти процесса с Read Only на Write Copy Как насчет убийства CMOS'a?
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога
SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
|
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
|
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога
SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
|
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога
Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip"
Извлеките архив и вы увидите. . .
|
|
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога
Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д.
Сборка примера
Скачайте. . .
|
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net
REST сервисы временно не работают, только через Web.
Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
|
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
|