
Такой запуск приведёт к простому открытию окна но не старту рабочего стола , а нужно стартовать паралельный рабочий стол ...
Ответов: 893
Рейтинг: 18
|
|||
Помогите разобратся , я хочу написать утилитку для создания второго рабочего стола , но как запустить explorer отдельным потоком незнаю..
![]() Такой запуск приведёт к простому открытию окна но не старту рабочего стола , а нужно стартовать паралельный рабочий стол ... |
|||
карма: 0 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
Byuik писал(а): а нужно стартовать паралельный рабочий стол ...это невозможно |
|||
карма: 27 |
|
Ответов: 2125
Рейтинг: 159
|
|||
Можно лишь скрывать и показывать окна на десктопе, а также следить за появлением новых. А вот иконки explorer-а расставлять по своим местам на каждом десктопе - сложнее, а уж как определить, что они переместились - вообще непонятно.
|
|||
карма: 1 |
|
Ответов: 893
Рейтинг: 18
|
|||
Dilma, tsdima, вот ета тулза запускает explorer отдельным потоком и организовывает 4 рабочих стола ftp://yw.ath.cx/install_arhiv/%D0%E0%E1%EE%F7%E8%E9%20%F1%F2%EE%EB/Ibdesk.rar
Dilma писал(а): это невозможнооказывается возможно. ![]() tsdima писал(а): Можно лишь скрывать и показывать окна на десктопе, а также следить за появлением новых. А вот иконки explorer-а расставлять по своим местам на каждом десктопе - сложнее, а уж как определить, что они переместились - вообще непонятно.Нет программа не следит за ярлыками она всеголиш организовывает ещё один поток explorera , по моим догадкам возможно даже не того пользователя который запустил её. ------------ Дoбавленo: конечно хотелось бы создать такое на hiasm не занимаясь обратной разработкой чужих программм ![]() |
|||
карма: 0 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
на сессию пользователя возможен только один запуск explorer. На не серверных ОС возможна только одна рабочая сессия пользователя в каждый момент времени
|
|||
карма: 27 |
|
Ответов: 1088
Рейтинг: 112
|
|||
Byuik, и чем эта тулза отличается от к примеру
![]() ![]() Есть кстате несколько 3D рабочих столов под XP... |
|||
карма: 0 |
|
Ответов: 2125
Рейтинг: 159
|
|||
Dilma писал(а): на сессию пользователя возможен только один запуск explorerНа самом деле запустить второй explorer можно: code_11398.txt Только потом начнутся вопросы: а как переключаться между ними? И т.д. и т.п. ![]() Если кто-то отважится запустить этот пример, имейте ввиду - чтобы закрыть эксплорер, его надо "убить" TaskManager-ом, а потом нужно "убить" и сам TaskManager, который был вызван на другом десктопе. Главное не ошибиться в выборе процесса ![]() Но можно и просто "разлогиниться", тогда закроются все приложения на всех десктопах. |
|||
карма: 1 |
| ||
файлы: 1 | code_11398.txt [1.7KB] [545] |
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
посмотрел эту программу(Ibdesk) и убедился, что запускать explorer дважды всетаки невозможно, о чем с самого начала и говорилось в теме. В коде code_11398 видимо все тоже самое делается. Это не создание нового потока - это создание какой-то виртуальной сессии на компе, после которой все запускаемые впоследствие программы принадлежат уже разным виртуальным средам. Проявляется это скажем на том, что стандартные комбинации через клавишу Win обрабатываются только первой копией Explorer(из основной сессии) и все запускаемые таким образом приложения(TaskMan, Run, Explorer и прочие) не видно до тех пор, пока не переключишся на первый десктоп. Если попробовать вывести список окон, то можно заметить, что и там присутствуют только те, которые были открыты именно с текущего десктопа и перетащить их никуда больше не получится.
Сделан же этот режим для использования удаленных терминалов(Remote desktop и Telnet) и не для чего больше. Правильно построенный виртуальный рабочий стол можно найти в примере из пакета WindowsVirtDesk.sha |
|||
карма: 27 |
|
Ответов: 2125
Рейтинг: 159
|
|||
Dilma писал(а): стандартные комбинации через клавишу Win обрабатываются только первой копией ExplorerЯсное дело, кто первый "хукнул", тот и обрабатывает. Вопрос был: как запустить второй эксплорер, я дал ответ. |
|||
карма: 1 |
|
Гость
Ответов: 17029
Рейтинг: 0
|
|||
Редактировалось 4 раз(а), последний 2025-01-20 13:18:51 |
|||
карма: 0 |
|
Ответов: 893
Рейтинг: 18
|
|||
Сори забыл залогинется на радостях . 192-6-113-92.pool.ukrtel это был я
|
|||
карма: 0 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
tsdima, если давать такие решения без просветления о сути происходящего так и будешь получать подобные вопросы
192-6-113-92.pool.ukrtel. писал(а): Как доделать точку hendle запущенного эксплорера для управления ним как окном ? |
|||
карма: 27 |
|
Ответов: 2125
Рейтинг: 159
|
|||
Byuik писал(а): У меня его к сожалению нетШутишь? Этот пример был сделан аж 1 мая 2005 года ![]() Правда, он работает только при наличии hook.dll, а эту DLL не все любят ![]() Byuik писал(а): для управления ним как окном ?Переключаться между десктопами можно только используя API SwitchDesktop, а показывать-скрывать окно тут уже не поможет, т.к. другой десктоп - это другой набор окон. По этой-же причине нельзя перетащить окно с одного десктопа на другой. А при использовании КОЛ-а вообще нельзя создать окно на другом десктопе, т.к. все дочерние окна принадлежат окну Applet-а. Единственный вариант - запустить твоё приложение ещё раз на другом десктопе (с параметром, чтобы после запуска были произведены другие действия). Кстати, все копии твоего приложения могут общаться через named pipes, первая копия создаст named pipe, а остальные будут его использовать. Тогда и параметр не нужен, если named pipe уже есть, то данная копия не главная. |
|||
карма: 1 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
ну может теперь смысл фразы
Dilma писал(а): Сделан же этот режим для использования удаленных терминалов и не для чего больше.станет наконец понятен... ![]() |
|||
карма: 27 |
|
Ответов: 893
Рейтинг: 18
|
|||
tsdima, нашол пример , нет он однозначно неподходит , нужен функционал такойже как ввыше приведённой тулзе.
tsdima писал(а): Переключаться между десктопами можно только используя API SwitchDesktop, а показывать-скрывать окно тут уже не поможетПонял что нельзя , ток как реализовать переключение через API SwitchDesktop ![]() ------------ Дoбавленo: Думаю естли зделать компонент доплнительный рабочий стол многие наверно егоб использовали . А перетаскивание программ с десктопа на десктоп мне вроди такого не требовалось , хотя лично на моей машине такая фича есть ![]() |
|||
карма: 0 |
|