Public feed #889732

Mine

public text v1 · immutable
Raw Edit
·published 2008-02-03 03:53 UTC
rendered paste body
Option Explicit

Private Declare Function SetWindowPos Lib "user32" (ByVal hWnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Private Declare Function SendMessageSTRING Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As String) As Long
Private Declare Function SendMessageLONG Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hWnd As Long, ByVal lpString As String, ByVal cch As Long) As Long

Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As String) As Long

Private Const WM_SETTEXT = &HC
Private Const WM_GETTEXT = &HD
Private Const WM_GETTEXTLENGTH = &HE
'Private Const EM_GETSELTEXT = (WM_USER + 62)

Private Const WM_USER = &H400
Private Const VK_SPACE = &H20

Private Const BM_CLICK = &HF5
Private Const WM_KEYDOWN = &H100
Private Const WM_KEYUP = &H101

Private Const SWP_NOMOVE = &H2
Private Const SWP_NOSIZE = &H1
Private Const HWND_TOPMOST = -1

Dim message_old As String
Dim qCaption As String

Public Sub SendMess(str As String)
    Dim OurParent As Long, OurHandle As Long, OurButton As Long, OurSettsz As Long, OurSettzz As Long

    OurParent = FindWindowWild("*Video Chat Room*", False)
    OurParent = FindWindowWild("*Topic:*", False)
    OurHandle& = FindWindowEx(OurParent&, 0, "RichEdit20A", vbNullString)
    OurSettzz& = FindWindowEx(OurParent&, OurHandle&, "RichEdit20A", vbNullString)
    OurHandle& = OurSettzz&
    
    OurButton& = FindWindowEx(OurParent&, 0, "Button", vbNullString)
    SendMessageSTRING OurHandle, WM_SETTEXT, 256, str
    SendMessageSTRING OurButton, BM_CLICK, 0, 0
    
    frmChat.txtSendMess.Text = ""
    frmChat.txtSendMess.SetFocus
End Sub

Public Sub SendMSG(sCaption As String, sWayz As String, sReason As String)
    Dim OurParent As Long, OurHandle As Long, OurButton As Long, OurSettsz As Long, OurSettzz As Long

    OurParent = FindWindowWild("*Video Chat Room*", False)
    OurParent = FindWindowWild("*Topic:*", False)
    OurHandle& = FindWindowEx(OurParent&, 0, "RichEdit20A", vbNullString)
    OurSettzz& = FindWindowEx(OurParent&, OurHandle&, "RichEdit20A", vbNullString)
    OurHandle& = OurSettzz&
    OurButton& = FindWindowEx(OurParent&, 0, "Button", vbNullString)
    SendMessageSTRING OurHandle, WM_SETTEXT, 256, sCaption & Chr$(32) & sWayz & Chr$(32) & sReason
    SendMessageSTRING OurButton, BM_CLICK, 0, 0
    
    'txtSend.SetFocus
End Sub

Private Sub GetMSG()
    On Error Resume Next
    Dim OurParent As Long, OurHandle As Long, OurButton As Long, OurSettsz As Long, OurSettzz As Long
    Dim length As Long, strtmp As String, result As Long, ihEdit As Long, strtmp2 As String
    Dim lTemp As String
    Dim aTmp As String, bTmp As String, cTmp As String
    result = 0
    length = 0
    ihEdit = 0
    
    OurParent = FindWindowWild("*Video Chat Room*", False)
    OurParent = FindWindowWild("*Topic:*", False)
    OurHandle& = FindWindowEx(OurParent&, 0, "RichEdit20A", vbNullString)
    
    length = SendMessage(OurHandle, WM_GETTEXTLENGTH, 0, 0) + 1
    strtmp = Space(length - 1)
    result = SendMessage(OurHandle, WM_GETTEXT, length, strtmp)
    'message_old
    'MsgBox result

    strtmp2 = strtmp
    If strtmp <> message_old Then
        strtmp = Replace$(strtmp, message_old, "")
        'strtmp = Right$(strtmp, strtmp - Len(message_old))
        'lTemp = Split(strtmp, Chr$(13))(1)
        'MsgBox lTemp
        
        'MsgBox strtmp
        If frmRoom.rdRoom.Value = 1 Then
            frmChat.txtMain.SelStart = Len(frmChat.txtMain.Text)
            frmChat.txtMain.SelText = strtmp
        End If
        If (frmRoom.chkLogIt.Value = 1) Then
            WriteToLog strtmp
        End If
        'Welcome Join msg
        ReadJoins (strtmp)
        TriviaOpt (strtmp)

        'return msg_old
        message_old = strtmp2
    End If
    
End Sub

