Страницы: 1
RSS
Как открыть рабочий стол?, vba, winapi, CLSID, win7, Shell.windows
 
Как открыть рабочий стол? (vba, winapi, win7)
по какому адресу он находится?

в идеале бы получить CLSID
в реестре прописан "Desktop" ::{00021400-0000-0000-C000-000000000046}, но он никуда не ведёт
"file:///C:/Users/Admin/Desktop" открывает папку с рабочим столом (на картинке слева)
а нужно именно виндовый рабочий стол с уникальной иконкой (на картинке справа)


Изменено: KUDRIN - 01.08.2024 04:24:11
 
Уточнить бы еще какая из картинок какая :-).

explorer /root , "C:/Users/Admin/Desktop"
По вопросам из тем форума, личку не читаю.
 
Цитата
написал:
Уточнить бы еще какая из картинок какая :-).


пока никакими командами не удалось открыть три рабочих стола, только мышкой
Изменено: KUDRIN - 01.08.2024 09:51:04
 
что открывает explorer /root , "C:/Users/Admin/Desktop" ?
По вопросам из тем форума, личку не читаю.
 
Цитата
\root , "C:\Users\Admin\Desktop"
 
с каких пор vba код стал быть в курилке?
 
с
Цитата
KUDRIN написал:
с каких пор vba код стал быть в курилке?
с тех как вопрос связан с Excel только словом VBA.
По вопросам из тем форума, личку не читаю.
 
Код
CreateObject("Shell.Application").Namespace(0).Self.InvokeVerbEx
 
testuser, сработало

ниже:
обычная папка - это та которая не нужна (если вручную идти в мои документы\рабочий стол)
уникальная папка с синей иконкой - тот рабочий стол, который нужен - если тыкать на рабочий стол в боковом меню любой папки

1. если открыта "обычная" папка рабочий стол - то открывает всё равно новое окно с уникальной синей иконкой
2. если уже открыто хотя бы одно окно с уникальной иконкой - то активирует его
3. если открыто несколько окон с уникальной синей иконкой - то активирует самое раннее открытое
4. если не открыто ни одного окна с уникальной синей иконкой - то открывает новое нужное окно

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

нашлась только
Код
CreateObject("Shell.Application").Namespace(0).Self.InvokeVerbEx ("open")
но она работает аналогично - тоже только 1 окно открывает/активирует

а список команд;

Код
objFIV = CreateObject("Shell.Application").Namespace(0).Items().Verbs

не показывает ничего интересного в духе "new window"

Код
CreateObject("Shell.Application").Namespace(0).Self.InvokeVerbEx ("Explore")

не делает ничего

--

что интересно, в кавычках "CreateObject("Shell.Application").Namespace(0).Self.InvokeVerbEx" гуглится и яндексится только 1 результат

Изменено: KUDRIN - 02.08.2024 10:02:33
 
Цитата
KUDRIN написал:
и всё ещё - эта команда не может открыть 3 отдельных окна.
Вот эта комманда работает так как вам надо
https://learn.microsoft.com/ru-ru/windows/win32/shell/shell-explore
 
Цитата
testuser написал:
Вот эта комманда
да, Shell.Explore помогла
только если открыт рабочий стол через InvokeVerbEx, то Shell.Explore уже не откроет новое, а просто активирует.

1. если вручную открыто 3 рабочих стола, потом InvokeVerbEx откроет 4-ое окно (игнорируя ранее открытые), и Explore активирует это 4-ое окно
2. если вручную открыто 3 рабочих стола, и сразу Explore, то открываются новые окна
таким образом - у окна, открытого InvokeVerbEx , некий особый статус
Изменено: KUDRIN - 02.08.2024 18:49:50
Страницы: 1
Наверх