以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  引用第三方控件  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=135213)

--  作者:1498351234
--  发布时间: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编辑过]

--  作者:有点甜
--  发布时间:2019/5/21 9:31:00
--  

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

 

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

 

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


--  作者:1498351234
--  发布时间: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编辑过]

--  作者:有点甜
--  发布时间:2019/5/21 10:25:00
--  

全局代码

 

Public dm As Object 

 

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


--  作者:1498351234
--  发布时间:2019/5/21 10:45:00
--  
好了,谢谢老师!
--  作者:1498351234
--  发布时间:2019/5/23 10:14:00
--  引用第三方应用

老师好!

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


--  作者:有点蓝
--  发布时间:2019/5/23 11:35:00
--  
if dm isnot nothing then msgbox("不是空对象")

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

--  作者:1498351234
--  发布时间: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毫秒

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

--  作者:有点甜
--  发布时间:2019/5/24 19:22:00
--  

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

 

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