powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / После удаления программы её процесс время равно висит в диспетчере задач
3 сообщений из 3, страница 1 из 1
После удаления программы её процесс время равно висит в диспетчере задач
    #39511817
ASukhov1986
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня возникла следующая проблема:
Используя NSIS я написал установщик своей программы. Я установил программу, а далее удаляю её с помощью uninstall.exe. Программа удалилась успешно, но её процесс всё равно весит в списке запущенных программ Диспетчера задач.
Вопрос:
Что мне сделать, чтобы после выполнения удаления программы этот процесс не оставался запущенным?
Вот секция uninstall:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
;Uninstall section
Section "Uninstall"

FindWindow $R0 "WindowsForms10.Window.8.app3"
StrCmp $R0 0 +1 wind_exist

FindWindow $R0 "WindowsForms10.Window.8.app4"
StrCmp $R0 0 +1 wind_exist

FindWindow $R0 "WindowsForms10.Window.8.app38"
StrCmp $R0 0 Udaliaem wind_exist

wind_exist:
MessageBox MB_OK|MB_ICONEXCLAMATION "Удаление невозможно. Перед удалением закройте программу."
quit

Udaliaem:
	Delete "$INSTDIR\setup.exe"
	Delete "$INSTDIR\Uninstall.exe"

	;Remove shortcut 
	!insertmacro MUI_STARTMENU_GETFOLDER Application $STARTMENU_FOLDER
	
	Delete "$SMPROGRAMS\$STARTMENU_FOLDER\${APPNAME}.lnk"
	Delete "$SMPROGRAMS\$STARTMENU_FOLDER\Удаление ${APPNAME}.lnk"
	Delete "$DESKTOP\${APPNAME}.lnk"

  ;.dll
	Delete "$INSTDIR.\CommonControls.dll"
	Delete "$INSTDIR\csmusers.dll"
	Delete "$INSTDIR\csmutil.dll"
	Delete "$INSTDIR\csmutil.Core.dll"
	Delete "$INSTDIR\CurrentCsmSelector.dll"
	Delete "$INSTDIR\sqlc.dll"
	Delete "$INSTDIR\interop.dll"
	Delete "$INSTDIR\NPOI.dll"
	Delete "$INSTDIR\NPOI.OOXML.dll"
	Delete "$INSTDIR\NPOI.OpenXml4Net.dll"
	Delete "$INSTDIR\NPOI.OpenXmlFormats.dll"
	Delete "$INSTDIR\DevExpress.Data.v12.2.dll"
	Delete "$INSTDIR\DevExpress.Printing.v12.2.Core.dll"
	Delete "$INSTDIR\DevExpress.Utils.v12.2.dll"
	Delete "$INSTDIR\DevExpress.XtraEditors.v12.2.dll"
	Delete "$INSTDIR\DevExpress.XtraGrid.v12.2.dll"
	Delete "$INSTDIR\DevExpress.XtraLayout.v12.2.dll"
	Delete "$INSTDIR\DevExpress.XtraBars.v12.2.dll"
	Delete "$INSTDIR\DevExpress.XtraPrinting.v12.2.dll"
	Delete "$INSTDIR\DevExpress.XtraReports.v12.2.dll"
	Delete "$INSTDIR\DesignConrtols.dll"
	
	
	
	Delete "$INSTDIR\ru\DevExpress.Data.v12.2.resources.dll"
	Delete "$INSTDIR\ru\DevExpress.Printing.v12.2.Core.resources.dll"
	Delete "$INSTDIR\ru\DevExpress.Utils.v12.2.resources.dll"
	Delete "$INSTDIR\ru\DevExpress.XtraEditors.v12.2.resources.dll"
	Delete "$INSTDIR\ru\DevExpress.XtraGrid.v12.2.resources.dll"
	Delete "$INSTDIR\ru\DevExpress.XtraLayout.v12.2.resources.dll"
	Delete "$INSTDIR\ru\DevExpress.XtraBars.v12.2.resources.dll"
	Delete "$INSTDIR\ru\DevExpress.XtraPrinting.v12.2.resources.dll"
	Delete "$INSTDIR\ru\DevExpress.XtraReports.v12.2.resources.dll"
        Delete "$INSTDIR\ru"
		
	
	Delete "$INSTDIR\WhatsNew.txt"
	Delete "$INSTDIR\log.txt"
	Delete "$INSTDIR\UpdaterCatalogs.exe" 
	Delete "$INSTDIR\UpdaterCatalogs.exe.config"
	Delete "$INSTDIR\UpdaterCatalogsUpdate.exe"
	Delete "$INSTDIR\help.chm"
	

	SetShellVarContext All
	RMDir /r "$SMPROGRAMS\$STARTMENU_FOLDER" ;Only if empty, so it won't delete other shortcuts
	SetShellVarContext Current
	RMDir /r "$SMPROGRAMS\$STARTMENU_FOLDER" ;Only if empty, so it won't delete other shortcuts
			
	DeleteRegValue HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" "UninstallString"
	DeleteRegValue HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" "DisplayName"
	DeleteRegValue HKLM "Software\ifirst\${APPNAME}" "AutoUpdatePath"
	DeleteRegValue HKLM "Software\ifirst\${APPNAME}" "CurrentVersion"
	DeleteRegValue HKLM "Software\ifirst\${APPNAME}" "InstDir"
	DeleteRegValue HKLM "Software\ifirst\${APPNAME}" "CreateShortcut"

	RMDir "$INSTDIR"
	DeleteRegKey /ifempty HKCU "Software\${APPNAME}"
	DeleteRegKey /ifempty HKLM "Software\ifirst\${APPNAME}"
	DeleteRegKey /ifempty HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}"

SectionEnd


А вот на скриншоте отображается процесс, причём на других машинах (на моём и коллеги) после удаления программы этого процесса нет.
...
Рейтинг: 0 / 0
После удаления программы её процесс время равно висит в диспетчере задач
    #39511829
refreg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
После удаления программы её процесс время равно висит в диспетчере задач
    #39512040
ASukhov1986
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
refreg,
Ошибка была в том, что при выполнении данной секции не было проверки, что программа может быть открыта, поэтому секция удалила те файлы которая смогла удалить и оставила не удаляемые файлы. Для устранения ошибки я подкорректировал секцию:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
;Uninstall section
Section "Uninstall"

FindWindow $R0 "WindowsForms10.Window.8.app3"
StrCmp $R0 0 +1 wind_exist

FindWindow $R0 "WindowsForms10.Window.8.app4"
StrCmp $R0 0 +1 wind_exist

FindWindow $R0 "WindowsForms10.Window.8.app38"
StrCmp $R0 0 Udaliaem wind_exist

wind_exist:
MessageBox MB_OK|MB_ICONEXCLAMATION "Удаление невозможно. Перед удалением закройте программу."
quit

Udaliaem:
        SetOutPath $TEMP;<----Начало добавленного блока
	File ".\FindProcesses.exe"
	ExecWait "$TEMP\FindProcesses.exe UpdaterCatalogs.exe" $0
	Delete "$TEMP\FindProcesses.exe"
	BringToFront
	StrCmp $0 0 +3 +1
	MessageBox MB_OK|MB_ICONEXCLAMATION "Удаление невозможно. Перед удалением закройте программу ${APPNAME}."
	quit;<----Конец добавленного блока
	
	Delete "$INSTDIR\setup.exe"
	Delete "$INSTDIR\Uninstall.exe"

	;Remove shortcut 
	!insertmacro MUI_STARTMENU_GETFOLDER Application $STARTMENU_FOLDER
	
	Delete "$SMPROGRAMS\$STARTMENU_FOLDER\${APPNAME}.lnk"
	Delete "$SMPROGRAMS\$STARTMENU_FOLDER\&#211;&#228;&#224;&#235;&#229;&#237;&#232;&#229; ${APPNAME}.lnk"
	Delete "$DESKTOP\${APPNAME}.lnk"

  ;.dll
	Delete "$INSTDIR\CommonControls.dll"
	Delete "$INSTDIR\csmusers.dll"
	Delete "$INSTDIR\csmutil.dll"
	Delete "$INSTDIR\csmutil.Core.dll"
	Delete "$INSTDIR\CurrentCsmSelector.dll"
	Delete "$INSTDIR\sqlc.dll"
	Delete "$INSTDIR\interop.dll"
	Delete "$INSTDIR\NPOI.dll"
	Delete "$INSTDIR\NPOI.OOXML.dll"
	Delete "$INSTDIR\NPOI.OpenXml4Net.dll"
	Delete "$INSTDIR\NPOI.OpenXmlFormats.dll"
	Delete "$INSTDIR\DevExpress.Data.v12.2.dll"
	Delete "$INSTDIR\DevExpress.Printing.v12.2.Core.dll"
	Delete "$INSTDIR\DevExpress.Utils.v12.2.dll"
	Delete "$INSTDIR\DevExpress.XtraEditors.v12.2.dll"
	Delete "$INSTDIR\DevExpress.XtraGrid.v12.2.dll"
	Delete "$INSTDIR\DevExpress.XtraLayout.v12.2.dll"
	Delete "$INSTDIR\DevExpress.XtraBars.v12.2.dll"
	Delete "$INSTDIR\DevExpress.XtraPrinting.v12.2.dll"
	Delete "$INSTDIR\DevExpress.XtraReports.v12.2.dll"
	Delete "$INSTDIR\DesignConrtols.dll"
	
        RMDir /r "$INSTDIR\ru"
		
	Delete "$INSTDIR\WhatsNew.txt"
	Delete "$INSTDIR\log.txt"
	Delete "$INSTDIR\UpdaterCatalogs.exe" 
	Delete "$INSTDIR\UpdaterCatalogs.exe.config"
	Delete "$INSTDIR\UpdaterCatalogsUpdate.exe"
	Delete "$INSTDIR\help.chm"

	SetShellVarContext All
	RMDir /r "$SMPROGRAMS\$STARTMENU_FOLDER" ;Only if empty, so it won't delete other shortcuts
	SetShellVarContext Current
	RMDir /r "$SMPROGRAMS\$STARTMENU_FOLDER" ;Only if empty, so it won't delete other shortcuts
			
	DeleteRegValue HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" "UninstallString"
	DeleteRegValue HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" "DisplayName"
	DeleteRegValue HKLM "Software\ifirst\${APPNAME}" "AutoUpdatePath"
	DeleteRegValue HKLM "Software\ifirst\${APPNAME}" "CurrentVersion"
	DeleteRegValue HKLM "Software\ifirst\${APPNAME}" "InstDir"
	DeleteRegValue HKLM "Software\ifirst\${APPNAME}" "CreateShortcut"

	RMDir /r "$INSTDIR"
	DeleteRegKey /ifempty HKCU "Software\${APPNAME}"
	DeleteRegKey /ifempty HKLM "Software\ifirst\${APPNAME}"
	DeleteRegKey /ifempty HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}"

SectionEnd
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / После удаления программы её процесс время равно висит в диспетчере задач
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]