我一直在做一个聊天HTA文件,在工作中玩…
:)
效果很好,但是有人要求给每个人的文本涂上不同的颜色?
我一直在想办法弄到它,但是我遇到了麻烦,如果可能的话,有人能帮我吗?
下面是我所做的基本代码found我已经把每一行放入一个数组,但然后给每一行分配一个颜色,我不能工作…
或
如果我不能在不使用文本文件的情况下在Windows中显示"聊天",那么这将是很好的更好(节省清理删除不需要的文本文件…)
也请告诉我如何更好地我的编码…我做这行没那么久……(几个月)
干杯Pavle .
'在HTA聊天
<HTA:APPLICATION
SCROLL="auto"
SINGLEINSTANCE="yes"
WINDOWSTATE="normal"
>
</head>
<SCRIPT Language="VBScript">
Sub Window_OnLoad
Window.ResizeTo 400,300
iTimerID = window.setInterval("Display", 100)
End Sub
strPath = "C:UsersPavleDesktop"
Set wshShell = CreateObject( "WScript.Shell" )
strSender = wshShell.ExpandEnvironmentStrings( "%USERNAME%" )
Sub Display
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile(StrPath & "Chat.txt", 1)
Do Until objFile.AtEndOfStream
strCharacters = objFile.ReadAll
Loop
objFile.Close
DisplayBox.Value = strCharacters
DisplayBox.ScrollTop = DisplayBox.ScrollHeight
' This splits each line.
' sArray = Split(DisplayBox.Value, vbcrlf)
End Sub
Sub InputBox
With document.parentWindow.event
If .keycode = 13 then
Const NORMAL_WINDOW = 1
Const ForAppending = 8
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.OpenTextFile(StrPath & "Chat.txt", ForAppending, True)
objTextFile.WriteLine strSender & ":" & Input.Value
objTextFile.Close
Input.Value = ""
Set WshShell = CreateObject("WScript.Shell")
WshShell.SendKeys "{BACKSPACE}"
Else
.cancelbubble = false
.returnvalue = true
End If
End With
End Sub
</SCRIPT>
<body>
<textarea name="DisplayBox" rows="6" cols="40"></textarea>
<BR>
<BR>
<BR>
<textarea name="Input" rows="3" onKeydown=InputBox cols="40"></textarea>
</body>
</html>`
这里有一些指导方针。
首先,textarea
不能有HTML,所以它不能用作富文本的pad。为此,您需要<pre>
或更确切地说,<div>
。例如:
<div name="DisplayBox" class="textpad" contenteditable="true"></div>
然后在读取文件时为行添加格式化标记。像这样:
Dim n
n = 1
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile(StrPath & "Chat.txt", 1)
Do Until objFile.AtEndOfStream
n = n * (-1)
strCharacters = strCharacters & "<p class='line" & n & "'>" & objFile.ReadLine() & "</p>"
Loop
objFile.Close
DisplayBox.innerHTML = strCharacters
<p>
也可能是<div>
。然后你需要一个带有一些类的样式表:
.line1 {
color: red;
}
.line-1 {
color: blue;
}
.textpad {
position: relative;
width: 400px;
height: 200px;
border: 2px inset;
overflow-y: scroll;
}
现在你有红色和蓝色的线在#DisplayBox
。只要样式的div
你想要的。
(顺便说一句,这是我的第一个VBScript…)