分享

VB 调用大漠插件操作记事本实例

 新猫 2014-06-25
VB 调用大漠插件操作记事本实例
操作过程 需要在VB 中添加一个模块 然后添加模块代码如下:

CODE:


Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
'延时函数 sleep
Public Function Delay(DT As Long)
For i = 0 To DT Step 2
DoEvents '操作权交给系统 否则程序会暂时无响应
Sleep 1
Next i
End Function
Public Function 注册(dm As Object) As Object
Shell "regsvr32 dm.dll /s" '注册大漠插件到系统
Delay 500
Set dm = CreateObject("dm.dmsoft") '创建大漠插件
End Function
然后在FORM1中添加如下代码:

CODE:


Dim dm As Object   '声明 DM 为控件类型
Private Sub Form_Load()
On Error Resume Next '容错处理 遇到错误直接执行下面的语句
Form1.Visible = False 'FORM1 不可见 程序运行过程中看不到程序窗体
注册 dm               '调用模块 注册大漠插件
Shell "NOTEPAD", vbNormalFocus '运行 记事本程序 并让这个程序带有焦点
Delay 1000
myhwnd = dm.GetForegroundWindow() '获得顶层活动窗口,因为运行 记事本的时候将它设置为了当前窗口 所以这里获取的是记事本的窗口句柄
Delay 500
hwnd1 = dm.GetForegroundFocus() '获得顶层具有输入焦点的窗口句柄 也就是 记事本的 Edit 类的句柄
dm.SendString hwnd1, "我是来测试的"
Delay 1000
dm.SendString hwnd1, vbCrLf + "这样我们就简单的实现了 向记事本输入文本的操作!"
Delay 1000
dm.SendString hwnd1, vbCrLf + "怎么样?是不是很简单呢?"
Delay 1000
dm.SendString hwnd1, vbCrLf + "下来我们让它自动保存为 D:\A.TXT  睁大眼睛看了哦!"
Delay 3000
'以上代码实现了 向记事本中输入文本的功能
dm.SetWindowState myhwnd, 0 '关闭记事本
Do While 1 < 2
Delay 1000
mhwnd = dm.FindWindow("#32770", "记事本")  '去找关闭时弹出的对话框 让你选择是否保存
If mhwnd > 0 Then
dm.KeyPress 13  '找到后按下 回车 按键
Exit Do
End If
Loop
Kill "d:\a.txt"  '如果 D:\a.txt 文件已经存在则先删除
Do While 1 < 2
Delay 1000
mhwnd = dm.FindWindow("#32770", "另存为") '去找 另存为 窗口的句柄
If mhwnd > 0 Then
Exit Do
End If
Loop
hwnd2 = dm.GetForegroundFocus() '和上面一样 获得具有输入焦点的窗口句柄
Delay 1000
dm.SendString hwnd2, "D:\a.txt" '在这里输入 保存的路径和文件名
Delay 1000
dm.KeyPress 13 '按下回车键 确认
a = MsgBox("演示结束,现在自动打开 D:\A.TXT", vbOKOnly) '对话框提示 演示结束
Shell "NOTEPAD d:\a.txt", vbNormalFocus '打开刚才保存的文件
Delay 2000
End '延时两秒后程序自动结束
End Sub
要求 大漠插件和你编辑的工程在同一个目录 否则 会导致注册失败,也可以将代码粘贴完后 直接生成工程  然后把 DM.DLL 和你生成的工程放在同一个目录下就OK了
运行程序后 会自动执行一系列 记事本操作。有兴趣者可以自己试验研究。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约