TC官方合作论坛

 找回密码
 立即注册
查看: 4962|回复: 18

[其他] TC直接调用VBS,无须创建vbs文件,带返回值,有源码

  [复制链接]
发表于 2014-12-12 17:16:22 | 显示全部楼层 |阅读模式
本帖最后由 a837198 于 2015-1-29 11:17 编辑



TC直接调用VBS,无须创建vbs文件,而且还带有返回值的哦

思路来源   http://bbs.tyuyan.com/thread-47614-1-1.html  5楼   q273814的   的回复    直接在TC里使用ScriptControl对象调用VBScript代码
于是自己搜索了一下 ,真的可行呢  

源码如下  只要知道了原理  你也可以进行txt文本操作了  像不删除文件覆盖写入    文件夹隐藏  等等   目前先做这些吧 其他的可以去查vbs的操作


只需要把 变量  strProgram  这个填正确就可以
  其他的几乎一样  看源码吧


  1. 功能 当前所有盘符()
  2.         //这里添加你要执行的代码
  3.         strProgram ="Function yingpan(ff): On Error Resume Next:  Set fso=CreateObject("Scripting.filesystemobject"): Set objdrives=fso.Drives: For Each objdrive In objdrives:  ff=ff&"|"&objdrive: Next: yingpan=ff:  End Function"
  4.         sc = com("ScriptControl")
  5.         sc.language = "VBScript"
  6.         sc.addcode(strProgram)
  7.         返回 字符串.移除(sc.run("yingpan",""),1,真)
  8. 功能结束

  9. 功能 进程关闭窗口(窗口句柄,进程名="")
  10.         //这里添加你要执行的代码
  11.         如果(进程名=="")
  12.                 len1,返回值
  13.                 字符串.分割(窗口.获取路径(窗口句柄),"\",返回值)
  14.                 数组空间.大小(返回值,len1)   
  15.                 进程名=返回值[len1-1]
  16.         如果结束
  17.         strProgram ="Sub PidClosed(Pidname): On Error Resume Next:  set WshShell = CreateObject("WScript.Shell"): WshShell.run "cmd /c taskkill /f /im "&Pidname,0: set WshShell = Nothing:  End Sub"   
  18.         sc = com("ScriptControl")
  19.         sc.language = "VBScript"      
  20.         sc.addcode(strProgram)
  21.         sc.run("PidClosed",进程名)
  22. 功能结束

  23. 功能 枚举当前所有进程()
  24.         strProgram ="Function GetPidInfo(PidInfo): On Error Resume Next:  st = ".": Set objp = GetObject("winmgmts:\\\\" & st):Set objs = objp.instancesof("Win32_Process"): For Each ps In objs: PidInfo=PidInfo&"|进程名-"&ps.Name&"++PID-"&ps.ProcessID&"++所在位置-"&ps.commandline: Next: GetPidInfo=PidInfo: End Function"
  25.         sc = com("ScriptControl")
  26.         sc.language = "VBScript"
  27.         sc.addcode(strProgram)   
  28.         返回 字符串.移除(sc.run("GetPidInfo",""),1,真)
  29. 功能结束

  30. 功能 创建快捷方式(文件源路径="",快捷方式名="",快捷方式路径="")        
  31.        如果(文件源路径=="")
  32.           文件源路径=窗口.获取路径(窗口.自身句柄())
  33.        如果结束
  34.        选择(快捷方式名)
  35.            条件 "":
  36.            len1,返回值,返回值2
  37.            字符串.分割(文件源路径,"\",返回值)
  38.            数组空间.大小(返回值,len1)
  39.            字符串.分割(返回值[len1-1],".",返回值2)
  40.            快捷方式名=返回值2[0]
  41.            条件 "窗口标题":
  42.            快捷方式名=窗口.得到标题(窗口.自身句柄())
  43.            默认:
  44.            快捷方式名=字符串.替换(快捷方式名,".lnk","")
  45.        选择结束      
  46.        strProgram ="Sub Shortcut(filepath,lnkpath): On Error Resume Next:  set WshShell = CreateObject("WScript.Shell"): "
  47.        如果(快捷方式路径=="")
  48.                 //在桌面创建快捷方式
  49.                快捷方式名=快捷方式名&".lnk"
  50.                strProgram =strProgram &"strDesktop = WshShell.SpecialFolders("Desktop"): set oShellLink = WshShell.CreateShortcut(strDesktop &"\\"&lnkpath): "   
  51.        否则
  52.               //指定位置的快捷方式
  53.               快捷方式名=快捷方式路径&"\"&快捷方式名&".lnk"  
  54.               strProgram =strProgram &"set oShellLink = WshShell.CreateShortcut(lnkpath): "
  55.        如果结束   
  56.        strProgram =strProgram &"oShellLink.TargetPath = filepath: oShellLink.Save: Set oShellLink = Nothing: Set WshShell = Nothing: End Sub"
  57.        sc = com("ScriptControl")
  58.        sc.language = "VBScript"
  59.        sc.addcode(strProgram)
  60.        sc.run("Shortcut",文件源路径,快捷方式名)   
  61. 功能结束

  62. 功能 获取快捷方式(快捷方式路径)
  63.         strProgram="Function GetShortcut(lnkpath): On Error Resume Next: Set WshShell = CreateObject("WScript.Shell"): Set oShellLink = WshShell.CreateShortcut(lnkpath): GetShortcut = oShellLink.TargetPath: Set oShellLink =nothing: Set WshShell =nothing: End Function"
  64.         sc = com("ScriptControl")
  65.        sc.language = "VBScript"
  66.        sc.addcode(strProgram)   
  67.        返回 sc.run("GetShortcut",快捷方式路径)
  68. 功能结束

  69. 功能 文本覆盖写入(文本路径,文本内容)
  70.     //tc中这个功能暂时是不支持的  估计很快就会更改了  无须删除原文件,是把原文件中的所有字全部清空  并写入新的字  如果重要资料请注意慎用
  71.     如果(!文件.是否存在(文本路径))
  72.         文件句柄=文件.创建(文本路径,"读写")
  73.         文件.关闭(文件句柄)
  74.     如果结束
  75.     strProgram="Sub ReWrite(FilePath,str): On Error Resume Next:Set FileSys=CreateObject("Scripting.FileSystemObject"):Set ForWrite=FileSys.opentextfile(FilePath,2) : ForWrite.Write str: ForWrite.close: Set FileSys=nothing: End Sub"
  76.     sc = com("ScriptControl")
  77.     sc.language = "VBScript"
  78.     sc.addcode(strProgram)   
  79.     sc.run("ReWrite",文本路径,文本内容)
  80. 功能结束

  81. 功能 文件夹and文件属性(文本路径,属性="")
  82.     设置属性="-r -h -s"
  83.     选择(属性)
  84.         条件 "隐藏":        
  85.         设置属性="+h"        
  86.         条件 "显示":
  87.         设置属性="-h"        
  88.         条件 "只读":
  89.         设置属性="+r"        
  90.         条件 "读写":
  91.         设置属性="-r"        
  92.         条件 "系统":
  93.         设置属性="+s"         
  94.         条件 "用户":
  95.         设置属性="-s"        
  96.         条件 "隐藏系统":
  97.         设置属性="+s +h"        
  98.         条件 "隐藏用户":
  99.         设置属性="-s +h"        
  100.         条件 "显示用户":
  101.         设置属性="-s -h"         
  102.     选择结束   
  103.     strProgram="Sub SetFoldandFile(FilePath,style): On Error Resume Next:Set ObjSet=CreateObject("wscript.shell"):ObjSet.run "attrib "& style &" "& FilePath,0: Set ObjSet = Nothing: End Sub"   
  104.     //'attrib指令的格式和常用参数为
  105.     //'ATTRIB [+R | -R] [+S | -S] [+H | -H] [[drive:] [path] filename] [/S [/D]]
  106.     //'  +   设置属性。    //'  -    清除属性。    //'  R   只读文件属性。    //'  S   系统文件属性。    //'  H   隐藏文件属性。
  107.     //'  [drive:][path][filename]    //'      指定要处理的文件属性。    //'  /S  处理当前文件夹及其子文件夹中的匹配文件。    //'  /D  也处理文件夹。   

  108.     sc = com("ScriptControl")
  109.     sc.language = "VBScript"
  110.     sc.addcode(strProgram)   
  111.     sc.run("SetFoldandFile",文本路径,设置属性)
  112. 功能结束

  113. 功能 消息框(文本,提示类型=0,标题="VBS操作",句柄=0)
  114.     如果(句柄==0)
  115.         句柄=窗口.自身句柄()
  116.     如果结束
  117.     strProgram="Function MsgboxTip(Text,TextStyle,TextTitle): MsgboxTip = MsgBox(Text, TextStyle, TextTitle): End Function"
  118.     sc = com("ScriptControl")
  119.     sc.language = "VBScript"
  120.     sc.SitehWnd=句柄
  121.     sc.addcode(strProgram)   
  122.     返回 sc.run("MsgboxTip",文本,提示类型,标题)   
  123.    
  124.     //'MsgBox类型参数的取值:
  125.     //'符号常量                值    作 用
  126.     //'vbOKOnly                0    只显示“确定”按钮
  127.     //'vbOKCancel            1    只显示“确定”及“取消”按钮
  128.     //'vbAbortRetryIgnore    2    显示“放弃”、“重试”和“忽略”按钮
  129.     //'vbYesNoCancel        3    显示“是”、“否”和“取消”按钮
  130.     //'vbYesNo                4    显示“是”和“否”按钮
  131.     //'vbRetryCancel        5    显示“重试”和“取消”按钮
  132.    
  133.     //'图 标 样 式
  134.     //'vbCritical            16    显示系统叉号图标有声音
  135.     //'vbQuestion            32    显示系统问号图标
  136.     //'vbExclamation        48    显示系统叹号图标有声音
  137.     //'vbInformation        64    显示系统信息图标有声音
  138.    
  139.     //'默 认  按 钮
  140.     //'vbDefaultButton1        0    第一个按钮为默认按钮
  141.     //'vbDefaultButton2        256    第二个按钮为默认按钮
  142.     //'vbDefaultButton3        512    第三个按钮为默认按钮
  143.     //'vbDefaultButton4        768    第四个按钮为默认按钮
  144.    
  145.     //'强制 返回
  146.     //'vbApplicationModal    0        应用程序强制返回
  147.     //'vbSystemModal        4096     系统强制返回
  148.    
  149.     //'MsgBox函数返回值
  150.     //'常数            值    描述
  151.     //'vbOK            1    单击了“确定”按钮。
  152.     //'vbCancel        2    单击了“取消”按钮。
  153.     //'vbAbort        3    单击了“终止”按钮。
  154.     //'vbRetry        4    单击了“重试”按钮。
  155.     //'vbIgnore        5    单击了“忽略”按钮。
  156.     //'vbYes        6    单击了“是”按钮。
  157.     //'vbNo            7    单击了“否”按钮。
  158.    
  159. 功能结束


复制代码
有带有返回值  也有不带返回值的  纯TC操作  无需创建vbs文件

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

评分

参与人数 1威望 +10 金币 +10 收起 理由
sszzsy + 10 + 10 很给力!

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2014-12-12 17:23:22 | 显示全部楼层
嘿嘿  
回复 支持 反对

使用道具 举报

发表于 2014-12-12 17:48:11 | 显示全部楼层
楼主英明,我正在找这方面的知识呢,你就给送来了
回复 支持 反对

使用道具 举报

发表于 2014-12-12 20:19:47 | 显示全部楼层
= =好像早就有了
回复 支持 反对

使用道具 举报

发表于 2014-12-12 20:19:54 | 显示全部楼层
不过开源精神不错
回复 支持 反对

使用道具 举报

发表于 2014-12-12 22:32:17 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

发表于 2014-12-12 23:43:36 | 显示全部楼层
{:soso_e113:}
回复 支持 反对

使用道具 举报

发表于 2014-12-13 07:24:40 | 显示全部楼层
难得看到开源了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-12-13 09:22:49 | 显示全部楼层

这个没看见过  而且搜索关键词vbs也没见到  呵呵
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-12-13 09:23:20 | 显示全部楼层

嗯嗯
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条

关闭

小黑屋|TC官方合作论坛 (苏ICP备18045623号)

GMT+8, 2024-5-19 06:47 , Processed in 0.043306 second(s), 24 queries .

Powered by 海安简单软件服务部

© 2008-2019 版权所有 保留所有权利

快速回复 返回顶部 返回列表