none
VB6 類似按鍵精靈 讀取腳本

    問題

  • 我想要做一個程式
    可以像按鍵精靈一樣寫腳本然後執行
    以下是讀取腳本的程式碼
    Dim LineData() As String, LeftData As String, RightData As String
    Dim temp() As String
    LineData = Split(Text1.Text, Chr(13))
    For i = 0 To Ubound(LineData)
    temp = Split(Trim(LineData(i)), " ")
    LeftData = temp(0)
    For arrsize = 0 To Ubound(temp)
        RightData = RightData & temp(arrsize)
    Next
    Select Case UCase(LeftData)
        Case "MSGBOX"
            If Mid(RightData, 1, 1) = Chr(34) Then 'Chr(34)為雙引號,此行為判斷RightData是否為字串
                MsgBox Mid(RightData, 2, Len(RightData) - 2)
               
            End If
    End Select
    Next

    使用上述的程式碼,確實有功能
    但請問要如何實作Dim If While等指令呢??
    請各位高手解答
    謝謝!!!
    2009年12月31日 上午 11:13

解答

所有回覆

  • 拿出 vb6 安裝片,搜尋 MSSCRIPT.HLP ,打開來看。


    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。
    2009年12月31日 下午 12:08
  • 不好意思 我手邊沒有VB6安裝片
    能否請您貼下載點??
    • 已編輯 bauannModerator 2010年1月3日 下午 02:10 警告:請勿在討論區中要求(或張貼)違反智慧財產保護的軟體(以及載點)
    2009年12月31日 下午 12:19
  • 我是希望不要用到微軟的ocx
    直接在程式碼裡實現
    下面是四則運算的程式碼
    請問要怎麼把它修改成可以運算變數
    ex:
    在程式裡的程式碼

    Dim a
    a = 1
    MsgBox a+2

    Public Function Cal(want As String) As Single
         Dim i As Long, j As Long, SymNum As Long, temp As Single, TempStr As String
         Dim SymPos() As Variant, SymType(1 To 4) As String * 1, char As String * 1
         Dim Length As Long, SymTypeNum As Long, ErrMsg As String, ErrNum As Long
         ErrNum = vbObjectError + 2000
         ErrMsg = "運算式有誤"
         want = ElimSpace(want)
         SymType(1) = "+": SymType(2) = "-": SymType(3) = "*": SymType(4) = "/"
         Length = Len(want)
         SymTypeNum = UBound(SymType)
         For i = 1 To Length
              char = Mid(want, i, 1)
              If Not IsNumeric(char) And char <> "." Then
                   For j = 1 To SymTypeNum
                        If char = SymType(j) Then
                             If i = 1 Then
                                  If char = "-" Then Exit For Else Err.Raise ErrNum, , ErrMsg
                             ElseIf SymNum > 0 Then
                                  If SymPos(1, SymNum) = i - 1 Then
                                       If char = "-" Then Exit For Else Err.Raise ErrNum, , ErrMsg
                                  End If
                             End If
                             SymNum = SymNum + 1
                             ReDim Preserve SymPos(1 To 2, 1 To SymNum)
                             SymPos(1, SymNum) = i
                             SymPos(2, SymNum) = SymType(j)
                             Exit For
                        End If
                   Next
                   If j = SymTypeNum + 1 Then Err.Raise ErrNum, , ErrMsg
              End If
         Next
         ReDim Preserve SymPos(1 To 2, 1 To SymNum + 1)
         SymPos(1, SymNum + 1) = Length
         TempStr = Mid(want, 1, SymPos(1, 1) - IIf(SymNum = 0, 0, 1))
         If IsNumeric(TempStr) Then Cal = TempStr Else Err.Raise ErrNum, , ErrMsg
         i = 1
         Do While i <= SymNum
              TempStr = Mid(want, SymPos(1, i) + 1, SymPos(1, i + 1) - SymPos(1, i) - IIf(i = SymNum, 0, 1))
              If IsNumeric(TempStr) Then temp = TempStr Else Err.Raise ErrNum, , ErrMsg
              Select Case SymPos(2, i)
                   Case SymType(1)
                        GoSub deal
                        Cal = Cal + temp
                   Case SymType(2)
                        GoSub deal
                        Cal = Cal - temp
                   Case SymType(3)
                        Cal = Cal * temp
                   Case SymType(4)
                        Cal = Cal / temp
              End Select
              i = i + 1
         Loop
         Exit Function
    deal:
         For j = i + 1 To SymNum
              If SymPos(2, j) = "*" Then
                   TempStr = Mid(want, SymPos(1, j) + 1, SymPos(1, j + 1) - SymPos(1, j) - IIf(j = SymNum, 0, 1))
                   If IsNumeric(TempStr) Then temp = temp * TempStr Else Err.Raise ErrNum, , ErrMsg
              ElseIf SymPos(2, j) = "/" Then
                   TempStr = Mid(want, SymPos(1, j) + 1, SymPos(1, j + 1) - SymPos(1, j) - IIf(j = SymNum, 0, 1))
                   If IsNumeric(TempStr) Then temp = temp / TempStr Else Err.Raise ErrNum, , ErrMsg
              Else
                   Exit For
              End If
         Next
         i = j - 1
         Return
    End Function
    Public Function ElimSpace(s As String) As String
         Dim i As Long, j As Long
         s = Trim(s)
         Do
               i = InStr(j + 1, s, " ", vbBinaryCompare)
              If i <> j + 1 Then
                   If i <> 0 Then
                        ElimSpace = ElimSpace & Mid(s, j + 1, i - j - 1)
                   Else
                        ElimSpace = ElimSpace & Mid(s, j + 1)
                   End If
              End If
              j = i
         Loop Until i = 0
    End Function
    2009年12月31日 下午 01:30
  • http://www.google.com.tw/search?hl=zh-TW&source=hp&q=%E7%B7%A8%E8%AD%AF%E5%99%A8%E5%AF%A6%E4%BD%9C&meta=&aq=6&oq=%22%E7%B7%A8%E8%AD%AF%E5%99%A8
    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。
    • 已標示為解答 mark538 2010年1月10日 上午 07:39
    2009年12月31日 下午 02:20
  • 不好意思
    如果查"編譯器實作"都是C的
    我看不懂.....
    2010年1月9日 上午 12:43
  • 如果看不懂,就表示你得乖乖的回去用 Script Control


    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。
    2010年1月10日 上午 03:37
  • 那個 心冷熱情熄
    我記得你剛才所說要拿出來Tiny C 和 Lua 改改當作你的腳本程式跟我計較...等了很久沒有消息!
    mark538 建議先學 Script Control熟好後,先考考自己寫腳本發展! 我以前學熟Script Control後轉自己寫出來腳本程式~就這樣!
    2010年1月10日 下午 01:42
  • ymlk: 你認錯人了吧?而且邏輯也怪怪的,剛才...等很久?


    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。
    2010年1月11日 上午 05:05
  • 對,認錯人...沒事啦 = =''
    2010年1月11日 上午 09:15