Foxtable(狐表)用户栏目专家坐堂 → [求助]代码黏贴


  共有3165人关注过本帖树形打印复制链接

主题:[求助]代码黏贴

帅哥哟,离线,有人找我吗?
有点色
  11楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2016/12/20 17:48:00 [只看该作者]

以下是引用有点色在2016/12/20 14:57:00的发言:
关闭项目,删除项目的bin文件夹,重新打开重新

 

新建一个项目也不行?

[此贴子已经被作者于2016/12/20 17:48:57编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
苏州老街
  12楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:636 积分:4062 威望:0 精华:0 注册:2016/10/19 16:45:00
  发帖心情 Post By:2016/12/20 19:15:00 [只看该作者]

新建项目可以的

 回到顶部
帅哥哟,离线,有人找我吗?
苏州老街
  13楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:636 积分:4062 威望:0 精华:0 注册:2016/10/19 16:45:00
  发帖心情 Post By:2016/12/20 19:19:00 [只看该作者]

老师,下面代码和文件中的代码有什么冲突。
<DllImport("user32.dll", EntryPoint := "SendMessage")> _
Public Function SendMessage(hWnd As IntPtr, wMsg As Integer, wParam As Integer, lParam As Integer) As Integer
End Function
'获取滚动条位置  
<DllImport("user32")> _
Public Function GetScrollPos(hwnd As IntPtr, nBar As Integer) As Integer
End Function
'设置滚动条位置  
<DllImport("user32.dll")> _
Public Function SetScrollPos(hWnd As IntPtr, nBar As Integer, nPos As Integer, bRedraw As Boolean) As Integer
End Function

Public Const EM_LINESCROLL As Integer = &Hb6

 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:eventcode.rar

[此贴子已经被作者于2016/12/20 20:20:00编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  14楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106067 积分:539428 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/12/20 20:25:00 [只看该作者]

已经定义了同样名称的api函数,不能重复定义

 回到顶部
帅哥哟,离线,有人找我吗?
苏州老街
  15楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:636 积分:4062 威望:0 精华:0 注册:2016/10/19 16:45:00
  发帖心情 Post By:2016/12/20 21:16:00 [只看该作者]

老师,那我下面代码怎样修改


<DllImport("user32.dll", EntryPoint := "SendMessage")> _
Public Function SendMessage(hWnd As IntPtr, wMsg As Integer, wParam As Integer, lParam As Integer) As Integer
End Function
'获取滚动条位置  
<DllImport("user32")> _
Public Function GetScrollPos(hwnd As IntPtr, nBar As Integer) As Integer
End Function
'设置滚动条位置  
<DllImport("user32.dll")> _
Public Function SetScrollPos(hWnd As IntPtr, nBar As Integer, nPos As Integer, bRedraw As Boolean) As Integer
End Function

Public Const EM_LINESCROLL As Integer = &Hb6

 回到顶部
帅哥,在线噢!
有点蓝
  16楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106067 积分:539428 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/12/20 22:13:00 [只看该作者]

已经定义了,就没有必要再加上面的代码了。

硬要的话改下函数名字

<DllImport("user32.dll", EntryPoint := "SendMessage")> _
Public Function SendMessageabcde(hWnd As IntPtr, wMsg As Integer, wParam As Integer, lParam As Integer) As Integer
End Function

 回到顶部
帅哥哟,离线,有人找我吗?
苏州老街
  17楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:636 积分:4062 威望:0 精华:0 注册:2016/10/19 16:45:00
  发帖心情 Post By:2016/12/21 8:01:00 [只看该作者]


老师,不加上面代码打开窗口为报错。


图片点击可在新窗口打开查看此主题相关图片如下:图像 1.png
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
苏州老街
  18楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:636 积分:4062 威望:0 精华:0 注册:2016/10/19 16:45:00
  发帖心情 Post By:2016/12/21 8:08:00 [只看该作者]

'发送消息  
<DllImport("user32.dll", EntryPoint := "SendMessage")> _
Public Function SendMessage(hWnd As IntPtr, wMsg As Integer, wParam As Integer, lParam As Integer) As Integer
End Function
'获取滚动条位置  
<DllImport("user32")> _
Public Function GetScrollPos(hwnd As IntPtr, nBar As Integer) As Integer
End Function
'设置滚动条位置  
<DllImport("user32.dll")> _
Public Function SetScrollPos(hWnd As IntPtr, nBar As Integer, nPos As Integer, bRedraw As Boolean) As Integer
End Function

Public Const EM_LINESCROLL As Integer = &Hb6


“====================================================================
Public myform As Windows.Forms.Form

Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As IntPtr, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Boolean
Public Declare Function ReleaseCapture Lib "user32" () As Integer

Public Const BorderWidth As Integer = 6
Public _resizeDir As ResizeDirection = ResizeDirection.None

Public Enum ResizeDirection
None = 0
Left = 1
TopLeft = 2
Top = 3
TopRight = 4
Right = 5
BottomRight = 6
Bottom = 7
BottomLeft = 8
End Enum


Public Property resizeDir() As ResizeDirection
Get
Return _resizeDir
End Get
Set(ByVal value As ResizeDirection)
_resizeDir = value

'Change cursor
Select Case value
    Case ResizeDirection.Left
        myform.Cursor = System.Windows.Forms.Cursors.SizeWE
        
    Case ResizeDirection.Right
        myform.Cursor = System.Windows.Forms.Cursors.SizeWE
        
    Case ResizeDirection.Top
        myform.Cursor = System.Windows.Forms.Cursors.SizeNS
        
    Case ResizeDirection.Bottom
        myform.Cursor = System.Windows.Forms.Cursors.SizeNS
        
    Case ResizeDirection.BottomLeft
        myform.Cursor = System.Windows.Forms.Cursors.SizeNESW
        
    Case ResizeDirection.TopRight
        myform.Cursor = System.Windows.Forms.Cursors.SizeNESW
        
    Case ResizeDirection.BottomRight
        myform.Cursor = System.Windows.Forms.Cursors.SizeNWSE
        
    Case ResizeDirection.TopLeft
        myform.Cursor = System.Windows.Forms.Cursors.SizeNWSE
        
    Case Else
        myform.Cursor = System.Windows.Forms.Cursors.Default
End Select
End Set
End Property

Public Const WM_NCLBUTTONDOWN As Integer = &HA1
Public Const HTBORDER As Integer = 18
Public Const HTBOTTOM As Integer = 15
Public Const HTBOTTOMLEFT As Integer = 16
Public Const HTBOTTOMRIGHT As Integer = 17
Public Const HTCAPTION As Integer = 2
Public Const HTLEFT As Integer = 10
Public Const HTRIGHT As Integer = 11
Public Const HTTOP As Integer = 12
Public Const HTTOPLEFT As Integer = 13
Public Const HTTOPRIGHT As Integer = 14


Public Sub MoveForm()
ReleaseCapture()
SendMessage(myform.Handle, WM_NCLBUTTONDOWN, HTCAPTION, 0)
End Sub

Public Sub ResizeForm(ByVal direction As ResizeDirection)
Dim dir As Integer = -1
Select Case direction
    Case ResizeDirection.Left
        dir = HTLEFT
    Case ResizeDirection.TopLeft
        dir = HTTOPLEFT
    Case ResizeDirection.Top
        dir = HTTOP
    Case ResizeDirection.TopRight
        dir = HTTOPRIGHT
    Case ResizeDirection.Right
        dir = HTRIGHT
    Case ResizeDirection.BottomRight
        dir = HTBOTTOMRIGHT
    Case ResizeDirection.Bottom
        dir = HTBOTTOM
    Case ResizeDirection.BottomLeft
        dir = HTBOTTOMLEFT
End Select

If dir <> -1 Then
    ReleaseCapture()
    SendMessage(myform.Handle, WM_NCLBUTTONDOWN, dir, 0)
End If
End Sub


Public Sub myform_MouseDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) 
If e.Button = Windows.Forms.MouseButtons.Left And myform.WindowState <> Windows.Forms.FormWindowState.Maximized Then
    ResizeForm(resizeDir)
End If
End Sub

Public Sub myform_MouseMove(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) 
'Calculate which direction to resize based on mouse position

If e.Location.X < BorderWidth And e.Location.Y < BorderWidth Then
    resizeDir = ResizeDirection.TopLeft
    
ElseIf e.Location.X < BorderWidth And e.Location.Y > myform.Height - BorderWidth Then
    resizeDir = ResizeDirection.BottomLeft
    
ElseIf e.Location.X > myform.Width - BorderWidth And e.Location.Y > myform.Height - BorderWidth Then
    resizeDir = ResizeDirection.BottomRight
    
ElseIf e.Location.X > myform.Width - BorderWidth And e.Location.Y < BorderWidth Then
    resizeDir = ResizeDirection.TopRight
    
ElseIf e.Location.X < BorderWidth Then
    resizeDir = ResizeDirection.Left
    
ElseIf e.Location.X > myform.Width - BorderWidth Then
    resizeDir = ResizeDirection.Right
    
ElseIf e.Location.Y < BorderWidth Then
    resizeDir = ResizeDirection.Top
    
ElseIf e.Location.Y > myform.Height - BorderWidth Then
    resizeDir = ResizeDirection.Bottom
    
Else
    resizeDir = ResizeDirection.None
End If
End Sub


老师,这两组代码通过修改能兼用吗?

 回到顶部
帅哥,在线噢!
有点蓝
  19楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106067 积分:539428 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/12/21 9:03:00 [只看该作者]

去掉下面这段

Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As IntPtr, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Boolean

 回到顶部
帅哥哟,离线,有人找我吗?
苏州老街
  20楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:636 积分:4062 威望:0 精华:0 注册:2016/10/19 16:45:00
  发帖心情 Post By:2016/12/21 9:36:00 [只看该作者]

'Public lb As String '定义一个全局变量作为标志,根据这个标志执行对应操作
'Public Isgo As Boolean '定义一个全局变量逻辑值,根据这个逻辑值判断是否继续进行运作
''定义一个WebBrowser加载完成事件,(每当浏览器加载完成当前页面就会执行该事件)
'Public Sub WebBrowser1_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs)
'If Isgo Then '判断一下ISGO是否需要执行操作 如果是TRUE说明可以继续执行操作, 如果是FALSE说明已经执行完毕,或者点击了停止.
   ' Dim web As System.Windows.Forms.WebBrowser = sender '把触发该事件的Sender转换为WebBrowser
    'If web.ReadyState=System.Windows.Forms.WebBrowserReadyState.Complete'由于加载完成事件会触发多次,分别为页面数据加载完成,DOM树加载完成.所以这里要判断一下.确保所有东西都加载完成再执行下面的操作
        'Select Case lb '分别根据LB标志的值来执行不同的操作
           ' Case "访问"
               ' If web.Document.Body.OuterHtml.Contains("javascript:Dv_Win_Modal.Open('login_win.asp?winaction=winlogin',500,350);") Then '判断一下当前页面的是否包含这串字符串(用来判断是否已经处于登录状态)
                    'Dim hec As System.Windows.Forms.HtmlElementCollection = web.Document.GetElementsByTagName("a") '获得当前页面的A标签HTML元素集合
                    'For i As Integer = 0 To hec.Count-1 '循环所有A标签
                        'If hec(i).OuterHtml.Contains("javascript:Dv_Win_Modal.Open('login_win.asp?winaction=winlogin',500,350);") Then '判断该A标签是否包含这个字符串(如果包含说明该A标签是登录按钮)
                            'hec(i).InvokeMember("click") '执行该标签的点击方法,从而实现点击登录按钮
                           ' lb="登录"  '把LB设置为"登录" 这样下一步就回执行Case "登录" 里面的代码
                           ' Exit For  '既然已经找到了这个A标签,没有必须继续循环了.退出循环
                       ' End If
                   ' Next
               ' Else '发现页面没有包含该字符串,说明没有登录按钮,处于已经登录状态
                    'Dim hec As System.Windows.Forms.HtmlElementCollection = web.Document.GetElementsByTagName("a")  '获得当前页面的A标签HTML元素集合
                   ' For i As Integer = 0 To hec.Count-1 '循环所有A标签
                        'If hec(i).OuterHtml.Contains("logout.asp") Then  '判断这个A标签是否包含这个字符串,如果包含说明是退出登录按钮
                            'hec(i).InvokeMember("click") '执行该A标签的点击方法,从而实现点击退出按钮.
                            'lb="访问" ''把LB设置为"登录" 这样下一步就回执行Case "访问" 里面的代码
                           ' Exit For
                        'End If
                   ' Next
                'End If
           ' Case "登录"
               ' web.Document.Window.Frames(1).Document.GetElementById("username").SetAttribute("Value","苏州") '获得第二个FrAMES框架里面的ID为"username"的的HTML标签元素,并且将其Value设置为"test138"
                'web.Document.Window.Frames(1).Document.GetElementById("pwd1").SetAttribute("Value","659385li") '("Value","a110110") '获得第二个FrAMES框架里面的ID为"pwd1"的的HTML标签元素,并且将其Value设置为"a110110"
               ' '如果元素不是在Frame框架中,那么直接 web.Document.GetElementById 即可
               '' '如果元素没有ID怎么办? 按照上面的方法,获得指定类型的元素集合,然后循环判断是否包含该字段的方法来获得.
               ' '下面的代码都大同小异,就不一一介绍了.
               ' Dim hec As System.Windows.Forms.HtmlElementCollection = web.Document.Window.Frames(1).Document.GetElementsByTagName("input")
               ' For i As Integer = 0 To hec.Count-1
                   ' If hec(i).OuterHtml.Contains("立即登录") Then
                     ' hec(i).InvokeMember("click")
                   ''  '   lb="去精华板块"
                       ' Exit For
                    'End If
               ' Next
          ''  Case "去精华板块"
             '  ' web.Navigate("http://www.foxtable.com/bbs/index.asp?boardid=2&TopicMode=0&List_Type=6,0,0&page=")
            '   ' lb="查找帖子"
        ''   ' Case "查找帖子"
               ' Dim hec As System.Windows.Forms.HtmlElementCollection = web.Document.GetElementsByTagName("a")
               ' For i As Integer = 0 To hec.Count-1
                 '' '  If hec(i).OuterHtml.Contains("不怕空袭的通用多选筛选树") Then
                      ' hec(i).InvokeMember("click")
                    ''   ' lb="下载文件"
                      ' Exit For
                 ''  ' End If
                'Next
          '' ' Case "下载文件"
               ''' 'Dim hec As System.Windows.Forms.HtmlElementCollection = web.Document.GetElementsByTagName("a")
                'For i As Integer = 0 To hec.Count-1
                  ''' ' If hec(i).OuterHtml.Contains("点击浏览该文件:多选筛选树.table") Then
                      '  hec(i).InvokeMember("click")
                    ''  '  lb="下载文件"
                       ' Exit For
                 '''  ' End If
              '  Next
               ' Isgo=False
       ' End Select
   ' End If
'End If
'End Sub
"======================================
Public Isgo As Boolean '定义一个全局变量逻辑值,根据这个逻辑值判断是否继续进行运作
'定义一个WebBrowser加载完成事件,(每当浏览器加载完成当前页面就会执行该事件)
Public Sub WebBrowser1_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs)

Dim web As System.Windows.Forms.WebBrowser = sender '把触发该事件的Sender转换为WebBrowser
If web.ReadyState=System.Windows.Forms.WebBrowserReadyState.Complete AndAlso Isgo Then '由于加载完成事件会触发多次,分别为页面数据加载完成,DOM树加载完成.所以这里要判断一下.确保所有东西都加载完成再执行下面的操作
    
    web.Document.Body.Children(0).OuterHtml=web.Document.Body.Children(0).OuterHtml.replace(Forms("文件搜索").controls("TextBox2").text,"<Span Style=""Color:Red;background-color:yellow;"" >" & Forms("文件搜索").controls("TextBox2").text & "</Span>")
    Isgo=False
End If
End Sub
老师,上面两组代码怎样合并。


 回到顶部
总数 39 上一页 1 2 3 4 下一页