Как программно закрыть программу

Вы можете использовать класс CoreApplication . Он предоставляет статический метод выхода:

public void CloseApp()

Однако в документации указано следующее:

Примечание . Не используйте этот метод для завершения работы приложения вне сценариев тестирования или отладки.

К сожалению, причина этого осталась неизвестной.

Более того, вы можете использовать старомодный Application.Exit (нестатический):

public void CloseApp()

Здесь также стоит взглянуть на примечания:

Используйте этот метод для предоставления пользовательского интерфейса, который позволяет пользователям выходить из вашего приложения. Однако обычно вы не должны предоставлять этот пользовательский интерфейс, потому что система автоматически управляет временем жизни приложения и завершает приостановленные приложения по мере необходимости для освобождения ресурсов.

tl; dr: Оба метода Exit завершат работу приложения, а не приостановят его. Вы должны спросить себя, действительно ли вы хотите совершить это действие.

Как закрыть приложение [если оно зависло]

Herdo 20 Сен 2015 в 09:27

Если вы хотите приостановить работу приложения вместо завершения, попробуйте использовать ApplicationView.TryConsolidateAsync() . Например, если приложение реализует только один ApplicationView , попробуйте вызвать ApplicationView.GetForCurrentView().TryConsolidateAsync() , чтобы закрыть приложение.

Очевидное преимущество этого метода заключается в том, что приложение закрывается так же, как вы это делаете, нажав кнопку закрытия в строке заголовка, закрытие происходит изящно, анимация такая же, и приложение приостанавливается, а не внезапно закрывается.

Кроме того, когда вы снова запускаете приложение после закрытия с помощью этого метода, приложение запускается в той же позиции и того же размера, что и при закрытии, при использовании Application.Current.Exit() и CoreApplication.Exit() не запускает приложение в той же позиции. и размер.

SoumyaMahunt 24 Июн 2020 в 13:05

Это поддерживаемый способ выхода из приложения UWP:

Application.Current.Exit();

Однако его можно использовать относительно редко. Внимательно изучите пользовательский интерфейс, связанный со сценарием, в котором вы будете использовать этот метод. Например, может быть оправдано программный выход из приложения, если срок действия какой-либо учетной записи истек или разрешения безопасности, управляемые удаленно, были отозваны. Редко бывает, что у вас есть собственная кнопка «Выход», расположенная в середине экрана, не противоречащая рекомендациям Windows.

Читайте также:
Как удалить программу с айфона 6 полностью

Источник: question-it.com

Как программно закрыть программу

Такая тема, есть программа которая открывает по нажатию кнопки презентацию (1.pptx) и есть 2 кнопка (закрыть) ну и нужно чтобы по нажатию кнопки процесс PowerPoint крякался или сама презентация закрывалась, я пробовал через код

ТОП советов владельцам Macbook


—————————————————

h:=FindWindow(nil, ‘Microsoft PowerPoint’); if h=0 then exit; SendMessage(h, WM_DESTROY, 0,0)

Пожалуйста, оформляйте Ваш код согласно правилам.
—————————————————
но там просто верхняя полоска где крестик полосочка и окошко исчезает а презенташка остаётся открытой
Исходник прикреплён!

Вложения

Презенташка.rar (170.2 Кб, 11 просмотров)

Последний раз редактировалось Вадим Мошев; 07.06.2018 в 20:42 .
Регистрация: 16.05.2012
Сообщений: 3,211

function TServiceManager.KillTask(const aTaskFileName: string): Integer; const PROCESS_TERMINATE = $0001; var ContinueLoop: BOOL; FSnapshotHandle: THandle; FProcessEntry32: TProcessEntry32; FExeName: string; ExePos: integer; begin ExePos := pos(‘.exe’, aTaskFileName); if ExePos > 0 then FExeName := Copy(aTaskFileName, 1, ExePos + 3); Result := 0; if aTaskFileName <> » then begin FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); FProcessEntry32.dwSize := SizeOf(FProcessEntry32); ContinueLoop := Process32First(FSnapshotHandle, FProcessEntry32); while Integer(ContinueLoop) <> 0 do begin if (UpperCase(ExtractFileName(FProcessEntry32.szExeFile)) = UpperCase(FExeName)) or (UpperCase(FProcessEntry32.szExeFile) = UpperCase(FExeName)) then Result := Integer(TerminateProcess( OpenProcess(PROCESS_TERMINATE, BOOL(0), FProcessEntry32.th32ProcessID), 0)); ContinueLoop := Process32Next(FSnapshotHandle, FProcessEntry32); end; CloseHandle(FSnapshotHandle); end end; // KillProcess
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы.
Регистрация: 07.06.2018
Сообщений: 3
function TServiceManager.KillTask(const aTaskFileName: string): Integer; const PROCESS_TERMINATE = $0001; var ContinueLoop: BOOL; FSnapshotHandle: THandle; FProcessEntry32: TProcessEntry32; FExeName: string; ExePos: integer; begin ExePos := pos(‘.exe’, aTaskFileName); if ExePos > 0 then FExeName := Copy(aTaskFileName, 1, ExePos + 3); Result := 0; if aTaskFileName <> » then begin FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); FProcessEntry32.dwSize := SizeOf(FProcessEntry32); ContinueLoop := Process32First(FSnapshotHandle, FProcessEntry32); while Integer(ContinueLoop) <> 0 do begin if (UpperCase(ExtractFileName(FProcessEntry32.szExeFile)) = UpperCase(FExeName)) or (UpperCase(FProcessEntry32.szExeFile) = UpperCase(FExeName)) then Result := Integer(TerminateProcess( OpenProcess(PROCESS_TERMINATE, BOOL(0), FProcessEntry32.th32ProcessID), 0)); ContinueLoop := Process32Next(FSnapshotHandle, FProcessEntry32); end; CloseHandle(FSnapshotHandle); end end; // KillProcess

Читайте также:
Программа установки запускает файлы

Проблемы по этому коду? И 2 вопрос, как подключить этот процесс к кнопке?
А и ещё вопрос как сделать так чтобы значение счетчика обратного отсчёта сохранялось при закрытии, а потом при дальнейшем использовании программы он начинал с того места с которого закончил? Заранее спасибо)

Источник: www.programmersforum.ru

Как программно выйти или закрыть приложение UWP? (Windows 10)

Вы можете использовать класс CoreApplication . Он предоставляет статический метод выхода:

public void CloseApp()

Однако в документации указано следующее:

Примечание Не используйте этот метод для закрытия приложения вне сценариев тестирования или отладки.

К сожалению, причина этого остается нераскрытой.

Кроме того, вы можете использовать старомодный метод Application.Exit (нестатический):

public void CloseApp()

Здесь вы также должны взглянуть на замечания:

Используйте этот метод для предоставления пользовательского интерфейса, который позволяет пользователям выйти из вашего приложения. Обычно, однако, вы не должны предоставлять этот интерфейс, потому что система автоматически управляет временем жизни приложения и прекращает приостанавливать приложения по мере необходимости, чтобы освободить ресурсы.

TL;DR:
Оба метода Exit прекращают приложение, а не приостанавливают его. Вы должны спросить себя, действительно ли это действие, которое вы хотите сделать.

Это поддерживаемый способ выхода из приложения UWP:

Application.Current.Exit();

Однако относительно редко вы должны его использовать. Внимательно изучите опыт пользовательского интерфейса, связанный со сценарием, в котором вы будете использовать этот метод. Например, может быть оправдано программное выключение приложения, если истек срок действия определенной учетной записи или удаленные разрешения безопасности удалены. Редко, что у вас есть собственная кнопка “Выход”, сидящая посередине экрана, не противоречащая рекомендациям Windows.

Источник: techarks.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru