欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → 复制股票代码到剪贴板的VBS代码

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


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

主题:复制股票代码到剪贴板的VBS代码

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


加好友 发短信
等级:罗宾汉 帖子:11808 积分:20695 威望:0 精华:10 注册:2009/8/18 8:15:13
复制股票代码到剪贴板的VBS代码  发帖心情 Post By:2009/8/30 18:29:00 [只看该作者]

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线图界面上使用该宏)


金字塔—专业程序化软件提供商

金字塔-技术部

-----------------------------------------------------------------------------------------------------

工作时间:周一至周五 08:30 - 17:30   周末及法定节假日休息

Email:service@weistock.com
[本帖被加为精华]
 回到顶部
帅哥哟,离线,有人找我吗?
admin
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:7302 积分:32559 威望:1000 精华:45 注册:2003/12/30 16:34:32
  发帖心情 Post By:2009/8/31 9:33:14 [只看该作者]


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

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

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

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

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

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

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

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

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


加好友 发短信
等级:论坛游民 帖子:216 积分:1283 威望:0 精华:0 注册:2009/8/30 14:14:47
  发帖心情 Post By:2009/9/9 0:27:32 [只看该作者]

 非常感谢楼上各位指点!

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

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


加好友 发短信
等级:管理员 帖子:7302 积分:32559 威望:1000 精华:45 注册:2003/12/30 16:34:32
  发帖心情 Post By: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
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游民 帖子:216 积分:1283 威望:0 精华:0 注册:2009/8/30 14:14:47
  发帖心情 Post By:2009/9/9 22:49:38 [只看该作者]

 剪贴板问题已经解决,多谢!

再问一个VBS的问题:
VB/VC都能直接使用内存映射文件,VBS有什么途径可以访问内存映射文件?是否需要写一个COM组件来间接读写内存映射文件?

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


加好友 发短信
等级:管理员 帖子:7302 积分:32559 威望:1000 精华:45 注册:2003/12/30 16:34:32
  发帖心情 Post By:2009/9/9 22:52:57 [只看该作者]

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


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


加好友 发短信
等级:论坛游民 帖子:216 积分:1283 威望:0 精华:0 注册:2009/8/30 14:14:47
  发帖心情 Post By: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
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:7302 积分:32559 威望:1000 精华:45 注册:2003/12/30 16:34:32
  发帖心情 Post By:2009/10/15 23:23:58 [只看该作者]

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


 回到顶部