| 
 | 
	
 
 本帖最后由 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  这个填正确就可以  其他的几乎一样  看源码吧 
 
 
- 功能 当前所有盘符()
 
 -         //这里添加你要执行的代码
 
 -         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"
 
 -         sc = com("ScriptControl")
 
 -         sc.language = "VBScript"
 
 -         sc.addcode(strProgram)
 
 -         返回 字符串.移除(sc.run("yingpan",""),1,真) 
 
 - 功能结束
 
  
- 功能 进程关闭窗口(窗口句柄,进程名="")
 
 -         //这里添加你要执行的代码 
 
 -         如果(进程名=="")
 
 -                 len1,返回值
 
 -                 字符串.分割(窗口.获取路径(窗口句柄),"\\",返回值)
 
 -                 数组空间.大小(返回值,len1)   
 
 -                 进程名=返回值[len1-1]
 
 -         如果结束
 
 -         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"   
 
 -         sc = com("ScriptControl")
 
 -         sc.language = "VBScript"       
 
 -         sc.addcode(strProgram)
 
 -         sc.run("PidClosed",进程名)
 
 - 功能结束
 
  
- 功能 枚举当前所有进程()
 
 -         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"
 
 -         sc = com("ScriptControl")
 
 -         sc.language = "VBScript"
 
 -         sc.addcode(strProgram)    
 
 -         返回 字符串.移除(sc.run("GetPidInfo",""),1,真) 
 
 - 功能结束
 
  
- 功能 创建快捷方式(文件源路径="",快捷方式名="",快捷方式路径="")        
 
 -        如果(文件源路径=="")
 
 -           文件源路径=窗口.获取路径(窗口.自身句柄())
 
 -        如果结束
 
 -        选择(快捷方式名)
 
 -            条件 "":
 
 -            len1,返回值,返回值2
 
 -            字符串.分割(文件源路径,"\\",返回值)
 
 -            数组空间.大小(返回值,len1)
 
 -            字符串.分割(返回值[len1-1],".",返回值2)
 
 -            快捷方式名=返回值2[0]
 
 -            条件 "窗口标题":
 
 -            快捷方式名=窗口.得到标题(窗口.自身句柄())
 
 -            默认:
 
 -            快捷方式名=字符串.替换(快捷方式名,".lnk","")
 
 -        选择结束       
 
 -        strProgram ="Sub Shortcut(filepath,lnkpath): On Error Resume Next:  set WshShell = CreateObject(\"WScript.Shell\"): "
 
 -        如果(快捷方式路径=="")
 
 -                 //在桌面创建快捷方式
 
 -                快捷方式名=快捷方式名&".lnk"
 
 -                strProgram =strProgram &"strDesktop = WshShell.SpecialFolders(\"Desktop\"): set oShellLink = WshShell.CreateShortcut(strDesktop &\"\\\"&lnkpath): "   
 
 -        否则
 
 -               //指定位置的快捷方式
 
 -               快捷方式名=快捷方式路径&"\\"&快捷方式名&".lnk"  
 
 -               strProgram =strProgram &"set oShellLink = WshShell.CreateShortcut(lnkpath): "
 
 -        如果结束   
 
 -        strProgram =strProgram &"oShellLink.TargetPath = filepath: oShellLink.Save: Set oShellLink = Nothing: Set WshShell = Nothing: End Sub"
 
 -        sc = com("ScriptControl")
 
 -        sc.language = "VBScript"
 
 -        sc.addcode(strProgram)
 
 -        sc.run("Shortcut",文件源路径,快捷方式名)   
 
 - 功能结束
 
  
- 功能 获取快捷方式(快捷方式路径)
 
 -         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"
 
 -         sc = com("ScriptControl")
 
 -        sc.language = "VBScript"
 
 -        sc.addcode(strProgram)    
 
 -        返回 sc.run("GetShortcut",快捷方式路径)
 
 - 功能结束
 
  
- 功能 文本覆盖写入(文本路径,文本内容)
 
 -     //tc中这个功能暂时是不支持的  估计很快就会更改了  无须删除原文件,是把原文件中的所有字全部清空  并写入新的字  如果重要资料请注意慎用
 
 -     如果(!文件.是否存在(文本路径))
 
 -         文件句柄=文件.创建(文本路径,"读写")
 
 -         文件.关闭(文件句柄)
 
 -     如果结束
 
 -     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"
 
 -     sc = com("ScriptControl")
 
 -     sc.language = "VBScript"
 
 -     sc.addcode(strProgram)    
 
 -     sc.run("ReWrite",文本路径,文本内容)
 
 - 功能结束
 
  
