Uso del objeto Shell.Application
Crear objeto Shell var Shell = new ActiveXObject(Aplicación Shell
Usar propiedades y métodos de Shell
Shell ApplicationShell Parent
Shell); CascadeWindows()Shell TileHorizontally()Shell TileVertically()Shell ControlPanelItem(sDir) /* Por ejemplo, sysdm cpl */Shell EjectPC()Shell Explore(vDir)Shell Open(vDir)Shell FileRun()Shell FindComputer()Shell FindFiles( )Ayuda de Shell()Shell MinimizeAll()Shell UndoMinimizeALL()Shell RefreshMenu()Shell SetTime()Shell TrayProperties()Shell ShutdownWindows()Shell Suspend()oWindows = Shell Windows() /* Devolver objeto ShellWindows*/fFolder = Shell NameSpace (vDir ) /* Devuelve el objeto Carpeta del vDir abierto */oFolder = Shell BrowseForFolder(Hwnd sTitle iOptions [ vRootFolder]) /* Cuadro de diálogo Seleccionar carpeta *//*Función de ejemplo BrowseFolder(){var Message = Borrar carpeta seleccionada;
var Shell = new ActiveXObject( Aplicación Shell ); var Carpeta = Shell BrowseForFolder( Mensaje x x ); if(Carpeta != null){Carpeta = ems() // Devuelve el objeto FolderItems Carpeta = em; ( ); // Devolver carpeta objeto de elemento Carpeta = Ruta de carpeta; // Ruta de retorno if(Carpeta charAt(varFolder length) != \\ ){Folder = varFolder \\ ;}return Folder;}}*/
/*Ejemplo var Carpeta = Shell NameSpace(C:\\ //Devolver objeto Carpeta*/
Usar objeto Carpeta
[ oApplication = ] Carpeta Aplicación // Contiene el objeto Aplicación [ oParentFolder= ] Carpeta ParentFolder // Contiene el objeto Carpeta principal [ oTitle = ] Título de la carpeta // Contiene el título del
e carpeta
Carpeta CopyHere(vItem [ vOptions]) // Copia un elemento o elementos a una carpeta Folder MoveHere(vItem [ vOptions]) // Mueve un elemento o elementos a esta carpeta /*vItem: Requerido Especifica el elemento o elementos a mover. Puede ser una cadena que represente un nombre de archivo. Un objeto FolderItem o un objeto FolderItems. vOptions Opcional Especifica opciones para la operación de movimiento. Este valor puede ser cero o una combinación de los siguientes valores. Estos valores se basan en indicadores definidos para su uso con el miembro fFlags de la estructura C SHFILEOPSTRUCT. ¿Estos indicadores no están definidos como tales para Microsoft? ¿Visual Basic Scripting Edition (VBScript) o Microsoft JScript? equivalentes No mostrar un cuadro de diálogo de progreso Dar al archivo que se está operando un nuevo nombre en una operación de mover, copiar o cambiar el nombre si ya existe un archivo con el nombre de destino Responder con Sí a todos para cualquier cuadro de diálogo que se muestre Preservar la información de deshacer si es posible Realice la operación en archivos solo si se especifica un nombre de archivo comodín (* *) Muestra un cuadro de diálogo de progreso pero no muestra los nombres de los archivos No confirma la creación de un nuevo directorio si la operación requiere que se cree uno No muestra un interfaz de usuario si ocurre un error Versión No copiar los atributos de seguridad del archivo Operar solo en el directorio local No operar de forma recursiva i
nto subdirectorios Versión No mueve archivos conectados como un grupo Solo mueve los archivos especificados */
Folder NewFolder(bName) // Crea una nueva carpeta ppid = Folder ParseName(bName) // Crea y devuelve un FolderItem objeto que representa un elemento especificado /*bName: Obligatorio Una cadena que especifica el nombre del elemento */
oFolderItems = Folder Items() // Recupera un objeto FolderItems que representa la colección de elementos en la carpeta sDetail = Folder GetDetailsOf(vItem iColumn) // Recupera detalles sobre un elemento en una carpeta Por ejemplo, su tipo de tamaño o la hora de su última modificación /*vItem: Obligatorio Especifica el elemento para el cual recuperar la información. Debe ser un objeto FolderItem iColumn: Obligatorio Un valor entero que especifica la información que se recuperará La información disponible para un elemento depende de la carpeta en la que se muestra Este valor corresponde al número de columna basado en cero que se muestra en una vista Shell Para un elemento en el archivo sistema, este puede ser uno de los siguientes valores: Recupera el nombre del elemento Recupera el tamaño del elemento Recupera el tipo de elemento Recupera la fecha y hora en que se modificó el elemento por última vez Recupera los atributos del elemento Recupera la información de sugerencia para el elemento */
Usar objeto FolderItems
/*Ejemplo var FolderItems = Shell NameSpace(C:\\) Items() // Devolver objeto FolderItems*/
[ oApplication = ] Aplicación FolderItems[ iCount = ] FolderItems Count[ oParent = ] FolderItems Parent
oFolderItem = FolderItems Item([iIndex]) // Devuelve el objeto FolderItem
Usar objetos FolderItem
/*Ejemplo var FolderItem = Shell NameSpace(C:\\) Items() Item(iIndex); //?Return FolderItems object*/
[ oApplication = ] Aplicación FolderItem[ oParent = ] FolderItem Parent[ sName = ] Nombre de FolderItem(sName) [ = sName ][ sPath = ] Ruta de FolderItem[ iSize = ] Tamaño de FolderItem[ sType = ] Tipo de FolderItem[ bIsLink = ] FolderItem IsLink [ bIsFolder = ] FolderItem IsFolder[ bIsFileSystem = ] FolderItem IsFileSystem[ bIsBrowsable = ] FolderItem IsBrowsable[ oGetLink = ] FolderItem GetLink // Devuelve el objeto ShellLinkObject [ oGetFolder = ] FolderItem GetFolder // Devuelve el objeto Carpeta [ oModifyDate= ] FolderItem (oModifyDate) [ = oModifyDate ] // Establece o recupera la fecha y hora en que se modificó el elemento por última vez
vVerb = FolderItem Verbs() // Devuelve el objeto FolderItemVerbs Este objeto es la colección de verbos que se pueden ejecutar en el elemento FolderItem InvokeVerb ([vVerb]) // Ejecuta un verbo en el elemento
Usando el objeto FolderItemVerbs
/*Ejemplo var FolderItem = Shell NameSpace(C:\\) Items() Elemento (iIndex ) Verbs(); // Devuelve el objeto FolderItems*/
[ oApplication = ] FolderItemVerbs Application[ oParent = ] FolderItemVerbs Parent[ iCount = ] FolderItemVerbs Count
oVerb = FolderIte
mVerbs Item( [iIndex]) // Devolver objeto FolderItemVerb
Usar objeto FolderItemVerb
/*Ejemplo
var FolderItem = Shell NameSpace(C:\\) Items() Item(iIndex) Verbs() Item(iIndex); // Devolver objeto FolderItems*/
[ oApplication = ] FolderItemVerbs Aplicación[ oParent = ] FolderItemVerbs Parent[ oName = ] FolderItemVerbs Nombre
FolderItemVerb DoIt() // Ejecuta un verbo en el FolderItem asociado con el verbo
Usando el objeto ShellLinkObject
[ sWorkingDirectory = ]ShellLinkObject WorkingDirectory(sWorkingDirectory) [ = sWorkingDirectory ] [ intShowCommand = ]ShellLinkObject ShowCommand(intShowCommand)?[ = intShowCommand ]/*intShowCommand Entero que especifica o recibe el estado de presentación del enlace Este puede ser uno de los siguientes valores Activa y muestra una ventana Si la ventana está minimizada o maximizada el sistema lo restaura a su tamaño y posición originales Activa la ventana y la muestra como una ventana minimizada Activa la ventana y la muestra como una ventana maximizada */[ sArguments = ] ShellLinkObject Arguments(sArguments) [ = sArguments ][ sDescription = ] ShellLinkObject Descripción( sDescription) [ = sDescription ][ iHotkey = ] ShellLinkObject Hotkey(iHotkey) [ = iHotkey ]/*iHotkey Entero que especifica o recibe el código de tecla de acceso rápido del enlace El código de clave virtual está en el byte de orden inferior y los indicadores modificadores están en el byte de orden superior Las banderas modificadoras c
Puede ser una combinación de los siguientes valores Tecla MAYÚS Tecla CTRL Tecla ALT Tecla extendida */[ sPath = ] ShellLinkObject Path(sPath) [ = sPath ]
iIcon = ShellLinkObject GetIconLocation(sPath)ShellLinkObject Resolve( fFlags) /*fFlags Requerido Banderas que especifican la acción a tomar Esto puede ser una combinación de los siguientes valores No muestra un cuadro de diálogo si el vínculo no se puede resolver Cuando esta bandera está configurada, la palabra de orden superior de fFlags especifica ¿Una duración del tiempo de espera en milisegundos? El método regresa si el enlace no se puede resolver dentro del tiempo de espera. Si la palabra de orden superior se establece en cero, la duración del tiempo de espera predeterminada es milisegundos (segundos). Si el enlace ha cambiado, actualice su ruta y su lista. de identificadores No actualice la información del enlace No ejecute las heurísticas de búsqueda No utilice el seguimiento de enlaces distribuidos Deshabilite el seguimiento de enlaces distribuidos De forma predeterminada, el seguimiento de enlaces distribuidos rastrea los medios extraíbles en varios dispositivos según el nombre del volumen. También utiliza la Convención de nomenclatura universal (UNC) ruta para rastrear sistemas de archivos remotos cuya letra de unidad ha cambiado. Establecer este indicador deshabilita ambos tipos de seguimiento. Llamar al instalador de Windows */ShellLinkObject Save([sFile])ShellLinkObject SetIconLocation(sPath iIndex)/*sPath Required Valor de cadena que contiene el ruta de acceso completa del archivo que contiene el icono iIndex Entero requerido que está configurado en
el índice del icono en el archivo especificado por sPath */
Usando el objeto ShellWindows [ intCount = ] ShellWindows Count
oShellWindows = ShellWindows _NewEnum() // Crea y devuelve un nuevo? Objeto ShellWindows que es una copia de este objeto ShellWindows oFolder = ShellWindows Item( [iIndex]) // Recupera un objeto de InternetExplorer que representa la ventana Shell
Descripción Crea el objeto Shell y realiza llamadas a funciones relacionadas a través del primero paso Puede devolver los diversos objetos anteriores y realizar operaciones relacionadas. Además, durante el proceso de aprendizaje, encontré dos funciones no relacionadas ShellApp ShellExecute( cmd exe ); pero no relacionado. /*vVerb: como eliminar*/
También hay algunos usos especiales //var myprinterfolder = Shell NameSpace( shell: PrintersFolder); //var mydocsfolder = Shell NameSpace( shell: personal); //var mypfolder = Shell NameSpace( shell: drivefolder );
//Shell ShellExecute( wiaacmgr exe /SelectDevice ) //Shell exe shell dll Control_RunDLL sysdm cpl ); ShellExecute( rundll exe shell dll Control_RunDLL netcpl cpl ); //Shell ShellExecute( rundll exe shell dll Control_RunDLL sysdm cpl
El siguiente comando ejecutará Rundll exe Rundll exe lt;dllnamegt;entrypointgt; ;argumentos opcionalesgt;
p>
El siguiente ejemplo de código muestra cómo utilizar el comando Rundll exe Setupx dll InstallHinfSection C:\Windows\Inf\Shell inf
//Shell ShowBrowserBar( {C EE F D BE C A C A DA } true );
Realmente no sé cuántas llamadas a funciones no reveladas hay, ¡pero lo que msdn nos da es solo una gota en el cubo! >
Usar Shell U
Objeto IHelper
ShellUI = new ActiveXObject( Shell UIHelper );
ShellUI AddChannel(sURL)ShellUI AddFavorite(sURL [vTitle])bBool = ShellUI IsSubscribed(sURL) // Indica si o ¿No es una URL? Está suscrito a ShellUI AddDesktopComponent(sURL sType [ Izquierda] [ Arriba] [ Ancho] [ Alto])/*sURL Obligatorio Un valor de cadena que especifica la URL del nuevo elemento favorito sType Obligatorio Un valor de cadena que especifica el tipo del elemento que se agrega Este puede ser uno de los siguientes valores: imagen El componente es un sitio web de imágenes El componente es un sitio web
Left Opcional Especifica la posición del borde izquierdo del componente en las coordenadas de la pantalla Top Opcional Especifica la posición del borde superior del componente en coordenadas de pantalla Ancho Opcional Especifica el ancho del componente en unidades de pantalla Alto Opcional Especifica la altura del componente en unidades de pantalla */
Rundll exe User exe ExitWindows
Función FileSearch() { SearchAsst = nuevo ActiveXObject( SearchAssistantOC SearchAssistantOC ); SearchAsst FindFilesOrFolders(); //ShellApp = nuevo ActiveXObject( Aplicación Shell ); //ShellApp ShowBrowserBar( {C EE F D BE C A C A DA } verdadero); ); //Mismo efecto que el anterior}
Función PersonSearch() { SearchAsst = new ActiveXObject( SearchAssistantOC SearchAssistantOC ); SearchAsst FindPeople() }
función ShellExecuteExe() { ShellApp =; nuevo ActiveXObject (aplicación Shell);
//var myprinterfolder = shell NameSpace( shell: PrintersFolder); //var mydocsfolder = shell NameSpace( shell: personal); //var mypfolder = shell NameSpace( shell: drivefolder
//ShellApp ShowBrowserBar); ( {C EE F D BE C A C A DA } verdadero);
ShellApp ShellExecute( cmd exe
//ShellApp ShellExecute( wiaacmgr exe /SelectDevice ); exe shell dll Control_RunDLL sysdm cpl ) //ShellApp ShellExecute( rundll exe shell dll Control_RunDLLnetcpl cpl ); //ShellApp ShellExecute( rundll exe shell dll Control_RunDLL sysdm cpl
//Puedes usar el método InvokeVerbEx para FolderItems; objetos //ShellApp NameSpace( c:\\xxx ) Items() InvokeVerbEx( eliminar ); // Se puede acceder a un comando a través de InvokeVerb(x Items() Item( ) Verbs() Item(i) Nombre // win); = ShellApp NameSpace( c:\\xxx ) Items() Item( ) // e = win Verbs() // for(i= ;ilt;e Count;i){ // documento writeln(e Item(i) Nombre); // } // ganar InvokeVerb(e Elemento( ) Nombre); =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ =~=~=~ // // BindToSA // // Vincula a la URL especificada y devuelve el objeto cdo para ella // function BindToSA(szURL){ var adModeRead = var oDoc = new ActiveXObject( CDO KnowledgeStartAddress ) oDoc DataSource; Open(szURL null adModeRead ) return oDoc;
//=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~= ~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ // / /BindToUrl // // Vincular al spe
URL especificada y devuelve el objeto cdo // function BindToUrl(szURL){ var adModeRead = ; var oDoc = new ActiveXObject( CDO KnowledgeDocument ) oDoc DataSource Open(szURL null adModeRead ) return oDoc }
función; Msg(str){ //lt; id de objeto=FolderControl classid= clsid: e fd ad d da c f f gt; //var FolderControl = new ActiveXObject( Tahoe FolderControl TraceMsg(str); > ShellApp = new ActiveXObject( Aplicación Shell ); //ShellApp ShowBrowserBar( {C EE F D BE C A C A DA } verdadero
//ShellApp ShellExecute( Rundll exe shell dll SHCreateLocalServerRunDll { ac dc a eb bf ee e bfb} );
//ShellApp ShellExecute( Rundll exe shdocvw dll OpenURL ); //Atajo de Internet //ShellApp ShellExecute( Rundll exe msconf dll OpenConfLink ); zipfldr dll RouteTheCall ); //Carpeta comprimida shdocvw dll OpenURL //ShellApp ShellExecute( Rundll exe netplwiz dll UsersRunDll ); //Cuenta de usuario //ShellApp ShellExecute( Rundll exe shell dll Options_RunDLL ); exe shell dll Options_RunDLL // Muestra la barra de tareas y el menú de inicio
//ShellApp ShellExecute( rundll exe shell dll Control_RunDLL sysdm cpl) appwiz cpl NewLinkHere //ShellApp ShellExecute( rundll exe shell dll Control_RunDLLAsUser ) p>
//ShellUI = nuevo ActiveXObject( Shell UIHelper ); //ShellUI AddFavorite( MSDN ) //ShellUI AddChannel( )
ShellApp Shell
Ejecutar( c:\\windows\\system \\mshta exe C:\\xx hta )
//var s = ShellApp ShellExecute( rundll exe kernel dll GetVersionExA so); neto/201311/13008