WIN API
От: elar  
Дата: 14.10.04 13:24
Оценка:
Как запустить "My computer" и "Recycle Bin" из другого приложения? Заранее благодарен.
Re: WIN API
От: unintruder  
Дата: 15.10.04 10:09
Оценка: -1
Здравствуйте, elar, Вы писали:

E>Как запустить "My computer" и "Recycle Bin" из другого приложения? Заранее благодарен.


можно тупо послать Win + E для "My Computer"
Re: WIN API
От: MicVit  
Дата: 15.10.04 11:18
Оценка: 1 (1)
Здравствуйте, elar, Вы писали:

E>Как запустить "My computer" и "Recycle Bin" из другого приложения? Заранее благодарен.


"My computer" откроется, если запустить explorer.exe.
Т.е., например:


CString strPath;
BOOL b = SHGetSpecialFolderPath(
        AfxGetMainWnd()->GetSafeHwnd(),
        strPath.GetBuffer(MAX_PATH),
        CSIDL_WINDOWS,
        FALSE);
        
m_strCommandLine = strPath;
strPath.ReleaseBuffer();
CString strCommandLine = strPath + _T("\explorer.exe");
BOOL bRes = CreateProcess(NULL, strCommandLine.GetBuffer(0), NULL, NULL, TRUE, CREATE_DEFAULT_ERROR_MODE, GetEnvironmentStrings(), NULL, &StartupInfo, &ProcessInformation);


Про Recycle Bin не знаю, но может это поможет:
http://www.codeproject.com/shell/recyclebin.asp
http://www.rsdn.ru/article/winshell/winshell.xml
Автор(ы): Акжан Абдулин
Дата: 17 апреля 2001 г.

"В операционных системах компании Microsoft с 1995 года используется новая
оболочка, построенная на основе компонентной объектной модели. Одним из
нововведений оболочки операционной системы стало понятие пространства имён
оболочки"...
Как открыть окна My computer или Recycle Bin?
От: Andrew S Россия http://alchemy-lab.com
Дата: 15.10.04 11:20
Оценка: 6 (2) +1
#Имя: FAQ.winapi.showspecfolder
E>Как запустить "My computer" и "Recycle Bin" из другого приложения? Заранее благодарен.

Использовать ShellExecuteEx, либо реализовать самому IShellBrowser и через IShellFolder\IShellView создать новое окно.
Первый вариант проще:
        SHELLEXECUTEINFO se;
        
        SHGetSpecialFolderLocation(NULL,CSIDL_DRIVES, &lst);
        
        ZeroMemory(&se, sizeof(se));
        se.cbSize = sizeof(se);
        se.fMask = SEE_MASK_IDLIST;
        se.hwnd = NULL;
        se.lpVerb = "open";
        se.nShow = SW_SHOW;
        se.lpIDList = lst;
        ShellExecuteEx(&se);
        CoTaskMemFree(lst);
http://www.rusyaz.ru/pr — стараемся писАть по-русски
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.