- 功能 文件夹and文件属性(文本路径,属性="")
 
 -     设置属性="-r -h -s"
 
 -     选择(属性)
 
 -         条件 "隐藏":        
 
 -         设置属性="+h"        
 
 -         条件 "显示":
 
 -         设置属性="-h"        
 
 -         条件 "只读":
 
 -         设置属性="+r"        
 
 -         条件 "读写":
 
 -         设置属性="-r"        
 
 -         条件 "系统":
 
 -         设置属性="+s"         
 
 -         条件 "用户":
 
 -         设置属性="-s"        
 
 -         条件 "隐藏系统":
 
 -         设置属性="+s +h"        
 
 -         条件 "隐藏用户":
 
 -         设置属性="-s +h"        
 
 -         条件 "显示用户":
 
 -         设置属性="-s -h"         
 
 -     选择结束    
 
 -     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"   
 
 -     //'attrib指令的格式和常用参数为
 
 -     //'ATTRIB [+R | -R] [+S | -S] [+H | -H] [[drive:] [path] filename] [/S [/D]]
 
 -     //'  +   设置属性。    //'  -    清除属性。    //'  R   只读文件属性。    //'  S   系统文件属性。    //'  H   隐藏文件属性。
 
 -     //'  [drive:][path][filename]    //'      指定要处理的文件属性。    //'  /S  处理当前文件夹及其子文件夹中的匹配文件。    //'  /D  也处理文件夹。    
 
  
-     sc = com("ScriptControl")
 
 -     sc.language = "VBScript"
 
 -     sc.addcode(strProgram)    
 
 -     sc.run("SetFoldandFile",文本路径,设置属性)
 
 - 功能结束
 
  
- 功能 消息框(文本,提示类型=0,标题="VBS操作",句柄=0)
 
 -     如果(句柄==0)
 
 -         句柄=窗口.自身句柄()
 
 -     如果结束
 
 -     strProgram="Function MsgboxTip(Text,TextStyle,TextTitle): MsgboxTip = MsgBox(Text, TextStyle, TextTitle): End Function"
 
 -     sc = com("ScriptControl")
 
 -     sc.language = "VBScript"
 
 -     sc.SitehWnd=句柄
 
 -     sc.addcode(strProgram)    
 
 -     返回 sc.run("MsgboxTip",文本,提示类型,标题)    
 
 -     
 
 -     //'MsgBox类型参数的取值:
 
 -     //'符号常量                值    作 用
 
 -     //'vbOKOnly                0    只显示“确定”按钮
 
 -     //'vbOKCancel            1    只显示“确定”及“取消”按钮
 
 -     //'vbAbortRetryIgnore    2    显示“放弃”、“重试”和“忽略”按钮
 
 -     //'vbYesNoCancel        3    显示“是”、“否”和“取消”按钮
 
 -     //'vbYesNo                4    显示“是”和“否”按钮
 
 -     //'vbRetryCancel        5    显示“重试”和“取消”按钮
 
 -     
 
 -     //'图 标 样 式 
 
 -     //'vbCritical            16    显示系统叉号图标有声音
 
 -     //'vbQuestion            32    显示系统问号图标
 
 -     //'vbExclamation        48    显示系统叹号图标有声音
 
 -     //'vbInformation        64    显示系统信息图标有声音
 
 -     
 
 -     //'默 认  按 钮 
 
 -     //'vbDefaultButton1        0    第一个按钮为默认按钮
 
 -     //'vbDefaultButton2        256    第二个按钮为默认按钮
 
 -     //'vbDefaultButton3        512    第三个按钮为默认按钮
 
 -     //'vbDefaultButton4        768    第四个按钮为默认按钮 
 
 -     
 
 -     //'强制 返回 
 
 -     //'vbApplicationModal    0        应用程序强制返回
 
 -     //'vbSystemModal        4096     系统强制返回
 
 -     
 
 -     //'MsgBox函数返回值
 
 -     //'常数            值    描述
 
 -     //'vbOK            1    单击了“确定”按钮。
 
 -     //'vbCancel        2    单击了“取消”按钮。
 
 -     //'vbAbort        3    单击了“终止”按钮。
 
 -     //'vbRetry        4    单击了“重试”按钮。
 
 -     //'vbIgnore        5    单击了“忽略”按钮。
 
 -     //'vbYes        6    单击了“是”按钮。
 
 -     //'vbNo            7    单击了“否”按钮。
 
 -     
 
 - 功能结束
 
  
 
  复制代码 有带有返回值  也有不带返回值的  纯TC操作  无需创建vbs文件 
 
 |   
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册  
 
x
 
 
评分
- 
查看全部评分
 
 
 
 
 
 |