arthur2 писал(а):Если это программно не решается, то просто - какие будут советы?
arthur2 писал(а):А как показать своё окно на новом рабочем столе? Нужно обязательно запускать новый процесс? Тот, кто создал новый рабочий стол - сам может на него попасть?
tyomitch писал(а):Поскольку даже для безоконного приложения VB6 создаёт окна ThunderRT6Main и VBFocusRT6, то перебраться на другой десктоп тебе не удастся
arthur2 писал(а):Вот нормальный пример:
arthur2 писал(а):Интересно, а если моя программа на новом десктопе вдруг зависнет - всё, борода? назад не вернуться?
arthur2 писал(а):tyomitch писал(а):Поскольку даже для безоконного приложения VB6 создаёт окна ThunderRT6Main и VBFocusRT6, то перебраться на другой десктоп тебе не удастся
Там ссылка нерабочая. В принципе, код там есть и так. В плане запуска проги на другом десктопе - практически то же, что и по моей ссылке (там, правда, бонусом есть ещё ожидание по семафоруХакер писал(а):А у себя?
arthur2 писал(а):Интересно, а если моя программа на новом десктопе вдруг зависнет - всё, борода? назад не вернуться?
В "моём" - тоже не селится. Но та программа, которую я запускаю на новом десктопе - тоже моя, а вот если она зависнет...Хакер писал(а):В нашем примере — программа, переключающая десктоп не селится в новом десктопе.
ANDLL писал(а):'Запускаем "анлокер". Если он вдруг не запустится, пеняйте на себя
Я тоже уже подумал о том же самом Но поскольку "имеет место быть единичный случай", то мне, пожалуй, вполне хватит запуска проги другой прогой.Хакер писал(а):Тогда вся работа с десктопами выполнится до создания невидимых окон.
arthur2 писал(а):Но та программа, которую я запускаю на новом десктопе - тоже моя, а вот если она зависнет...
arthur2 писал(а):Вижу как вариант: запускать вместе с программой на новый рабочий стол своего маленького киллера, который по хоткию убил бы её, не разбираясь, зависла она али нет.
С чего бы это? Я запускаю на новый рабочий стол две программы - одна та, которую надо запустить и которая в силу каких-либо причин может зависнуть. Вторая - киллер для подстраховки - ничего делать не умеет, кроме как убить по хоткию первую и самой умереть. Вторая зависнуть не может, потому что в ней и зависать-то нечему.SLIM писал(а):Он работать не будет если не будут обрабатываться сообщения, о которых говорит Хакер.
О! хорошее словцоJoo писал(а):"Запускатор"
arthur2 писал(а):это ещё одна тоже будет на другом десктопе?
MSDN писал(а):The system determines the desktop to assign to the thread according to the following rules:
- If the thread has called the SetThreadDesktop function, it connects to the specified desktop.
- If the thread did not call SetThreadDesktop, it connects to the desktop inherited from the parent process.
- If the thread did not call SetThreadDesktop and did not inherit a desktop, the system attempts to open for MAXIMUM_ALLOWED access and connect to a desktop as follows:
- If a desktop name was specified in the lpDesktop member of the STARTUPINFO structure that was used when the process was created, the thread connects to the specified desktop.
- Otherwise, the thread connects to the default desktop of the window station to which the process connected.
arthur2 писал(а):И можно ли передавать сообщения между окнами на разных рабочих столах?
MSDN писал(а):Window messages can be sent only between processes that are on the same desktop. In addition, the hook procedure of a process running on a particular desktop can only receive messages intended for windows created in the same desktop.
arthur2 писал(а):С первым: если я вызвал SetThreadDesktop, значит ли это, что я приканектился к этому дестопу и хоть и не могу создавать в нём окон, но могу получать из него hotkeys?
arthur2 писал(а):Запускатор делает SetThreadDesktop своего потока на друой десктоп.
Хакер писал(а):В новом десктопе не будет активны никакие привычные хоткеи, ни «Пуск», ни альт-таб, ни Ctrl+Atl+Del, никаких окон из чужих десктопов
, то есть придут ли они мне при таком раскладе?сообщения WM_HOTKEY посылаются в очередь сообщений вызывающего потока
Я своей дочке выделил старую клавиатуру для таких забав. Может быть это звучит слегка занудно, но я стараюсь не давать маленькому ребёнку играться с работающими девайсами. И уж тем более с рабочим ноутбуком.Собственно, задача в следующем: я хочу, чтобы дочка могла нажимать на клавиатуре на любые клавиши, которые ей вздумается, а я при этом не переживал за то, что она отформотирует мне винчестер.
Если это программно не решается, то просто - какие будут советы?
Сейчас этот форум просматривают: AhrefsBot, SemrushBot и гости: 91