Private Sub ReadJoins(Users As String)
    Dim asUsers()    As String
    Dim strName      As String
    Dim i            As Integer
    
    asUsers = Split(Users, vbCrLf)
    
    For i = 0 To UBound(asUsers)
        'MsgBox Left$(asUsers(I), 5)
        If (Left$(asUsers(i), 5) = "Join:") Then
            strName = Split(asUsers(i), "Join:")(1)
            UserJoined (strName)
            Exit Sub
        End If
    Next
End Sub

Private Sub TriviaOpt(Users As String)
    Dim asUsers()    As String
    Dim strName      As String
    Dim strTempA     As String
    Dim strTempB     As String
    Dim strTempC     As String
    Dim strTempD     As String
    Dim strTempE     As Integer
    Dim strTempF     As String
    Dim i            As Integer
    
    asUsers = Split(Users, vbCrLf)
    
    For i = 0 To UBound(asUsers)
        'MsgBox asUsers(I)
        strTempC = UCase$(asUsers(i))
        'MsgBox strTempC
        If InStr(strTempC, "!TRIVIA") Then
            'MsgBox strTempC
            strName = Split(strTempC, "!TRIVIA ")(1)
            'MsgBox strName
            If (UCase$(strName) = "ON") Then
                If frmTrivia.chkTrivia.Value = 1 Then Exit Sub
                frmTrivia.TriviaStart
                Exit Sub
            ElseIf (UCase$(strName) = "OFF") Then
                If frmTrivia.chkTrivia.Value = 0 Then Exit Sub
                frmTrivia.TriviaStop
                Exit Sub
            Else
                Exit Sub
            End If
        End If
    
    
        If frmTrivia.chkTrivia.Value = 0 Then Exit Sub
        strTempA = Split(asUsers(i), "  : ")(0)
        strTempA = Replace(strTempA, Chr$(32), "")
        strTempB = Split(asUsers(i), "  : ")(1)
        'MsgBox strTempB
        If UCase$(strTempB) = UCase$(frmTrivia.txtAnswer.Text) Then
            'MsgBox strTempB
            strTempD = INI_Read("scores", strTempA, App.Path & "\trivia\scores.ini")
            If strTempD = "" Then strTempD = 0
            'If strTempD <> "" Then
            strTempE = strTempD + 1
            strTempF = ":scr:" & strTempE
            strTempF = Replace$(strTempF, ":scr:", "")
            frmTrivia.CorrectAnswer strTempA, strTempF
            
            'ClearScreen
            Exit Sub
            'MsgBox strTempE
            'MsgBox "scores" & vbCrLf & strTempA & vbCrLf & strTempF & vbCrLf & App.Path & "\data\scores.ini"
        End If
        'UserJoined (strName)
        Exit Sub
    
    Next
End Sub


Private Sub UserJoined(user As String)
    If (frmRoom.chkOnjoin.Value = 1) Then
        user = Replace$(user, Chr$(32), "")
        SendMSG "Welcome (C) " & user & " (C)", "", ""
    End If
End Sub

Private Sub ClearScreen()
    On Error Resume Next
    Dim OurParent As Long, OurHandle As Long, OurButton As Long, OurSettsz As Long, OurSettzz As Long

    OurParent = FindWindowWild("*Video Chat Room*", False)
    OurParent = FindWindowWild("*Topic:*", False)
    OurHandle& = FindWindowEx(OurParent&, 0, "RichEdit20A", vbNullString)
'    OurSettzz& = FindWindowEx(OurParent&, OurHandle&, "RichEdit20A", vbNullString)
'    OurHandle& = OurSettzz&
'    OurButton& = FindWindowEx(OurParent&, 0, "Button", vbNullString)
    SendMessageSTRING OurHandle, WM_SETTEXT, 256, ""
'    SendMessageSTRING OurButton, BM_CLICK, 0, 0
    SendMSG "(C) RataTux Operator Tool Loaded... (C)", "", ""
    txtSend.SetFocus
End Sub

Private Sub cmdClear_Click()
    Call ClearScreen
End Sub

Private Sub cmdCommand_Click(Index As Integer)
    Dim sResult As VbMsgBoxResult
    Select Case Index
        Case 0
            SendMSG "/punish", Me.txtSend.Text, Me.cmbReason.Text
            Exit Sub
        Case 1
            SendMSG "/unpunish", Me.txtSend.Text, Me.cmbReason.Text
            Exit Sub
        Case 2
            SendMSG "/blockmic", Me.txtSend.Text, Me.cmbReason.Text
            Exit Sub
        Case 3
            SendMSG "/unblockmic", Me.txtSend.Text, Me.cmbReason.Text
            Exit Sub
        Case 4
            SendMSG "(ST)", Me.txtSend.Text & Chr$(32) & "(ST) This is a warning: ", Me.cmbReason.Text
            Exit Sub
        Case 5
            SendMSG "/kick", Me.txtSend.Text, Me.cmbReason.Text
            Exit Sub
        Case 6
            sResult = MsgBox("Are you sure you want to Ban '" & txtSend.Text & "'", vbInformation + vbYesNo, Me.Caption)
            If sResult = 6 Then
                SendMSG "/ban", Me.txtSend.Text, Me.cmbReason.Text
                Exit Sub
            End If
        Case 7
            sResult = MsgBox("Are you sure you want to Ban '" & txtSend.Text & "' on IP.", vbInformation + vbYesNo, Me.Caption)
            If sResult = 6 Then
                SendMSG "/banip", Me.txtSend.Text, Me.cmbReason.Text
                Exit Sub
            End If
    End Select
        '.cmdCommand(0).Caption = "Punish"
        '.cmdCommand(1).Caption = "Un-Punish"
        '.cmdCommand(2).Caption = "Block Mic"
        '.cmdCommand(3).Caption = "Un-Block Mic"
        '.cmdCommand(4).Caption = "Warn User"
        '.cmdCommand(5).Caption = "Kick User"
        '.cmdCommand(6).Caption = "Ban User"
        '.cmdCommand(7).Caption = "Ban User IP"
End Sub

Private Sub cmdExit_Click()
    End
End Sub

Private Sub cmdTop_Click()
    SetWindowPos Me.hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE
End Sub

Public Sub cmdTray_Click()
    mdiFrmMain.Hide
End Sub

Private Sub Form_Load()
    Me.infoIcon.Picture = frmIcon.p005.Picture
    cmdClear_Click
    frmRoom.Show
    frmChat.Show
    frmAdvertisement.Show
    frmTrivia.Show
    RemoveCloseMenuItem (Me.hWnd)
    
    Dim LogDir As String
    Dim TriviaDir As String
    LogDir = App.Path & "\Logs"
    TriviaDir = App.Path & "\Trivia"
    If DirExists(LogDir) = False Then
        CreateFolder (LogDir)
    End If
    If DirExists(TriviaDir) = False Then
        CreateFolder (TriviaDir)
    End If
    With Me
        .Label1.ForeColor = RGB(0, 93, 145)
        .Label2.ForeColor = RGB(0, 93, 145)
        .txtSend.ForeColor = RGB(158, 40, 47)
        .cmbReason.ForeColor = RGB(158, 40, 47)
        
        .lblRoomStat.ForeColor = RGB(0, 93, 145)
        
        .cmdCommand(0).Enabled = False
        .cmdCommand(1).Enabled = False
        .cmdCommand(2).Enabled = False
        .cmdCommand(3).Enabled = False
        .cmdCommand(4).Enabled = False
        .cmdCommand(5).Enabled = False
        .cmdCommand(6).Enabled = False
        .cmdCommand(7).Enabled = False
        
        .cmdCommand(0).Caption = "Punish"
        .cmdCommand(1).Caption = "Un-Punish"
        .cmdCommand(2).Caption = "Block Mic"
        .cmdCommand(3).Caption = "Un-Block Mic"
        .cmdCommand(4).Caption = "Warn User"
        .cmdCommand(5).Caption = "Kick User"
        .cmdCommand(6).Caption = "Ban User"
        .cmdCommand(7).Caption = "Ban User IP"
    
        .Show 'form must be fully visible
        .Refresh
        '.txtSend.SetFocus
    End With
  
        
        With nid 'with system tray
            .cbSize = Len(nid)
            .hWnd = Me.hWnd
            .uId = vbNull
            .uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE
            .uCallBackMessage = WM_MOUSEMOVE
            .hIcon = Me.Icon 'use form's icon in tray
            .szTip = App.Title & vbNullChar 'tooltip text
        End With
        
    Shell_NotifyIcon NIM_ADD, nid 'add to tray
    
    'SendMessage stAtBar.hWnd, PBM_SETBARCOLOR, 0, ByVal RGB(255, 255, 255)
    'SendMessage stAtBar.hWnd, PBM_SETBKCOLOR, 0, ByVal RGB(255, 255, 255)
    
End Sub

Private Sub Form_Resize()
    Picture1.Height = lblRoomStat.Height + 40
    lblRoomStat.Move 40, 10, Me.Width
End Sub

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Dim result, Action As Long
    
    'there are two display modes and we need to find out
    'which one the application is using
    
    If Me.ScaleMode = vbPixels Then
        Action = X
    Else
        Action = X / Screen.TwipsPerPixelX
    End If
    
