电脑故障

位置:IT落伍者 >> 电脑故障 >> 浏览文章

Shell.Application对象使用


发布日期:2021/12/8
 

创建 Shell 对象

var Shell = new ActiveXObject(ShellApplication);

使用 Shell 属性及方法

ShellApplication

ShellParent

ShellCascadeWindows()

ShellTileHorizontally()

ShellTileVertically()

ShellControlPanelItem(sDir) /* 比如sysdmcpl */

ShellEjectPC()

ShellExplore(vDir)

ShellOpen(vDir)

ShellFileRun()

ShellFindComputer()

ShellFindFiles()

ShellHelp()

ShellMinimizeAll()

ShellUndoMinimizeALL()

ShellRefreshMenu()

ShellSetTime()

ShellTrayProperties()

ShellShutdownWindows()

ShellSuspend()

oWindows = ShellWindows() /* 返回ShellWindows对象 */

fFolder = ShellNameSpace(vDir) /* 返回所打开的vDir的Folder对象 */

oFolder = ShellBrowseForFolder(Hwnd sTitle iOptions [ vRootFolder]) /* 选择文件夹对话框 */

/*示例

function BrowseFolder()

{

var Message = 清选择文件夹;

var Shell = new ActiveXObject( ShellApplication );

var Folder = ShellBrowseForFolder(Messagexx);

if(Folder != null)

{

Folder = ems(); // 返回 FolderItems 对象

Folder = em(); // 返回 Folderitem 对象

Folder = FolderPath; // 返回路径

if(FoldercharAt(varFolderlength) != \\){

Folder = varFolder + \\;

}

return Folder;

}

}

*/

/*示例

var Folder = ShellNameSpace(C:\\); // 返回 Folder对象

*/

使用 Folder 对象

[ oApplication = ] FolderApplication // Contains the Application object

[ oParentFolder= ] FolderParentFolder // Contains the parent Folder object

[ oTitle = ] FolderTitle // Contains the title of the folder

FolderCopyHere(vItem [ vOptions]) // Copies an item or items to a folder

FolderMoveHere(vItem [ vOptions]) // Moves an item or items to this folder

/*

vItem: Required Specifies the item or items to move This can be a string that represents a file name a FolderItem object or a FolderItems object

vOptions Optional Specifies options for the move operation This value can be zero or a

combination of the following values These values are based upon flags defined for use with the

fFlags member of the C++ SHFILEOPSTRUCT structure These flags are not defined as such for

Microsoft? Visual Basic? Visual Basic Scripting Edition (VBScript) or Microsoft JScript? so you

must define them yourself or use their numeric equivalents

Do not display a progress dialog box

Give the file being operated on a new name in a move copy or rename operation if a file with

the target name already exists

Respond with Yes to All for any dialog box that is displayed

Preserve undo information if possible

Perform the operation on files only if a wildcard file name (**) is specified

Display a progress dialog box but do not show the file names

Do not confirm the creation of a new directory if the operation requires one to be created

Do not display a user interface if an error occurs

Version Do not copy the security attributes of the file

Only operate in the local directory Dont operate recursively into subdirectories

Version Do not move connected files as a group Only move the specified files

*/

FolderNewFolder(bName) // Creates a new folder

ppid = FolderParseName(bName) // Creates and returns a FolderItem object that represents a specified item

/*

bName: Required A string that specifies the name of the item

*/

oFolderItems = FolderItems() // Retrieves a FolderItems object that represents the collection of items in the folder

sDetail = FolderGetDetailsOf(vItem iColumn) // Retrieves details about an item in a folder For example its size type or the time of its last modification

/*

vItem: Required Specifies the item for which to retrieve the information This must be a FolderItem object

iColumn: Required An Integer value that specifies the information to be retrieved The

information available for an item depends on the folder in which it is displayed This value

corresponds to the zerobased column number that is displayed in a Shell view For an item in the

file system this can be one of the following values: Retrieves the name of the item

Retrieves the size of the item

Retrieves the type of the item

Retrieves the date and time that the item was last modified

Retrieves the attributes of the item

Retrieves the info tip information for the item

*/

