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线图界面上使用该宏)
非常感谢楼上各位指点!
顺便问几个剪贴板相关问题:
1. 剪贴板内容是否能同时被几个进程访问?这个问题很重要,涉及到进程间同步的问题。
2. 能否直接知道剪贴板内容是否为空?这样做的目的是省却无用的拷贝数据操作。
3. VBS怎么读剪贴板内容?
剪切版是可以多进程访问
至于操作你可以在网上搜索一下 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编辑过]
剪贴板问题已经解决,多谢!
再问一个VBS的问题:
VB/VC都能直接使用内存映射文件,VBS有什么途径可以访问内存映射文件?是否需要写一个COM组件来间接读写内存映射文件?
VBS目前无法直接访问映射文件,你确实需要按照COM组件得办法来做,通过ACTIVEX来调用接口组件
如果要频繁使用剪贴板,建议将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编辑过]
最好放在Application_VBAStart里做初始化,因为Application_Start()只在软件启动时才执行一次的