Как прервать завершение работы в Windows (XP|Vista) программно?

Мы можем использовать base::cut с квантилем, чтобы получить соответствующий квартиль

library(dplyr)
players %>% 
  mutate(quar_all=cut(age, breaks=c(0,quantile(age, probs=c(0.25,0.5,0.75,1.0))),labels = FALSE)) %>% 
  group_by(pos) %>% 
  mutate(quar_pos=cut(age, breaks=unique(c(0,quantile(age, probs=c(0.25,0.5,0.75,1.0)))),labels = FALSE))

Обратите внимание: в quar_pos я использовал unique, так как получил ошибку

Ошибка в cut.default (age, breaks = quantile (age, Probs = C (0.25, 0.5,: 'breaks' не уникальны)

blockquote>

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

9
задан Piskvor cc-by-sa 3.0 14 December 2015 в 11:12
поделиться

2 ответа

Из MSDN:

WM_QUERYENDSESSION сообщение отправляется, когда пользователь принимает решение закончить сессию или когда приложение вызывает одну из функций завершения работы системы. Если какой-либо нуль возвратов приложения, сессия не заканчивается. Система прекращает отправлять WM_QUERYENDSESSION сообщения, как только одно приложение возвращает нуль.

Так, WindowProc моего приложения теперь обрабатывает WM_QUERYENDSESSION сообщение и возвраты 0.

Не ожидал, что это будет этим простым; в качестве награды это также работает над Windows 2000.

6
ответ дан 4 December 2019 в 23:08
поделиться

Что касается «простого» возврата 0 для блокировки завершения работы, это не так просто, если вы хотите сделать это должным образом. Особенно на Vista. Например, также прочтите http://msdn.microsoft.com/en-us/library/ms700677 (VS.85) .aspx

1
ответ дан 4 December 2019 в 23:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: