使用Shell.Application技术之二 (转)

使用Shell.Application技术之二 (转)[@more@]

 function FileSearch()
 {
 SearchAsst = new ActiveXobject("SearchAssistantOC.SearchAssistantOC");
  SearchAsst.FindFilesOrFolders();

  //shellApp = new ActiveXObject("Shell.Application");
 //ShellApp.ShowBrowserBar("{C4EE31F3-4768-11D2-BE5C-00A0C9A83DA1}", true);
 //与上效果相同
 }

 function PersonSearch()
 {
  SearchAsst = new ActiveXObject("SearchAssistantOC.SearchAssistantOC");
  SearchAsst.FindPeople();
 }

 function ShellExecuteExe()
 { 
  ShellApp = new ActiveXObject("Shell.Application");

  //var myprinterfolder = shell.NameSpace("shell:Printersfolder");
  //var mydocsfolder = shell.NameSpace("shell:personal");
  //var mycompfolder = shell.NameSpace("shell:drivefolder");


 //ShellApp.ShowBrowserBar("{C4EE31F3-4768-11D2-BE5C-00A0C9A83DA1}", true);

  ShellApp.ShellExecute("cmd.exe");

   //ShellApp.ShellExecute("wiaacmgr.exe","/selectDevice");
 //ShellApp.ShellExecute("rundll32.exe", "shell32.dll,Control_RunDLL sysdm.cpl,,1")
 //ShellApp.ShellExecute("rundll32.exe", "shell32.dll,Control_RunDLL.NETcpl.cpl,,1");
 //ShellApp.ShellExecute("rundll32.exe", "shell32.dll,Control_RunDLL sysdm.cpl,,1");

 //对于FolderItems对象可以用InvokeVerbEx Method
 //ShellApp.NameSpace("c:xxx").Items().InvokeVerbEx("delete");
 //而通过InvokeVerb(x.Items().Item(0).Verbs().Item(i).Name);可以访问某个命令
 // win = ShellApp.NameSpace("c:xxx").Items().Item(0)
 // e = win.Verbs();
 // for(i=0;i // document.writeln(e.Item(i).Name);
 // }
 // win.InvokeVerb(e.Item(0).Name);
 }

 //=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
 //
 // BindToSA
 //
 // Bind to the specified url and return the cdo object for it.
 //
 function BindToSA(szURL){
 var adModeRead = 1;
   var oDoc = new ActiveXObject("CDO.KnowledgeStartAddress")
   oDoc.Datasource.Open(szURL, null, adModeRead, -1, 0, "", "")
   return oDoc;
 }

 //=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
 //
 // BindToUrl
 //
 // Bind to the specified url and return the cdo object for it.
 //
 function BindToUrl(szURL){
 var adModeRead = 1;
   var oDoc = new ActiveXObject("CDO.KnowledgeDocument")
   oDoc.DataSource.Open(szURL, null, adModeRead, -1, 0, "", "")
   return oDoc;
 }


 function Msg(str){
 //
 //var FolderControl = new ActiveXObject("Tahoe.FolderControl");
 FolderControl.TraceMsg(str);
 }


   ShellApp = new ActiveXObject("Shell.Application");
 //ShellApp.ShowBrowserBar("{C4EE31F3-4768-11D2-BE5C-00A0C9A83DA1}", true);

 //ShellApp.ShellExecute("Rundll32.exe","shell32.dll,SHCreateLocalServerRunDll {601ac3dc-786a-4eb0-bf40-ee3521e70bfb}");

 //ShellApp.ShellExecute("Rundll32.exe","shdocvw.dll,OpenURL");//Internet 快捷方式
 //ShellApp.ShellExecute("Rundll32.exe","mSCOnf.dll,OpenConfLink");//SpeedDial
 //ShellApp.ShellExecute("Rundll32.exe","zipfldr.dll,RouteTheCall");//压缩文件夹shdocvw.dll,OpenURL
 //ShellApp.ShellExecute("Rundll32.exe","netplwiz.dll,UsersRunDll");//用户帐户
 //ShellApp.ShellExecute("Rundll32.exe","shell32.dll,Options_RunDLL 0");//文件夹选项
 //ShellApp.ShellExecute("Rundll32.exe","shell32.dll,Options_RunDLL 1");//显示任务栏和开始菜单

 //ShellApp.ShellExecute("rundll32.exe", "shell32.dll,Control_RunDLL sysdm.cpl,,1")appwiz.cpl,NewLinkHere
 //ShellApp.ShellExecute("rundll32.exe", "shell32.dll,Control_RunDLLAsUser")

  //ShellUI = new ActiveXObject("Shell.UIHelper.1");
 //ShellUI.AddFavorite("microsoft.com/msdn","MSDN'>http://www.microsoft.com/msdn","MSDN")
 //ShellUI.AddChannel("Http://www.microsoft.com")

 

 ShellApp.ShellExecute("c:windowssystem32mshta.exe","C:xx.hta")

 //var s = ShellApp.ShellExecute("rundll32.exe", "kernel32.dll,GetVersionExA"+","+so);


 /*var p = "C:"
   sha = new ActiveXObject("Shell.Application");
 var g = sha.NameSpace(p).Items().Item("xxx");
 var v = g.Verbs();
 var str=null;
 for(i=0;i str = v.item(i).Name;
 if(str.search("重命名")!=-1)break;
 str = null
 }
 if(str)
 g.InvokeVerbEx(str,"c:xx");
 else
 alert('no')
 //g.InvokeVerbEx("重命名","xx");
 */


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10752019/viewspace-976516/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10752019/viewspace-976516/

### 调试 `shellcmd.php` 的路径与方法 当遇到与特定文件(如 `shellcmd.php`)相关的代码问题时,可以采用以下方式定位并解决问题: #### 1. 定义根目录以提高可移植性 为了使项目更易于维护和迁移,可以通过定义常量来动态获取项目的根目录。例如,在 PHP 中可以利用魔术常量 `__FILE__` 来实现这一点[^1]: ```php define('ROOT', pathinfo(__FILE__, PATHINFO_DIRNAME)); ``` 通过这种方式,无论脚本部署在哪一目录下,都可以自动计算出其绝对路径。 #### 2. 使用相对路径加载依赖文件 如果 `shellcmd.php` 需要引入其他库或配置文件,则应基于上述定义的根目录构建相对路径。例如: ```php require_once(ROOT . '/../../lib/some_class.php'); ``` 这有助于减少硬编码路径带来的错误风险,并提升代码的跨环境兼容性。 #### 3. 检查 Nginx 和 PHP-FPM 的运行状态 对于涉及 Web 应用程序的问题,尤其是那些可能由服务器端设置引发的情况,了解 Nginx 和 PHP-FPM 的工作原理至关重要。具体来说,PHP-FPM 是一种用于处理 PHP 请求的 FastCGI 实现方案,而它的进程管理机制直接影响到应用性能以及潜在错误的表现形式[^2]。 #### 4. 利用容器化技术简化开发流程 现代软件工程实践中经常推荐使用 Docker 等工具创建隔离化的运行环境。这样不仅可以快速重现生产条件下的行为模式,还便于实施持续集成/交付策略[^3]。假如您希望自行搭建包含 Nginx 和 PHP-FPM 组件的服务架构,那么可以从官方文档或者社区贡献资源里找到详尽指导说明。 #### 5. 推荐调试技巧 针对像 `shellcmd.php` 这样的单个文件进行排查时,建议采取如下措施: - **启用错误报告功能**:确保 PHP 已经打开显示所有类型的警告信息; - **审查日志记录**:查阅 web server (e.g., Apache/Nginx) 及应用程序本身的日记条目; - **单元测试覆盖范围扩展**:编写针对性强的小型函数验证逻辑正确与否; --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值