1

我一直在处理一个聊天 HTA 文件,以便在工作中使用......

:)

它工作得很好,但是有人要求给每个人的文字涂上不同的颜色?

我一直在努力,但我遇到了麻烦,如果可能的话,有人可以帮助我吗?

下面是我所做的基本代码\找到

我已经将每一行放入一个数组中,但随后为我无法解决的每一行分配一种颜色......

或者

如果我不能在不使用文本文件的情况下在 Windows 中显示“聊天”,那会更好\更好(节省清理删除不需要的文本文件..)

还请告诉我如何改进我的编码......我没有那么久......(几个月)

干杯帕维尔。

' 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:\Users\Pavle\Desktop\"
    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>`
4

1 回答 1

1

以下是您的任务的一些指导方针。

起初,textarea不能有HTML,所以不能用作富文本的填充物。为此,您需要一个<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 ......)

于 2013-01-11T17:34:14.453 回答