爱问 爱问共享资料 爱问分类

vb如何打开记事本然后查找需要的内容

首页

vb如何打开记事本然后查找需要的内容

就是在text1输入了内容
然后判断记事本上有没有这个内容
有就form2.show
没有就msgbox"没有"

草原上的野马00

查看TA的回答:

提交回答
好评回答
  • 2019-03-06 10:30:28
      'VB6。0 用记事本打开文本文件,然后判断是否包含特定的字符串
    Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, _
            ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) 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 GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, _
            ByVal lpClassName As String, ByVal nMaxCount As Long) As Long
     
    Const WM_GETTEXT = &HD
    Const WM_GETTEXTLENGTH = &HE
    Function GetEditHwnd(hwnd As Long, sClass As String) As Long
        '循环查找窗口句柄,获取文本编辑框的句柄
        Dim lhWnd As Long
        Dim ClassName As String
        Do
            lhWnd = FindWindowEx(hwnd, lhWnd, vbNullString, vbNullString)
            If lhWnd 0 Then
                    GetEditHwnd = lhWnd
                    Exit Do
                End If
            End If
        Loop Until lhWnd = 0
    End Function
    Private Sub Command1_Click()
        Dim PadHwnd As Long         '记事本的句柄
        Dim ChildHwnd As Long       '记事本文本框句柄
        Dim N As Long
        Dim buf() As Byte
        Dim s As String
        Dim sPath As String
     
        '假设D盘根目录有一个文本文件ff。
      txt
        sPath = "d:ff。txt"
        s = Mid(sPath, InStrRev(sPath, "") 1)
     
        Call Shell("notepad" & " " & sPath, vbMinimizedFocus)   '用记事本打开文件
        PadHwnd = FindWindow("notepad", s & " - 记事本")
        ChildHwnd = GetEditHwnd(PadHwnd, "edit")
        N = SendMessage(ChildHwnd, WM_GETTEXTLENGTH, 0, 0)  '获取文本长度
        If N > 0 Then   '获取记事本内容,并判断是否包含Text1中的内容
            ReDim buf(N)
            Call SendMessage(ChildHwnd, WM_GETTEXT, N, buf(0))
            s = StrConv(LeftB(buf, N), vbUnicode)
            If InStr(1, s, Text1。
      Text, vbTextCompare) = 0 Then
                MsgBox "没有"
            Else
                MsgBox "有"     'form2。
      Show
            End If
        End If
    End Sub
    ---------------------------
    另外,可以利用系统Find或Findstr命令来判断文本文件中是否包含特定的字符串。
      Win键 R,输入 cmd 回车,在命令提示符进行操作:
    1、find命令搜索d:abc目录下的所有。txt文件中是否包含“计算机”,后面数值不为0则说明包含“计算机”。注:Ansi、Unicode格式文本都可以进行。

    find  /i  /c  "计算机"  d:abc*。
      txt

    2、findstr命令搜索D盘所有目录下包含“计算机”的文件,仅显示文件名。注:只能对Ansi格式文本进行。

    findstr  /i  /m  /s  "计算机"  d:*。
      txt。

    没有你我一样...

    2019-03-06 10:30:28

其他答案

    2019-03-06 10:58:12
  • 主要还是在系统里执行搜查命令即可

    Cara猪猪

    2019-03-06 10:58:12

  • 2019-03-06 10:35:47
  • dim txt as string
    txt=inputbox(" 请输入要查找的文本")
    Do While Not EOF(nFile)
       Input #nFile, str
       if instr(str,txt)then
          msgbox "OK"
         Close nFile
         exit sub
    end
    Loop
    msbgox "NG"
    Close nFile

    张似春

    2019-03-06 10:35:47

  • 2019-03-06 10:28:09
  • dim ** as string**=divbox(" 请输入要查找的文本")Do While Not EOF(nFile)   Input #nFile, str   if instr(str,**)then      msgbox "OK"     Close nFile     exit subendLoopmsbgox "NG"Close nFile

    Elden宋

    2019-03-06 10:28:09

  • 2019-03-06 10:26:40
  • 首先FindWindow得到记事本的hWnd,然后GetWindow得到记事本中描绘文字的那个窗口的hWnd,最后GetWindowText得到记事本中的文字,查找就是你自己程序内部的事情了,很简单了吧

    怅施德亮

    2019-03-06 10:26:40

类似问题

换一换

相关推荐

正在加载...

爱问推荐

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 171-190
返回
顶部
帮助 意见
反馈
关注
爱问

关注爱问微信公众号,开启知识之旅,随时随地了解最新资讯。

确定举报此问题

举报原因(必选):