Foxtable(狐表)用户栏目专家坐堂 → 引用第三方控件


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

主题:引用第三方控件

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


加好友 发短信
等级:幼狐 帖子:150 积分:1969 威望:0 精华:0 注册:2017/2/19 9:09:00
引用第三方控件  发帖心情 Post By:2019/5/21 8:02:00 [只看该作者]

老师好!
  我在foxtable 中引用第三方控件成功显示,在命令窗口中执行代码如下。
Dim hwnd As Integer

'开始引用外部控件DLL
Dim dm As Object
dm = createobject("dm.dmsoft")'创建对象
If len(dm.ver())>0 Then '检查是否注册成功
Else
    MsgBox("大漠注册失败")
End If
dm.SetPath("C:\dnf_pm")'设置全局路径
dm.SetDict(0, "dm_soft.txt")'创建字库
'外部引用结束

hwnd = dm.FindWindow("","记事本")
msgbox(hwnd )

1、执行成功,并显示窗口句柄,如何才能不每次都这样注册,直接在任何写代码的地方写如下代码:Dim hwnd As Integer  hwnd = dm.FindWindow("","记事本")  ;
2、添加了外部应用,运行Dim hwnd As Integer   hwnd = dm.FindWindow("","记事本")   程序出错。不添加外部应用也出错,要怎样才能达到第1条的要求。


[此贴子已经被作者于2019/5/21 8:04:23编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/5/21 9:31:00 [只看该作者]

1、定于全局变量,用于保存对象

 

http://www.foxtable.com/webhelp/scr/1842.htm

 

2、不需要添加dll引用的。报错,报什么错?


 回到顶部
帅哥哟,离线,有人找我吗?
1498351234
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:150 积分:1969 威望:0 精华:0 注册:2017/2/19 9:09:00
  发帖心情 Post By:2019/5/21 10:08:00 [只看该作者]

老师好!

 句子这样写

Public files As New List(Of String)
Public dirs As New List(Of String)
Public dm As Object  = createobject("dm.dmsoft")'创建对象
'If len(dm.ver())>0 Then    '检查是否注册成功
'Else
    'MsgBox("大漠注册失败")
'End If
Public dm_ret_P  As  String   =  dm.SetPath("C:\dnf_pm")'设置全局路径
Public dm_ret_D As     String =  dm.SetDict(0, "dm_soft.txt")'创建字库

 

放在全局代码中出错啊!


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

怎样才能把这个句子写进去,只要一打开项目就知道注册是否成功


 

[此贴子已经被作者于2019/5/21 10:08:40编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/5/21 10:25:00 [只看该作者]

全局代码

 

Public dm As Object 

 

其余代码,请写到afterOpenProject事件去


 回到顶部
帅哥哟,离线,有人找我吗?
1498351234
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:150 积分:1969 威望:0 精华:0 注册:2017/2/19 9:09:00
  发帖心情 Post By:2019/5/21 10:45:00 [只看该作者]

好了,谢谢老师!

 回到顶部
帅哥哟,离线,有人找我吗?
1498351234
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:150 积分:1969 威望:0 精华:0 注册:2017/2/19 9:09:00
引用第三方应用  发帖心情 Post By:2019/5/23 10:14:00 [只看该作者]

老师好!

  怎样才能发现一个外来的对象dm = createobject("dm.dmsoft")'创建对象已经成功,并且能够检测这个对象存在?如果这个对象存在重新注册一次会不会有什么危害。


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


加好友 发短信
等级:超级版主 帖子:110592 积分:562856 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/5/23 11:35:00 [只看该作者]

if dm isnot nothing then msgbox("不是空对象")

重新创建一次对象基本没有什么影响

 回到顶部
帅哥哟,离线,有人找我吗?
1498351234
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:150 积分:1969 威望:0 精华:0 注册:2017/2/19 9:09:00
鼠标点击  发帖心情 Post By:2019/5/24 16:46:00 [只看该作者]

老师好!
按照相关帖子我引用了鼠标部分的全局变量。在命令窗口中输入以下代码

SetCursorPos (1289, 795) '鼠标位置
System.Threading.Thread.Sleep(200)  '延时200毫秒
mouse_event( MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)  '点击
System.Threading.Thread.Sleep(200)  '延时200毫秒
mouse_event (MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)
System.Threading.Thread.Sleep(200)  '延时200毫秒

执行命令后鼠标是移动到指定位置,但是点击没有反映。实际当中单击这个按钮是有事件发生的。问一下是代码有问题吗?

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/5/24 19:22:00 [只看该作者]

执行这个代码 SetCursorPos (1289, 795)

 

然后稍微移动一下鼠标,看是否移动到了对应位置。接着点击一下鼠标,看是否能正常操作。


 回到顶部