中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-05 17:27
48,039 主题排行 / 350,124 发帖 / 今日 2 篇 / 48,251 会员排行
DOS批处理 & 脚本技术(批处理室) » 剪贴板文字自动着色
可打印版本  1,146 / 1
第1楼 yjq635 发表于 2007-08-28 09:24
初级用户 发帖 42 积分 109
剪贴板文字自动着色
不知道QQ便便^_^

但看到无奈何的批处理转 UBB 代码就不觉得方便了,,我的思路是将用变颜色的文字复制到剪贴板上,,然后运行脚本,,或者P从剪贴板获取文字,,将之转换为有颜色的字,,放到剪贴板上,,如果再加一个建立快捷方式(添加热键)那么只要 复制--热键--粘贴 就OK了,,不是很方便??最好是把字体大小也设一下,,当然,,不用像颜色那样逐个字的设,,(很大的体积)设个变量,,“”这个是QQ空间上的语法,,“”是UBB语法,,
“<font color= </font>”网页语法,,根据需要自己改就行了,,下面是我找到的随机颜色编辑器的代码,,要是能设成颜色渐变就好了,,(很贪心!!)


参照“baomaboy”“定位注册表”弄的,,加了一些代码,,(都是别人写的,,我组合的)因为我自己用世界之窗的浏览器,,会出现打开一个空白页面,,如果默认IE浏览器在END IF语句之前加一句代码“objIE.Quit”可以不打开空白网页,,网上说的,,具体我也不清楚
下面帖的代码是用在UBB上的,,跟在ELSE后面的t1 t2是设置语言的“”是UBB语法,,“<font color= </font>”网页语法,t3 t4是设置字体大小的,,表达能力有限,,望包含,,还有就是脚本前面的那些代码是我复制过来的,,(由此可见“baomaboy”代码的可重用性很高)我不知道哪些不要,,请高手帮我删掉不要的,快捷方式的路径是paths = "C:\Documents and Settings\All Users\「开始」菜单\程序\附件\快捷功能"可以改,,但必需在桌面或开始菜单里


我组合的剪贴板文字自动着色




原来的彩色字编辑器


[ Last edited by yjq635 on 2007-8-28 at 11:31 AM ]
第2楼 slore 发表于 2007-08-28 12:49
铂金会员 发帖 2,478 积分 5,212
Dim WshSHell,FSO
on Error Resume Next
Set
WshSHell = WScript.CreateObject("WScript.Shell")
Set FSO = CreateObject("Scripting.FileSystemObject")
Set WinVer = WshSHell.Environment("Process")
Set Args = WScript.Arguments
Set Shell = CreateObject("WScript.Shell")
paths = "C:\Documents and Settings\All Users\「开始」菜单\程序\附件\快捷功能"

If FSO.FolderExists(paths) Then
Else
fso.createfolder(paths)
End If

lnkname = "C:\Documents and Settings\All Users\「开始」菜单\程序\附件\快捷功能\剪贴板文字自动着色.lnk"
FileName = WScript.ScriptName
FileFullName = WScript.ScriptFullName
FilePath = FSO.GetParentFolderName(FileFullName)
InsPath = FSO.GetSpecialFolder(1)'''0=windows,1=system32,2=user-Temp,
InsFullName = FSO.BuildPath(InsPath ,FileName)
Copyright = "yjq635"
QQ = "QQ:364698868"
Email = "Email:fty1995@163.com"
InsTitle = "剪贴板文字自动着色"
InsAnswer = "剪贴板文字自动着色"
If FileFullName <> InsFullName Then
intAnswer = MsgBox("【是】添加使用shift+x访问“" + InsAnswer + "" & Chr(10) & Chr(10) & "【否】删除使用shift+x访问“" + InsAnswer + "", vbQuestion + vbYesNoCancel, "安装 - " + InsTitle + " - " + Copyright)
If intAnswer = vbYes Then
FSO.GetFile(FileFullName).Copy(InsFullName)

Set Link = Shell.CreateShortcut(paths & "\剪贴板文字自动着色.lnk")
Link.Description = "剪贴板文字自动着色"
Link.HotKey = "shift+x"
Link.TargetPath = InsFullName
Link.WindowStyle = 2
Link.WorkingDirectory = "%windir%"
Link.Save
End If
If
intAnswer = vbNo Then
FSO.DeleteFile lnkname
FSO.DeleteFile InsFullName
End If
If
intAnswer = vbCancel Then
End If
Else
t1 = ""
t2 = "" & "/color]"
t3 = ""
t4 = "
"

t = UCase(CreateObject("htmlfile").parentWindow.clipboardData.getData("text"))
tlen = Len(t) '得到字体的长度
If tlen > 0 Then
Randomize
ti = "" '输出的字体
n = 16777215 / tlen '得到颜色的增加量
n1 = 100 + Int(Rnd * 1000) '颜色的开始值

'MsgBox tlen
For i = 1 To tlen
If Left(t,1) = " " Then n1 = Int(16767215 * Rnd) + 10000 '当输入的字符以" "开头则用随机颜色
'ti=t1 & CInt("&H" & cR) & CInt("&H" & cG)& CInt("&H" & cB) & "]" Mid(t,i,1) & t2
ti = ti & t1 & Hex(n1) & "]" & Mid(t,i,1) & t2
n1 = n1 + n
Next
ti = t3 & ti & t4
Set objIE = CreateObject("InternetExplorer.Application")
objIE.Navigate("about:blank")
objIE.Document.parentwindow.clipboardData.SetData "text", ti
End If
End If


操作剪切板要IE对象,内存好浪费=。=(当然这个是VBS的缺陷没有封装剪切板对象)

[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023