Форум » [x]Harbour » Как открыть диск C » Ответить

Как открыть диск C

fil: Как можно изобразить командную строку открытия диска C: или, скажем, Мой компьютер ?

Ответов - 10

Andrey: fil пишет: изобразить командную строку открытия диска C: Не понятен вопрос. fil пишет: Мой компьютер ? Для хХарбора переделал из МиниГуи: #define CSIDL_DESKTOP 0x0000 // <desktop> #define CSIDL_INTERNET 0x0001 // Internet Explorer (icon on desktop) #define CSIDL_PROGRAMS 0x0002 // Start Menu\Programs #define CSIDL_CONTROLS 0x0003 // My Computer\Control Panel #define CSIDL_PRINTERS 0x0004 // My Computer\Printers #define CSIDL_PERSONAL 0x0005 // My Documents #define CSIDL_FAVORITES 0x0006 // <user name>\Favorites #define CSIDL_STARTUP 0x0007 // Start Menu\Programs\Startup #define CSIDL_RECENT 0x0008 // <user name>\Recent #define CSIDL_SENDTO 0x0009 // <user name>\SendTo #define CSIDL_BITBUCKET 0x000a // <desktop>\Recycle Bin #define CSIDL_STARTMENU 0x000b // <user name>\Start Menu #define CSIDL_DESKTOPDIRECTORY 0x0010 // <user name>\Desktop #define CSIDL_DRIVES 0x0011 // My Computer #define CSIDL_NETWORK 0x0012 // Network Neighborhood #define CSIDL_NETHOOD 0x0013 // <user name>\nethood #define CSIDL_FONTS 0x0014 // windows\fonts #define CSIDL_TEMPLATES 0x0015 #define CSIDL_COMMON_STARTMENU 0x0016 // All Users\Start Menu #define CSIDL_COMMON_PROGRAMS 0X0017 // All Users\Programs #define CSIDL_COMMON_STARTUP 0x0018 // All Users\Startup #define CSIDL_COMMON_DESKTOPDIRECTORY 0x0019 // All Users\Desktop #define CSIDL_APPDATA 0x001a // <user name>\Application Data #define CSIDL_PRINTHOOD 0x001b // <user name>\PrintHood #define CSIDL_LOCAL_APPDATA 0x001c // <user name>\Local Settings\Applicaiton Data (non roaming) #define CSIDL_ALTSTARTUP 0x001d // non localized startup #define CSIDL_COMMON_ALTSTARTUP 0x001e // non localized common startup #define CSIDL_COMMON_FAVORITES 0x001f #define CSIDL_INTERNET_CACHE 0x0020 #define CSIDL_COOKIES 0x0021 #define CSIDL_HISTORY 0x0022 #define CSIDL_COMMON_APPDATA 0x0023 // All Users\Application Data #define CSIDL_WINDOWS 0x0024 // GetWindowsDirectory() #define CSIDL_SYSTEM 0x0025 // GetSystemDirectory() #define CSIDL_PROGRAM_FILES 0x0026 // C:\Program Files #define CSIDL_MYPICTURES 0x0027 // C:\Program Files\My Pictures #define CSIDL_PROFILE 0x0028 // USERPROFILE #define CSIDL_SYSTEMX86 0x0029 // x86 system directory on RISC #define CSIDL_PROGRAM_FILESX86 0x002a // x86 C:\Program Files on RISC #define CSIDL_PROGRAM_FILES_COMMON 0x002b // C:\Program Files\Common #define CSIDL_PROGRAM_FILES_COMMONX86 0x002c // x86 Program Files\Common on RISC #define CSIDL_COMMON_TEMPLATES 0x002d // All Users\Templates #define CSIDL_COMMON_DOCUMENTS 0x002e // All Users\Documents #define CSIDL_COMMON_ADMINTOOLS 0x002f // All Users\Start Menu\Programs\Administrative Tools #define CSIDL_ADMINTOOLS 0x0030 // <user name>\Start Menu\Programs\Administrative Tools #define CSIDL_CONNECTIONS 0x0031 // Network and Dial-up Connections #define CSIDL_FLAG_CREATE 0x8000 // combine with CSIDL_ value to force folder creation in SHGetFolderPath() #define CSIDL_FLAG_DONT_VERIFY 0x4000 // combine with CSIDL_ value to return an unverified folder path #define CSIDL_FLAG_MASK 0xFF00 // mask for all possible flag values FUNCTION MAIN() REQUEST HB_CODEPAGE_RU866 hb_SetCodepage( "RU866" ) REQUEST HB_LANG_RU866 HB_LANGSELECT("RU866") FileApisToAnsiOrOem( .T. ) CLEAR SCREEN ? "GetWindowsDirectory()=",C_getspecialfolder(CSIDL_WINDOWS) ? "GetSystemDirectory() =",C_getspecialfolder(CSIDL_SYSTEM) ? "My Computer = ",C_getspecialfolder(CSIDL_DRIVES) ? "My Computer\Printers =",C_getspecialfolder(CSIDL_PRINTERS) ? "<user name>\PrintHood =",C_getspecialfolder(CSIDL_PRINTHOOD) ? "All Users\Templates =",C_getspecialfolder(CSIDL_COMMON_TEMPLATES) ? "All Users\Documents =",C_getspecialfolder(CSIDL_COMMON_DOCUMENTS) ? "All Users\Start Menu =",C_getspecialfolder(CSIDL_COMMON_STARTMENU) ? "All Users\Programs =",C_getspecialfolder(CSIDL_COMMON_PROGRAMS) ? "All Users\Startup =",C_getspecialfolder(CSIDL_COMMON_STARTUP) ? "All Users\Desktop =",HB_ANSITOOEM(C_getspecialfolder(CSIDL_COMMON_DESKTOPDIRECTORY)) //? "CSIDL_TEMPLATES = ", C_getspecialfolder(CSIDL_TEMPLATES) ? "TEMP_USER = ", C_getspecialfolder(0x0028)+"\Local Settings\Temp\ABONENT4" ? "USERPROFILE = ", C_getspecialfolder(CSIDL_PROFILE) RETURN NIL #pragma BEGINDUMP // из минигуи #include <windows.h> #include <hbapi.h> #include <shlobj.h> HB_FUNC( C_GETSPECIALFOLDER ) // Contributed By Ryszard Ry№ko { char *lpBuffer = (char*) hb_xgrab( MAX_PATH+1); LPITEMIDLIST pidlBrowse; // PIDL selected by user SHGetSpecialFolderLocation(GetActiveWindow(), hb_parni(1), &pidlBrowse) ; SHGetPathFromIDList(pidlBrowse, lpBuffer); hb_retc(lpBuffer); hb_xfree( lpBuffer); } #pragma ENDDUMP FUNCTION FileApisToAnsiOrOem( lAnsi ) LOCAL lRetVal := AreFileApisANSI() If lAnsi <> Nil If lAnsi SetFileApisToANSI() Else SetFileApisToOEM() EndIF EndIF RETURN lRetVal // ----------------------------------------------------------------- #pragma BEGINDUMP #include <windows.h> #include "hbapi.h" HB_FUNC( SETFILEAPISTOANSI ) { SetFileApisToANSI(); } HB_FUNC( SETFILEAPISTOOEM ) { SetFileApisToOEM(); } HB_FUNC( AREFILEAPISANSI ) { hb_retl( AreFileApisANSI() ); } #pragma ENDDUMP // -----------------------------------------------------------------

fil: Все делается одной строчкой через ShellExecute

gfilatov2002: fil пишет: одной строчкой через ShellExecute Когда-то делал так: ShellExecute( NIL, "open", "Explorer.exe", "::{20D04FE0-3AEA-1069-A2D8-08002B30309D}", ,1) Это точно работает под Win98 и WinXP


fil: И под 7-й тож.

fil: А можно ли: 1. найти хендл открываемого виндового окна дабы встроить его свое окно(заголовка-то нет) 2. установливать тип визуализируемой инфы в этом окне (типа таблица или значки)

fil: Хендлы системных окон нахожу и встраиваю в свое окно. А вот изменить эти окна(в смысле удалить ToolBar или сменить тип окна) не получается

fil: Приветствую ! Как в W7/8 можно открыть окно "Центр управления сетями и общим доступом" ? (в идеале не открывать окна и нажимать кнопки, а сразу запустить диагностику той или иной сети)

Dima: control.exe /name Microsoft.NetworkAndSharingCenter

PSP: fil пишет: а сразу запустить диагностику той или иной сети Расшифруй ))

fil: Спасибо Dima. Работает. Я это окно разберу по контролам, кликну на нужный эзернет, дабы вызвать окно параметров, и далее кликну на Диагностику



полная версия страницы