Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
0 / 1 / 3
Регистрация: 27.03.2012

Пример убийства процесса

02.10.2007, 14:50. Показов 2493. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подкиньте пример убийства процесса, никак не могу найти самостоятельно - все в основном опираются на поиск окошка по заголовку и затем отправки ему сообщения о закрытии. В моем же случае приложение не имеет окна и по ALT+TAB невидимо, зато если открыть Task Manager, то присутсвует... Поэтому надо именно закрытие процесса, а не окна.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.10.2007, 14:50
Ответы с готовыми решениями:

Запрет убийства процесса
Добрый день. Есть маленький вопрос: как можно запретить убийство процесса без рутовых прав?

Защита процесса от убийства
Препод задал задачу: 7. Запустите процедуру в фоновом режиме, но предусмотрите её защиту от прерывания при выходе из системы. ...

Защита процесса от закрытия(убийства)
Тестил код этот BLOCK KILL 1)Подключаем пространство имен необходимых нам библиотек: using System.ComponentModel; using...

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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.12.2007, 15:44
Помогаю со студенческими работами здесь

Выполнить действие после убийства процесса
Такое возможно? Программа закрывается через Диспетчер Задач. При этом нужно чтобы она вызвала функцию.

Как программно произвести перезапуск приложения, если оно завершается из диспетчера задач (вкладка процессы) методом убийства процесса?
Это возможно вообще?

Пример функции для изменения региона защиты памяти процесса с Read Only на Write Copy
будьте добры привести пример функции для изменения региона защиты памяти процесса с Read Only на Write Copy VirtualAlloc - не подходит

Как насчет убийства CMOS'a?
Делаю в VC++ 6.0 Вставку: _asm{ PUSH CX PUSH AX XOR CX, CX MOV CL, 3FH L1: MOV AL,...

Bat-файл для убийства заданных приложений
Добрый вечер.Нужен батник,который будет работать в фоновом режиме(запускаясь вместе с виндой).Цель батника-периодически сканировать список...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Загрузка 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
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru