Войти
ФлеймФорумПрограммирование

Общие вопросы по программированию (139 стр)

Страницы: 1138 139 140 141176 Следующая »
#2070
20:11, 1 апр. 2020

skalogryz
Это первое, что мне пришло в голову, но слишком геморно ради одного сообщения.


#2071
20:12, 1 апр. 2020

nes
тока через вспомогательный процессы. любой мессаджбокс в контексте процесса.
если только в syslog бросать

#2072
20:16, 1 апр. 2020

Mira
Как же у мелкософтов все криво в архитектуре (

#2073
20:21, 1 апр. 2020

nes
> Как же у мелкософтов все криво в архитектуре (
интересно. а где не так?

#2074
20:28, 1 апр. 2020

skalogryz
Хз, но почему нельзя было выдать на руки аналог сообщение-коробки,
не зависящего от процесса...

#2075
(Правка: 20:45) 20:37, 1 апр. 2020

Двести лет назад можно было через net send сообщения васькам кидать.
net send * kto v doom?

Сейчас через msg?

atexit([](){
  system("msg * Bye all!");
});

#2076
20:45, 1 апр. 2020

entryway
Почти то что нужно, жаль нельзя тайтл сообщения задать.

#2077
20:53, 1 апр. 2020

nes
> сообщение-коробки, не зависящего от процесса...
ну потому что сообщение-коробка требуется в системных ресурсах (время исполнения CPU? графоний, мышка)
а с ресурсы разделяются только между процессами (и их потоками)
хочешь окошко -> имей процесс.

а то ведь кроме тайтла, ещё какие-нить "Send" / "Start Debug" захочется?!

#2078
21:07, 1 апр. 2020

nes
> Есть ли в винеапи аналог месжбохса, который не привязан к процессу и
> отображается системой,
> аля нотификейшн?
> Т.е. нужно грохнуть текущий процесс и показать при этом сообщение об ошибке.
В винапи нет, но можно воспользоваться окружением. Если процесс не через SYSWOW64 гоняется, то можно как-то так:

CoInitialize(nullptr);
ShellExecute(0, TEXT("open"), TEXT("cmd"), TEXT("/C msg %username% Allo, yoba, eto ti?"), nullptr, SW_NORMAL);
Если через SYSWOW64, то можно павершеллом показать. Для этого последнюю строку с параметром заменить на параметр павершелла:
ShellExecute(0, TEXT("open"), TEXT("cmd"), TEXT("/C PowerShell -Command \"Add-Type -AssemblyName PresentationFramework;[System.Windows.MessageBox]::Show('Da, yoba slushaet')\""), nullptr, SW_NORMAL);
#2079
(Правка: 21:13) 21:11, 1 апр. 2020

entryway
> atexit([](){
> system("msg * Bye all!");
> });
Оппа, полезно. Так я узнал о вызове system в плюсах.
Код выше с ShellExecute можно заменить тупо на:

system("PowerShell -Command \"Add-Type -AssemblyName PresentationFramework;[System.Windows.MessageBox]::Show('Da, yoba slushaet', 'Yoba otvet')\"");
#2080
(Правка: 21:50) 21:49, 1 апр. 2020

я лучше своим окошечкам доверюсь, с дочерними, или сторонними процессами:

+ Показать

#2081
21:58, 1 апр. 2020

skalogryz
> я лучше своим окошечкам доверюсь
Почему?

#2082
(Правка: 22:00) 21:59, 1 апр. 2020

Delfigamer
> Почему?
ну во-первых я их контроллирую.

во-вторых, сам процесс, за которым нужно следить, сам за собой надёжно следить не может.
Всегда может произойти сбой, который порушит любой atexit()

#2083
14:22, 3 апр. 2020

Есть мелкософтовские __try / __except - ловушки всяких сигналов.
На сколько их поведение близко к поведению исключений С++?
Т.е. пока птичка не вылетела, __try / __except ничего не стоят?

#2084
14:29, 3 апр. 2020
Т.е. пока птичка не вылетела, __try / __except ничего не стоят?

Для этого нужен хороший кот.
Страницы: 1138 139 140 141176 Следующая »
ФлеймФорумПрограммирование