Select Case Action

    Case WM_LBUTTONDBLCLK 'Left Button Double Click
        Me.WindowState = vbNormal 'put into taskbar
            result = SetForegroundWindow(Me.hWnd)
        Me.Show 'show form
    
    Case WM_RBUTTONUP 'Right Button Up
        result = SetForegroundWindow(Me.hWnd)
        'PopupMenu File 'popup menu, cool eh?
    
    End Select
    
End Sub

Private Sub Form_Unload(Cancel As Integer) 'on form unload
    Shell_NotifyIcon NIM_DELETE, nid 'remove from tray
End Sub

Private Sub mnuExit_Click() 'exit
    Unload Me: End
End Sub

Private Sub Frame4_DragDrop(Source As Control, X As Single, Y As Single)

End Sub

Private Sub Timer1_Timer()
    Dim OurParent As Long
    Dim sCaption As String * 256
    Dim lCaption As String
    'This Finds any window with "video Chat Room" in the title
    OurParent = FindWindowWild("*Video Chat Room*", False)
    'This statement is used for when camfrog rooms have topic set
    'as that would make the wildcard above void
    OurParent = FindWindowWild("*Topic:*", False)

    GetWindowText OurParent, sCaption, 256
    
    lCaption = Split(sCaption, Chr$(32))(0)
    lCaption = Replace$(lCaption, Chr$(44), "")
    If qCaption <> lCaption Then
        qCaption = lCaption
        'MsgBox qCaption
        'frmChat.Caption = Replace$(qCaption, ":", "") & " : Chat Room"
        'mdiFrmMain.Caption = Replace$(qCaption, ":", "") & " : Operator Tool"
        'frmMain.Caption = Replace$(qCaption, ":", "") & " : Main"
        'frmAdvertisement.Caption = Replace$(qCaption, ":", "") & " : Advertisement"
    End If
    If OurParent Then
        lblRoomStat.Caption = sCaption
        'lblRoomStat.ToolTipText = "You are currently in: " & sCaption
    Else
        lblRoomStat.Caption = "Not in a Room"
        'lblRoomStat.ToolTipText = "You are currently not connected to any rooms"
    End If
    GetMSG
End Sub

Private Sub txtSend_Change()
    Dim sendFT As Boolean
    If txtSend.Text <> "" Then
        sendFT = True
    Else
        sendFT = False
    End If
    With Me
        .cmdCommand(0).Enabled = sendFT
        .cmdCommand(1).Enabled = sendFT
        .cmdCommand(2).Enabled = sendFT
        .cmdCommand(3).Enabled = sendFT
        .cmdCommand(4).Enabled = sendFT
        .cmdCommand(5).Enabled = sendFT
        .cmdCommand(6).Enabled = sendFT
        .cmdCommand(7).Enabled = sendFT
    End With
End Sub

Private Sub WriteToLog(str As String)
    Dim LogDir As String, LogFile As String
    LogDir = App.Path & "\Logs"
    Dim fs As FileSystemObject
    Dim ts As TextStream
    If DirExists(LogDir) = False Then
        CreateFolder (LogDir)
    End If
    LogFile = App.Path & "\Logs\" & "Log_" & qCaption & Chr$(32) & Format(Now, "d-m-yyyy") & ".txt"
    'MsgBox LogFile
    If FileExists(LogFile) = False Then
        Open LogFile For Output As #1
            Write #1, "LogFile " & qCaption & Chr$(32) & Format(Now, "d-m-yyyy")
            Write #1, ":::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::"
        Close #1
    End If
    Open LogFile For Append As #1
        Write #1, str
    Close #1
    'Set fs = New FileSystemObject
    'Set ts = fs.OpenTextFile(LogFile, ForWriting, True)
    'ts.WriteLine str
    'ts.Close
End Sub

Private Sub TriviaFiles()
    Dim TriviaDir As String, TriviaFile As String, ScoresFile As String
    TriviaDir = App.Path & "\Trivia"
    Dim fs As FileSystemObject
    Dim ts As TextStream
    If DirExists(TriviaDir) = False Then
        CreateFolder (TriviaDir)
    End If
    TriviaFile = App.Path & "\Trivia\" & "questions.txt"
    ScoresFile = App.Path & "\Trivia\" & "scores.ini"
    If FileExists(TriviaFile) = False Then
        Open TriviaFile For Output As #1
            Write #1, "Example Question 1*Answer 1"
            Write #1, "Example Question 2*Answer 2"
            Write #1, "Example Question 3*Answer 3"
            Write #1, "Example Question 4*Answer 4"
            Write #1, "Example Question 5*Answer 5"
        Close #1
    End If
    If FileExists(ScoresFile) = False Then
        Open ScoresFile For Output As #1
            Write #1, "[scores]"
        Close #1
    End If
End Sub