使用 FolderItems 对象

/*示例

var FolderItems = ShellNameSpace(C:\\)Items(); // 返回 FolderItems 对象

*/

[ oApplication = ] FolderItemsApplication

[ iCount = ] FolderItemsCount

[ oParent = ] FolderItemsParent

oFolderItem = FolderItemsItem([iIndex]) // 返回 FolderItem 对象

使用 FolderItem 对象

/*示例

var FolderItem = ShellNameSpace(C:\\)Items()Item(iIndex); //

返回 FolderItems 对象

*/

[ oApplication = ] FolderItemApplication

[ oParent = ] FolderItemParent

[ sName = ] FolderItemName(sName) [ = sName ]

[ sPath = ] FolderItemPath

[ iSize = ] FolderItemSize

[ sType = ] FolderItemType

[ bIsLink = ] FolderItemIsLink

[ bIsFolder = ] FolderItemIsFolder

[ bIsFileSystem = ] FolderItemIsFileSystem

[ bIsBrowsable = ] FolderItemIsBrowsable

[ oGetLink = ] FolderItemGetLink // 返回 ShellLinkObject 对象

[ oGetFolder = ] FolderItemGetFolder // 返回 Folder 对象

[ oModifyDate= ] FolderItemModifyDate(oModifyDate) [ = oModifyDate ] // Sets or retrieves the date and time that the item was last modified

vVerb = FolderItemVerbs() // 返回 FolderItemVerbs 对象 This obj

ect is the collection of verbs

that can be executed on the item

FolderItemInvokeVerb( [vVerb]) // Executes a verb on the item

使用 FolderItemVerbs 对象

/*示例

var FolderItem = ShellNameSpace(C:\\)Items()Item(iIndex)Verbs(); // 返回 FolderItems 对象

*/

[ oApplication = ] FolderItemVerbsApplication

[ oParent = ] FolderItemVerbsParent

[ iCount = ] FolderItemVerbsCount

oVerb = FolderItemVerbsItem( [iIndex]) // 返回 FolderItemVerb 对象

使用 FolderItemVerb 对象

/*示例

var FolderItem = ShellNameSpace(C:\\)Items()Item(iIndex)

Verbs()Item(iIndex); // 返回 FolderItems 对象

*/

[ oApplication = ] FolderItemVerbsApplication

[ oParent = ] FolderItemVerbsParent

[ oName = ] FolderItemVerbsName

FolderItemVerbDoIt() // Executes a verb on the FolderItem as

sociated with the verb

使用 ShellLinkObject 对象

[ sWorkingDirectory = ]ShellLinkObjectWorkingDirectory(sWork

ingDirectory) [ = sWorkingDirectory ]

[ intShowCommand = ]ShellLinkObjectShowCommand(intShowCommand)

[ = intShowCommand ]

/*

intShowCommand Integer that specifies or receives the links s

how state This can be one of the

following values

Activates and displays a window If the window is minimized

or maximized the system restores

it to its original size and position

Activates the window and displays it as a minimized window

Activates the window and displays it as a maximized window

*/

[ sArguments = ] ShellLinkObjectArguments(sArguments) [ = sArguments ]

[ sDescription = ] ShellLinkObjectDescription(sDescription) [ = sDescription ]

[ iHotkey = ] ShellLinkObjectHotkey(iHotkey) [ = iHotkey ]

/*

iHotkey Integer that specifies or receives the links hot key

code The virtual key code is in

the loworder byte and the modifier flags are in the higho

rder byte The modifier flags can be a

combination of the following values

SHIFT key

CTRL key

ALT key

Extended key

*/

[ sPath = ] ShellLinkObjectPath(sPath) [ = sPath ]

iIcon = ShellLinkObjectGetIconLocation(sPath)

ShellLinkObjectResolve(fFlags)

