|
本帖最后由 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
评分
-
查看全部评分
|