以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  高级功能研发区  (http://222.73.7.161/bbs/list.asp?boardid=5)
----  复制股票代码到剪贴板的VBS代码  (http://222.73.7.161/bbs/dispbbs.asp?boardid=5&id=23)

--  作者:王锋
--  发布时间:2009/8/30 18:29:00
--  复制股票代码到剪贴板的VBS代码
Sub fzdm()    
   Application.ActivateFrame("Technic")
    \'与该窗格关联的证券代码
   Set Grid = Technic.GetGridByName("Main")
   Label = Grid.StockLabel       
   Set objIE = CreateObject("InternetExplorer.Application")    \'复制股票代码到剪贴板
   objIE.Navigate("about:blank")
   objIE.document.parentwindow.clipboardData.SetData "text", Label
   objIE.Quit
   MsgBox "复制成功"
End Sub
 
这是复制股票代码的宏,取得股票代码后,在复制到
浏览器关键词的地方,进行搜索。也很实用的
将这段代码复制到斯道客上的步骤:
   按Shift+W 打开管理面板,选择高级标签,双击“模块”中的“Macro”,再随后弹出的VBS代码编辑器界面上,选择“运行”菜单,然后单击“重新设置”来停止VBS宏的运行,随后将以上代码粘贴到编辑器中,然后再选择“运行”菜单的“执行”命令开始VBS的运行。
   然后再“工具”菜单上选择“宏”,然后单击“执行宏”命令,再随后弹出的“执行宏”对话框上输入“fzdm”,单击确定按钮,就可以把当前K线界面中的股票代码复制到粘贴版了。(注意一定要在K线图界面上使用该宏)
--  作者:admin
--  发布时间:2009/8/31 9:33:14
--  

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

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

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

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

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

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

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

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

--  作者:Marcus
--  发布时间:2009/9/9 0:27:32
--  
 非常感谢楼上各位指点!

顺便问几个剪贴板相关问题:
1. 剪贴板内容是否能同时被几个进程访问?这个问题很重要,涉及到进程间同步的问题。
2. 能否直接知道剪贴板内容是否为空?这样做的目的是省却无用的拷贝数据操作。
3. VBS怎么读剪贴板内容?

--  作者:admin
--  发布时间:2009/9/9 8:53:54
--  

剪切版是可以多进程访问

至于操作你可以在网上搜索一下 InternetExplorer.Application 对象得有关帮助

 

例子如下

Set ie=createobject("internetexplorer.application")
ie.navigate "about:blank"
ie.visible=False

set fso=createobject("scripting.filesystemobject")
set f=fso.opentextfile("c:\\新建文档.txt",2,true)

while true
str=ie.document.parentwindow.clipboarddata.getdata("text")
if str<>"" then
f.Write vbCrLf&str
ie.document.parentwindow.clipboarddata.setdata "text",""
End If

wend

[此贴子已经被作者于2009-9-9 8:56:38编辑过]

--  作者:Marcus
--  发布时间:2009/9/9 22:49:38
--  
 剪贴板问题已经解决,多谢!

再问一个VBS的问题:
VB/VC都能直接使用内存映射文件,VBS有什么途径可以访问内存映射文件?是否需要写一个COM组件来间接读写内存映射文件?
--  作者:admin
--  发布时间:2009/9/9 22:52:57
--  

VBS目前无法直接访问映射文件,你确实需要按照COM组件得办法来做,通过ACTIVEX来调用接口组件


--  作者:Marcus
--  发布时间:2009/10/15 22:49:11
--  
 如果要频繁使用剪贴板,建议将objIE设置为全局变量,避免每次创建objIE时主程序窗口被一再激活的现象。
初始化代码放在Application_VBAStart()还是在Application_Start()请自己试验一下,我的电脑主板坏了暂时没法确认。

DIM    objIE

Sub Application_VBAStart()
    Set objIE = CreateObject("InternetExplorer.Application")
    objIE.Navigate("about:blank")
    objIE.Visible = False
    call Application.SetTimer(1,5*60*1000)
End Sub

Sub Application_Start()
End Sub

Sub Application_End()
    objIE.Quit
End Sub

Sub Application_Timer(ID)
    objIE.document.parentwindow.clipboardData.SetData "text", "Test"
End Sub
[此贴子已经被作者于2009-10-15 22:57:11编辑过]

--  作者:admin
--  发布时间:2009/10/15 23:23:58
--  

最好放在Application_VBAStart里做初始化,因为Application_Start()只在软件启动时才执行一次的