/*

fFlags Required Flags that specify the action to be taken This can

be a combination of the following values

Do not display a dialog box if the link cannot be resolved When

this flag is set the high

order word of fFlags specifies a timeout duration in milliseconds

The method returns if the link

cannot be resolved within the timeout duration If the highorder

word is set to zero the timeout

duration defaults to milliseconds ( seconds)

If the link has changed update its path and list of identifiers

Do not update the link information

Do not execute the search heuristics

Do not use distributed link tracking

Disable distributed link tracking By default distributed link tracking tracks removable

media across multiple devices based on the volume name It also use

s the Universal Naming Convention

(UNC) path to track remote file systems whose drive letter has cha

ged Setting this flag disables

both types of tracking

Call the Microsoft? Windows? Installer

*/

ShellLinkObjectSave( [sFile])

ShellLinkObjectSetIconLocation(sPath iIndex)

/*

sPath Required String value that contains the fully qualified path

of the file that contains the icon

iIndex Required Integer that is set to the index of the icon in the

file specified by sPath

*/

使用 ShellWindows 对象

[ intCount = ] ShellWindowsCount

oShellWindows = ShellWindows_NewEnum() // Creates and returns a new

ShellWindows object that is a copy of this ShellWindows object

oFolder = ShellWindowsItem( [iIndex]) // Retrieves an InternetE

xplorer object that represents the Shell window

说明

通过第一步创建 Shell 对象并进行相关函数调用就可以返回以上各种对象并进行相关操作

另外在学习的过程中发现了两个在msdn中提及却没相关的函数

ShellAppShellExecute(cmdexe);

ShellAppNameSpace(vDir)Items()InvokeVerbEx(vVerb); /*vVerb:如delete*/

还有些特殊的用法

//var myprinterfolder = ShellNameSpace(shell:PrintersFolder);

//var mydocsfolder = ShellNameSpace(shell:personal);

//var mycompfolder = ShellNameSpace(shell:drivefolder);

//ShellShellExecute( wiaacmgrexe/SelectDevice );

//ShellShellExecute( rundllexe shelldllControl_RunDLL

sysdmcpl )

//ShellShellExecute( rundllexe shelldllControl_RunDLL

netcplcpl );

//ShellShellExecute( rundllexe shelldllControl_RunDLL

sysdmcpl );

The following command will run Rundllexe

Rundllexe <dllname><entrypoint><optional arguments>

The following code sample shows how to use the command

Rundllexe SetupxdllInstallHinfSection C:\Windows\Inf\Shellinf

//ShellShowBrowserBar({CEEFDBECACADA} true);

真不知道没有公开的函数调用还有多少而msdn给我们的使用的只是九牛一毛而已!

使用 ShellUIHelper 对象

ShellUI = new ActiveXObject(ShellUIHelper);

ShellUIAddChannel(sURL)

ShellUIAddFavorite(sURL [ vTitle])

bBool = ShellUIIsSubscribed(sURL) // Indicates whether or not a URL

is subscribed to

ShellUIAddDesktopComponent(sURL sType [ Left] [ Top] [ Width]

[ Height])

/*

sURL Required A String value that specifies the URL of the new favorite item

sType Required A String value that specifies the type of item being

added This can be one of the following values:

image The component is an image

website The component is a web site

Left Optional Specifies the position of the left edge of the com

ponent in screen coordinates

Top Optional Specifies the position of the top edge of the componen

t in screen coordinates

Width Optional Specifies the width of the component in screen units

Height Optional Specifies the height of the component in screen units

*/

Rundll exe UserexeExitWindows

function FileSearch()

{

SearchAsst = new ActiveXObject(SearchAssistantOCSearchAssistantOC);

SearchAsstFindFilesOrFolders();

//ShellApp = new ActiveXObject(ShellApplication);

//ShellAppShowBrowserBar({CEEFDBECACADA} true);

//与上效果相同

}

function PersonSearch()

{

SearchAsst = new ActiveXObject(SearchAssistantOCSearchAssistantOC);

SearchAsstFindPeople();

}

function ShellExecuteExe()

{

ShellApp = new ActiveXObject(ShellApplication);

//var myprinterfolder = shellNameSpace(shell:PrintersFolder);

//var mydocsfolder = shellNameSpace(shell:personal);

//var mycompfolder = shellNameSpace(shell:drivefolder);

//ShellAppShowBrowserBar({CEEFDBECACADA} true);

ShellAppShellExecute(cmdexe);

//ShellAppShellExecute(wiaacmgrexe/SelectDevice);

//ShellAppShellExecute(rundllexe shelldllControl_RunDLL

sysdmcpl)

//ShellAppShellExecute(rundllexe shelldllControl_RunDLL

netcplcpl);

//ShellAppShellExecute(rundllexe shelldllControl_RunDLL

sysdmcpl);

//对于FolderItems对象可以用InvokeVerbEx Method

//ShellAppNameSpace(c:\\xxx)Items()InvokeVerbEx(delete);

//而通过InvokeVerb(xItems()Item()Verbs()Item(i)Name);可以访问某个命令

// win = ShellAppNameSpace(c:\\xxx)Items()Item()

// e = winVerbs();

// for(i=;i<eCount;i++){

// documentwriteln(eItem(i)Name);

// }

// winInvokeVerb(eItem()Name);

}

//=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~

//

// BindToSA

//

// Bind to the specified url and return the cdo object for it

//

function BindToSA(szURL){

var adModeRead = ;

var oDoc = new ActiveXObject(CDOKnowledgeStartAddress)

oDocDataSourceOpen(szURL null adModeRead )

return oDoc;

}

//=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~

//

// BindToUrl

//

// Bind to the specified url and return the cdo object for it

//

function BindToUrl(szURL){

var adModeRead = ;

var oDoc = new ActiveXObject(CDOKnowledgeDocument)

oDocDataSourceOpen(szURL null adModeRead )

return oDoc;

}

function Msg(str){

//<object id=FolderControl classid=clsid:efdadddacff >

//var FolderControl = new ActiveXObject(TahoeFolderControl);

FolderControlTraceMsg(str);

}

ShellApp = new ActiveXObject(ShellApplication);

//ShellAppShowBrowserBar({CEEFDBECACADA} true);

//ShellAppShellExecute(RundllexeshelldllSHCreateLocalServerRunDll

{acdcaebbfeeebfb});

//ShellAppShellExecute(RundllexeshdocvwdllOpenURL);//Internet 快捷方式

//ShellAppShellExecute(RundllexemsconfdllOpenConfLink);//SpeedDial

//ShellAppShellExecute(RundllexezipfldrdllRouteTheCall);//压缩文件夹shdocvwdllOpenURL

//ShellAppShellExecute(RundllexenetplwizdllUsersRunDll);//用户帐户

//ShellAppShellExecute(RundllexeshelldllOptions_RunDLL

);//文件夹选项

//ShellAppShellExecute(RundllexeshelldllOptions_RunDLL

);//显示任务栏和开始菜单

//ShellAppShellExecute(rundllexe shelldllControl_RunDLL sysdmcpl)appwizcplNewLinkHere

//ShellAppShellExecute(rundllexe shelldllControl_RunDLLAsUser)

//ShellUI = new ActiveXObject(ShellUIHelper);

//ShellUIAddFavorite(MSDN)

//ShellUIAddChannel()

ShellAppShellExecute(c:\\windows\\system\\mshtaexeC:\\xxhta)

//var s = ShellAppShellExecute(rundllexe kerneldllGetVersionExA++so);

/*var p = C:\\

sha = new ActiveXObject(ShellApplication);

var g = shaNameSpace(p)Items()Item(xxx);

var v = gVerbs();

var str=null;

for(i=;i<vCount;i++){

str = em(i)Name;

if(strsearch(重命名)!=)break;

str = null

}

if(str)

gInvokeVerbEx(strc:\\xx);

else

alert(no)

//gInvokeVerbEx(重命名xx);

*/

上一篇:mvc api 流程图

下一篇:WPF:图像处理(四)大津法