Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Аватара для kotkovets

Ветеран


Сообщения: 1216
Благодарности: 486

Профиль | Отправить PM | Цитировать


Вложения
Тип файла: zip nsRestart.zip
(3.8 Kb, 32 просмотров)

Просмотрев на офф. сайте плагины которые работают с процессами, для себя посчитал наиболее удачный и даже лучший nsProcess.
Но ни один из них не умеет завершать оболочку системы, с ошибками работают в WIN7 и т.д
Решил написать свой плагин, за основу взял вышеупомянутый плагин...
В общем долго "мучил" свой проект. И вот что получилось:
---
Плагин предназначен для ANSI версии NSIS, кроссплатформенный (х86/x64), только для систем Windows NT начиная от Win2000 и выше.
Никаких дополнительных приложений, библиотек не требуется. Плагин полностью идентичен по функционалу стандартного диспетчера задач. (использованы не документированные функции Win API)
1. Поиск запущенного процесса
читать дальше »
Код: Выделить весь код
nsRestart::FindProcess "процесс.exe" 
Pop $var
Где $var принимает следующие значения:
Код: Выделить весь код
$var = 1 -> процесс не найден, не запущен
$var = 0 -> процесс запущен

2. Запись в файл *.ini список процессов с идентификаторами
читать дальше »
Код: Выделить весь код
nsRestart::ListProcess "Путь\файл.ini" 
Pop $var
Где $var принимает следующие значения:
Код: Выделить весь код
$var = error -> ошибка
$var =0 -> список успешно создан

3. Получение полного пути запущенного процесса
читать дальше »
Код: Выделить весь код
nsRestart::PathProcess "процесс.exe" 
Pop $var
Где $var принимает следующие значения:
Код: Выделить весь код
$var = 1 -> процесс не найден, не запущен
$var  -> путь к запущенному процессу

4. Получение полного пути и командной строки запущенного процесса
Если запущеный процесс не имеет аргументов командной строки, то получаем путь к процессу.
Работает эта функция только с 32-битными процессами.
Достойного рещения для 64-битных процессов пока не нашел.
читать дальше »
Код: Выделить весь код
nsRestart::CmdPathProcess "процесс.exe" 
Pop $var
Где $var принимает следующие значения:
Код: Выделить весь код
$var = 1 -> процесс не найден, не запущен
$var  -> путь к запущенному процессу + аргументы процесса

5. Перезапуск с аргументами командной строки запущенного процесса.
Перезапуск делается с задержкой в одну секунду.
Естественно кроме, специфических процессов (служб и т.д).
64-битные процессы будут перезапущены без аргументов командной строки.
Я категорически не рекомендую делать перезапуск системных процессов !!!
Во избежания потерь данных и получения "синих" экранов смерти !!!!

читать дальше »
Код: Выделить весь код
nsRestart::RestartProcess "процесс.exe" 
Pop $var
Где $var принимает следующие значения:
Код: Выделить весь код
$var  =  0  -> процесс успешно перезапущен
$var  =  1  -> процесс не запущен, не найден
$var  =  2  -> процесс невозможно завершить
$var  =  3  -> процесс завершен, но невозможно запустить

6. Завершение процесса
Я категорически не рекомендую "прибивать" системные процессы !!!
Во избежания потерь данных и получения "синих" экранов смерти !!!!

читать дальше »
Код: Выделить весь код
nsRestart::KillProcess "процесс.exe" 
Pop $var
Где $var принимает следующие значения:
Код: Выделить весь код
$var  =  0  -> процесс успешно завершен
$var  =  1  -> процесс не запущен, не найден

-------
Спасибо ВСЕМ за то, что тратите свое время, что бы ПОМОЧЬ МНЕ.


Последний раз редактировалось kotkovets, 12-06-2011 в 23:44.

Это сообщение посчитали полезным следующие участники:

Отправлено: 18:24, 10-06-2011 | #1251