[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[技术讨论] 漫话vbs学习感悟

vbs与com的关系:
     vbs是扳机,com 是你的子弹,没有com的vbs脚本,就是一把没有子弹的枪。
     枪没了子弹,杀人时,你就只有赤膊上阵了,当然赤膊上阵也是可以杀人的。



     扣动你的扳机,射出一幅美丽的图像
                 再次刷新网页,显示动画




欢迎跟帖。贴出你,我,他---
在vbs学习中的感悟,
对与错并不重要,重要的是大家在一起讨论,学习。
没有错误,何来正确!
在学习中一起成长,
在讨论中一起丰富我们对vbs的理解。
贴出你的感悟------------
让大家一起分享!

让我们一起从不同的角度去欣赏美丽的vbs吧
特别提醒:脚本尽量采用短脚本。代码不求完美,只要能说明一个问题就可以了。
=================================================

1--结束vbs的while...wend循环。
  1. t=1
  2. j=0
  3. while t<2
  4.   wscript.echo j&"--", t
  5.   j=j+1
  6.   if j>10 then t=2
  7. wend
复制代码
-------------------------------
vbs入门级教程 http://www.bathome.net/thread-11581-1-1.html
--------------------------
msgbox 的返回值 http://www.bathome.net/thread-11613-1-1.html
----------------------------
密码输入
http://www.bathome.net/thread-11595-1-1.html
------------------------------------------
cmd中输入的长脚本 http://www.bathome.net/thread-11589-1-1.html
-----------------------------------------
mshta标准用法
http://www.bathome.net/thread-11516-1-1.html

-----------------------------
创建环境变量
http://www.bathome.net/thread-11514-1-1.html


------------------------------
getref函数
http://www.bathome.net/thread-11484-1-1.html

------------------------------
连续截取文本 http://www.bathome.net/thread-11469-1-1.html
----------------------------------------------
关于regsvr32--- 脚本部件问题
http://www.bathome.net/thread-11386-1-1.html
------------------------------------------------------------------
创建vbs中的类:http://www.bathome.net/thread-11318-1-1.html
---------------------------------------------------------------------------
cmd的全屏问题
http://www.bathome.net/thread-11289-1-1.html

---------------------------------
正则表达式
http://www.bathome.net/thread-11223-1-1.html
------------------------------------------------
系统是winxp吗?
http://www.bathome.net/thread-11179-1-1.html
---------------------------------------------------
读出文本
http://www.bathome.net/thread-11165-1-1.html
----------------------------
wsh对象模型:一张经常看的图片,黄色的代表对象是有属性生成,这样的对象是集合对象。
访问的方法如下:
for  each  i in  set
  ......
next
=========================================
转帖 值得一看的vbs文章
http://www.hongkejidi.com/wz/ShowClass.asp?ClassID=337&page=1


大力推荐给玩家一个com:shotgraph画图组件,下面的test1.gif就是有这个组件做的,刷新网页,你可以看到运动的圆
语法请参考第2页下方。跳转到第2页http://www.bathome.net/thread-11615-2-1.html

下载http://aspxhome.com/article/uplo ... 200792612313895.rar
1

评分人数

简单的说一下,楼上好像少了不少WHERE啊
枫中残雪:风停了,我的心却在动,让我心中的寒意走向远方

TOP

本帖最后由 myzam 于 2011-4-18 17:42 编辑

如何学习wmic?
  下面举例说明如何去查看wmic的帮助。其实要记住成千的wmic命令是很难的。因而学会察看wmic才帮助才是出路。
其实也没必要记那些命令。除非你要去参加考试。
假如f盘有一个文件叫test.txt
1---输入命令
   wmic  datafile where name='f:\\test.txt' get /value
   这时将显示关键字 createclassname=cim_logicalfile
  这就是此时,我们用到的类。
   我们首先要学会查看类的属性和方法,类里有和属性,有和方法。因为类的属性和方法才是我们要调用的东西。
背它没必要!
2---查看类样子 输入命令
  wmic  class  cim_logicalfile  get
这时你看到的是xml标签语言。不属习的人是读不懂的,就是属性标签语言的人,我想读起来也不会是一种享受。
怎么办?
这时我们输出它们到网页。如何输出到网页?用下面的命令好了:
wimc  /record:f:\test.htm class cim_logicalfile get
此时你去打开文件 f:\test.htm类cim_logicalfile的方法,属性就显示在你眼前了。
3---使用类的属性和方法

从图片中你可以看到该类有属性如 name,有方法如 copy,copyex。
利用属性:
wmic  path cim_logicalfile  where  name='f:\test.txt'  get /value
利用方法:
wimc  path cim_logicalfile where name='f:\test.txt'  call copy f:\test123.txt
问题来了compress方法是什么意思,论坛求助?估计无人回答你,网络找解答,估计还是没有你满意的结果。怎么办?
查看帮助啊?
如何查看?方法如下:
compress是压缩之意,
你输入下面的命令看看如何:
wmic path cim_logicalfile where name='f:\test.txt' call compress  /?
这时你发现这个帮助看了半天还是不明白。那你用下面的方法试试看:
wmic path cim_logicalfile  where name='f:\test.txt' call compress  /?:full
这时详细的帮助出来了。



总之,学习命令语言和学习一般的编制语言的方法是不同的。学习命令语言关键是学会如何查看帮助!

感谢:感谢网友的指出。再编辑中漏掉了 where。现补上。
附件: 您需要登录才可以下载或查看附件。没有帐号?注册

TOP

本帖最后由 myzam 于 2011-4-8 18:09 编辑

30# broly
没想到这个com还可以进行数学的线性变换。我们用的是
仿射变换---颠覆你的视觉NB

仿射变换的尾巴代表平移。
给一个简单的线性变换--放大2倍的例子吧。对了线性变换是用矩阵表示的。像这样


---说明:这2张图片是用mathtype做的
上述变换在数学上表达的意思是伸张2倍,并平移到坐标为(1,2)的地方。
shotgraph要进行仿射变换,必须用到俩句话:
obj.setgraphicsmode "GM_ADVANCED"   它的常数除了true,false外,其它的常数请大写,这是不爽的地方。
obj.settransformation a11,a12,a21,a22,h,k
a11,a12,a21,a22,h,k这是正交变换的矩阵元素。
旋转 就取这样的矩阵:cos(t),sin(t),-sin(t),cos(t) ,h,k
        调整负号的位置,可以把反射加进去。
t为旋转角度,正的代表逆时针,负的代表顺时针旋转。h,k代表平移坐标。
反射,就这样去矩阵:-1,0,0,1,0,0 关于x轴反射
                     1,0,0,-1,0,0关于y轴反射
                     -1,0,0-1,0,0关于0,0对称
用这个方法翻转字体,比直接用obj.createfont "",0,32,t,true,0,0,0  翻转字体来的快
因为上面这个方法要翻转字体 t=90*20,
原因是 t=90*40字体才旋转一周。也就是说这里的参数1代表的是0.1度。3600shotgraph=360degree
放大2陪就这样取矩阵:2,0,0,2,0,0
                                           2,0,0,2,1,2放大2倍并平移到坐标为1,2的地方。
平移就这样取矩阵 0,0,0,0,12,35  平移到坐标为12,35的地方。
                                
例子如下:我以截屏为例子。
  1. set obj=createobject("shotgraph.image") '连接到com
  2. obj.createimage 320,240,8,创建图片,可以有8种颜色,这也是免费版的最大色数(不是素!)了
  3. obj.setcolor 0,0,255,0 '定义绿色,编号为0,编号可以任意指定。
  4. obj.fillrect 0,0,319,239 ’填充一个rectangle,其实就是创建画布。
  5. OBJ.setgraphicSmode "GM_ADVANCED"    '进入变换模式。这是要进行变换的必要条件,后面的参数是高级的意思,不可以去掉!
  6. OBJ.setTransformation 2,0,0,2,10,10  '进行相似变换
  7. obj.capturescreen 0,0,320,240,450,50  '在屏幕上从坐标(10,10)的地方开始抓一个rectangle屏幕进入内存,然后在一个矩形区域
  8.                                           '显示图片。前4个数字代表矩形区域
复制代码
为了简化计算,在变换时把图片框取方是一个好的技巧。


--------------------------------一个复杂的例子 椭圆的包络线
                                        看了图片你会惊奇它的美,和功能的强大
  1. set obj=CreateObject("shotgraph.image")
  2. size=220
  3. obj.CreateImage size,size,2
  4. obj.SetColor 0,255,255,255
  5. obj.SetColor 1,0,0,0
  6. obj.SetBgColor 0
  7. obj.FillRect 0,0,size-1,size-1
  8. obj.SetDrawColor 1
  9. obj.CreateBrush "BS_NULL",0,""
  10. obj.SetGraphicsMode "GM_ADVANCED"
  11. for i=0 to 179 step 10
  12. ang=i*3.141/180.0
  13. 'Rotate the drawing
  14. obj.SetTransformation Cos(ang),Sin(ang),-Sin(ang),Cos(ang),size/2,size/2
  15. obj.Ellipse -size/2,-size/4,size/2-2,size/4-2
  16. next
  17. img=obj.GifImage(-1,1,"test.gif")
复制代码
这是它的创建的图片
说真的这样的图片,你就是用专业的数学软件,如几何画板,顶级数学软件maple13,也不那么容易画。
椭圆包络线的编程思路是:让椭圆的长轴的端点在大小不同的2个圆上运动就可以了。
当然,它还具有色彩的渐变,剪辑,遮罩,不过有的要付费,就是不付费个人认为用处不大。
想要那种绚丽的艺术效果,那就用FLASH,PS,AI好了。我认为该com的功能是创建几何图形为主。
艺术效果是次要的。
下面这些方格是我用shotgraph的剪辑版(虚拟的,其实就是在内存里面新开辟一个缓冲区,别和系统的剪辑版搞混)画的

------------------------------------------------------------------------------
闪烁的光栅hatche
  1. set s=createobject("wscript.shell")
  2. set obj=CreateObject("shotgraph.image")
  3. xsize=320
  4. ysize=240
  5. obj.CreateImage xsize,ysize,8
  6. obj.SetColor 0,0,50,0
  7. obj.SetColor 1,&HFF,0,0
  8. obj.setcolor 2,0,&HFF,0
  9. obj.setcolor 3,0,&HFF,&HFF
  10. obj.setcolor 4,&HFF,0,&HFF
  11. obj.setcolor 5,&HFF,&HFF,0
  12. obj.setcolor 6,0,0,&HFF
  13. obj.setcolor 7,0,0,0
  14. obj.SetBgColor 0
  15. obj.FillRect 0,0,xsize,ysize
  16. obj.createfont "",0,32,0,1,0,1,0
  17. obj.settextcolor 2
  18. obj.textout 30,5,"myzam"
  19. for i=0 to 10
  20. for r=0 to 100 step 10
  21. obj.createpen "PS_SOLID",4,(r MOD 6)+1
  22. obj.setbkmode "TRANSPARENT"
  23. OBJ.CREATEBRUSH "BS_HATCHED",(r MOD 6)+2,"HS_CROSS"
  24. obj.ellipse 160-r,120-r,160+r,120+r
  25. obj.trackadd -1,0,0,0,0,xsize,ysize,30     
  26. next
  27. next
  28. obj.trackplay "test.gif"
  29. s.run "f:\test.gif"
  30.   
复制代码




=====================================
这个com可以处理的数学类型有下面这些:

画折线
画多边形
画弧
画弓形
画椭圆饼(数学上叫椭圆扇形,一般office就饼)
画bezier曲线(非常典型,由此可以很方便的模拟出抛物线,正弦线等)
仿射变换(平移,旋转,放大,缩小,弯曲,反射)
除此之外还可以
画字符画(对汉字的处理只能处理几个字)
做动画。
另外还可以创建图片剪辑版(虚拟的),然后可以把图片缓存到clipboard,然后在处理。
这里的剪辑板其实是内存的一个区域,不是系统带的那个clipbrd !
obj.initclipboard 10,10
obj.selectclipboard true
obj.copy 0,0,40,50,10,10 "SRCCOPY"
其它功能:
读取图片(readimage就是要收费,遗憾)
把图片作为数据流处理
可以直接与office对话,从而处理office的图片。但还不如直接用vba。
非注册版本的功能已经够可以的了。
如果有注册版本当然好了。但是我没找到。遗憾。

我的实例
eg.1描点法画抛物线,较慢,gif文件大小为130kb
  1. set s=createobject("wscript.shell")
  2. set obj=CreateObject("shotgraph.image")
  3. size=240
  4. obj.CreateImage size,size,8
  5. obj.SetColor 0,0,255,0
  6. obj.SetColor 1,0,0,255
  7. obj.setcolor 2,255,0,0
  8. obj.setcolor 3,0,0,0
  9. obj.SetBgColor 0
  10. obj.FillRect 0,0,size-1,size-1
  11. obj.createpen "PS_SOLID",3,2
  12. obj.line 0,size-4,size,size-4
  13. obj.line 120,0,120,size
  14. obj.createfont "ARIAL",0,24,0,true,0,0,0
  15. obj.settextcolor 3
  16. obj.setbkmode "TRANSPARENT"
  17. obj.gettextdimensions "x-axies",u,v
  18. obj.textout size-u-2,size-v-2,"x-axies"
  19. obj.textout 120,0,"y-axies"
  20. for i=0 to size step 2
  21.         obj.trackadd true,0,0,0,0,size,size,30
  22.         obj.createpen "PS_SOLID",4,1
  23.         obj.line i,size-0.1*(i-120)^2-5,i,size-0.1*(i-120)^2-5
  24. next
  25. obj.trackplay "test.gif"
  26. s.run "test.gif"
复制代码

这是动态的显示描点

这是描点法得到的动画图片,刷新网页可以看到。和下面用变换做的是同样一条抛物线
的图像,用变换法生成的图像动画比这个快的多。


如果不想动态的显示描点,只想显示结果,那么把帧语句obj.trackadd true,0,0,0,0,size,size,30移动动for循环的外面,next的后面就行了。
eg.2 利用平移和反射作抛物线的图像,描点法
  1. set s=createobject("wscript.shell")
  2. set obj=CreateObject("shotgraph.image")
  3. size=240
  4. obj.CreateImage size,size,8
  5. obj.SetColor 0,0,255,0
  6. obj.SetColor 1,0,0,255
  7. obj.setcolor 2,255,0,0
  8. obj.setcolor 3,0,0,0
  9. obj.SetBgColor 0
  10. obj.FillRect 0,0,size-1,size-1
  11. obj.createpen "PS_SOLID",3,2
  12. obj.line 0,size-4,size,size-4
  13. obj.line 120,0,120,size
  14. obj.createfont "ARIAL",0,24,0,true,0,0,0
  15. obj.settextcolor 3
  16. obj.setbkmode "TRANSPARENT"
  17. obj.gettextdimensions "x-axies",u,v
  18. obj.textout size-u-2,size-v-2,"x-axies"
  19. obj.textout 120,0,"y-axies"
  20. for i=0 to size-1 step 1
  21.         obj.setgraphicsmode "GM_ADVANCED"
  22.         obj.settransformation 1,0,0,1,i+120,0.2*i^2
  23.         obj.createpen "PS_SOLID",4,1
  24.         obj.line i,0,i,0
  25.         obj.settransformation -1,0,0,1,size-i-120,0.2*i^2
  26.         obj.line i,0,i,0
  27. next
  28. obj.gifimage -1,0,"test.gif"
  29. s.run "test.gif"
复制代码
其实关键的语句没这么多,就是for。。。next那几句,其它的是废话。就是为了好看一点吧了。
下面是利用平移变换作的图,刷新网页,看以看到动画

例子:利用bezier贝塞尔方法创建曲线轨迹
  1. set s=createobject("wscript.shell")
  2. set obj=CreateObject("shotgraph.image")
  3. size=240
  4. obj.CreateImage size,size,8
  5. obj.SetColor 0,0,255,0
  6. obj.SetColor 1,0,0,255
  7. obj.setcolor 2,255,0,0
  8. obj.setcolor 3,0,0,0
  9. obj.SetBgColor 0
  10. obj.FillRect 0,0,size-1,size-1
  11. obj.createpen "PS_SOLID",3,2
  12. obj.line 0,size-4,size,size-4
  13. obj.line 120,0,120,size
  14. obj.createfont "ARIAL",0,24,0,true,0,0,0
  15. obj.settextcolor 3
  16. obj.setbkmode "TRANSPARENT"
  17. obj.gettextdimensions "x-axies",u,v
  18. obj.textout size-u-2,size-v-2,"x-axies"
  19. obj.textout 120,0,"y-axies"
  20. for i=2 to 51 step 5
  21.         obj.createpen "PS_SOLID",1,1
  22.         obj.polybezier array(0,0,i+118,0.1*i^2,i+122,0.1*(i+2)^2,240,0)
  23.         obj.trackadd true,0,0,0,0,size,size,30
  24. next
  25. obj.trackplay "test.gif"
  26. s.run "test.gif"
复制代码
生成的动画图片如下,刷新网页可以看到动画。


利用bezier方法创建的曲线系文件很小。这是因为它采用的是多项式插值推算出来的,不是一点一点的描出来的。
所以数学函数的模拟尽量采用插值发,以减小文件的大小。这个图片才16kb。如果是描点的话,
大概要达到200kb的样子,差别是非常大的。

例子:直方图
  1. set s=createobject("wscript.shell")
  2. Set g=CreateObject("shotgraph.image")
  3. x=320
  4. y=240
  5. g.createimage x,y,8
  6. g.setcolor 0,100,0,255
  7. g.setcolor 1,255,0,0
  8. g.setcolor 2,0,255,0
  9. g.setbgcolor 0
  10. g.fillrect 0,0,x-1,y-1
  11. for i=0 to 11   
  12.   g.setbgcolor (i mod 2)+1
  13.   if y-i*50>=0 then
  14.      g.fillrect i*30,y-i*50,i*30+30,y
  15.   else
  16.      g.fillrect i*30,i*50-y,i*30+30,y
  17.   end if
  18. next
  19. g.gifimage true,0,"test.gif"
  20. s.run "test.gif"
复制代码
===============
例子:微积分中的曲边梯形动画
  1. set s=createobject("wscript.shell")
  2. set obj=CreateObject("shotgraph.image")
  3. xsize=320
  4. ysize=240
  5. obj.CreateImage xsize,ysize,8
  6. obj.SetColor 0,0,255,0
  7. obj.SetColor 1,0,0,255
  8. obj.setcolor 2,255,0,0
  9. obj.SetBgColor 0
  10. obj.FillRect 0,0,xsize,ysize
  11. sub my()
  12. n=inputbox("Please number:")
  13. h=xsize/n
  14. for i=0 to n-1
  15.     xi=0+i*h
  16.     yi=0.005*(xi+h/2)^2
  17.   if ysize-yi >=0 then
  18.     obj.setbgcolor (i mod 3)+1
  19.     obj.fillrect xi,ysize,xi+h,ysize-yi
  20.     obj.trackadd -1,0,0,0,0,xsize,ysize,30
  21.   else
  22.     exit for
  23.   end if
  24. next
  25. end sub
  26. call my()
  27. obj.trackplay "test.gif"
  28. s.run "test.gif"
复制代码
刷新网页,可以看到动画:y=x*x*0.0056的曲边梯形


-----------------------------------------------------
例子:抛物线的曲边梯形2--y=0.005*x^2
  1. ''''####Editer:myzay 2011-4-5#########
  2. set s=createobject("wscript.shell")
  3. set obj=CreateObject("shotgraph.image")
  4. xsize=320
  5. ysize=240
  6. obj.CreateImage xsize,ysize,8
  7. obj.SetColor 0,0,255,0
  8. obj.SetColor 1,0,0,255
  9. obj.setcolor 2,255,0,0
  10. obj.setcolor 3,200,10,125
  11. obj.setcolor 4,125,200,50
  12. obj.SetBgColor 0
  13. obj.FillRect 0,0,xsize,ysize
  14. call my()
  15. function my()
  16.     for n=10 to 50
  17.         
  18.         h=xsize/n
  19.         
  20.         
  21.         obj.gettextdimensions "100Number Of Iterate",x1,y1
  22.         obj.createfont "Arail",0,32,1800,true,true,true,true
  23.         obj.setbKmode "TRANSPARENT"
  24.         obj.settextcolor (n mod 2)+3
  25.         obj.textout x1+10,y1+20,"Number Of Iterate:"&n-9
  26.    for i=0 to n-1
  27.            
  28.            xi=0+i*h
  29.            yi=0.005*(xi+h/2)^2
  30.            if ysize-yi >=0 then
  31.            obj.setbgcolor (i mod 3)+1
  32.            obj.fillrect xi,ysize,xi+h,ysize-yi
  33.            obj.trackadd -1,0,0,0,0,xsize,ysize,20
  34.          
  35.     else
  36.            exit for
  37.     end if
  38.     next
  39.     obj.SetBgColor 0
  40.     obj.FillRect 0,0,xsize,ysize
  41. next
  42. end function
  43. obj.trackplay "test.gif"
  44. s.run "f:\test.gif"
  45.   
复制代码
动画文件为1.25mb,请稍等。要重复播放,请刷新网页。



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

函数图像画法有3法:
  法1:老老实实的描点
  法2:平移变换法
  法3:贝塞尔方法。这种方法是曲线的近似画法,数学上叫曲线的拟合。
  法4:折线法obj.polyline,采用极限的思想,把区间细分一下,如分为30段,就可以达到很好的效果,而且文件还小。
   给个例子:
  1. set s=createobject("wscript.shell")
  2. set obj=CreateObject("shotgraph.image")
  3. xsize=320
  4. ysize=240
  5. obj.CreateImage xsize,ysize,8
  6. obj.SetColor 0,0,255,0
  7. obj.SetColor 1,0,0,255
  8. obj.setcolor 2,255,0,0
  9. obj.setcolor 3,200,10,125
  10. obj.setcolor 4,125,200,50
  11. obj.SetBgColor 0
  12. obj.FillRect 0,0,xsize,ysize
  13. arr=array( _
  14. 100,100,110,50,120,100,130,50,140,100,_
  15. 150,50,160,100,170,50,180,100,200,50,220)
  16. obj.setdrawcolor 2
  17. obj.polyline "",arr
  18. obj.line 0,160,230,160
  19. obj.line 100,10,100,300        
  20. obj.gifimage -1,0,"test.gif"
  21. s.run "f:\test.gif"
复制代码

  利用帧来创建图片就可以了。如果要想文件小点,快点,就获取图片的最后结果,只用一帧就可以了。,如果
  喜欢慢慢的欣赏画图的过程,那就要用多帧。
  如果你希望图片上的点不离散,那就取小数步长,这时动画是很慢的哦。
  玩家可能觉得奇怪,既然画图是这么的重要,为啥vbs不自带一个功能强大一点的方法?
  原因是这样的:vbs被微软设计成了一个类似于仪表盘的东西。
  仪表盘上的每一个按钮就是vbs的基本语句和基本方法,基本属性。
  vbs脚本所要做的就是让我们去按动按钮,然后调用com,通过com(控件)去完成各种复杂的事情。
  vbs没有画图的方法,这是由微软打造vbs的主导思想决定的。并不是微软办不到。
由此看来这个组件叫shotgraph是很妙的叫法了。shot---射击,graph---图表。合起来就是射击图表。
就是说你的vbs脚本就像一把枪的扳机,com就是你的子弹,你扣动扳机,就是调用com。这一枪出去,你就射出了一幅图像。
  这就是为什么叫shot  graph射图的原因,你说取的妙不妙?!vbs脚本是扳机,com是你的子弹,没有com的vbs就如没有子弹的枪。

  我查看了一下API函数列表,估计shotgraph就是调用的API函数。比如api函数中有textout,这里也有。
  遗憾的是我对API函数只认识A---P--I,除此之外是一篇空白,将来也不想去学。太累。
  该组件就一个文件在windows\system32\shotgraph.dll
   我打开文件看了,是C++ 编写的。它就是注册了一com。在里面可以看到它在注册表中的键位。
-------------------------------------------------------------
结束语:
      如果你想有效的使用shotgraph的各种方法,请创建画布吧---obj.fillrect 0,0,size1,size2
         如果你觉得图片小了,那就保存为test.swf吧。
      该com的要点是--矩形是基础,对角线是关键。
      我看重这个com,因为它的创建图片的功能不比专业的数学软件差。
      几何画板作图的功能够强大了吧,世界级的顶级数学软件Maple13画图的功能也足够强大了吧.
        它们都是有几十兆到几百兆的大小。
      而shotgraph就几十kb,居然达到了这样的颠覆你视觉的效果,说句真话,那些顶级的数学软件应该汗颜!
      说道这里让我想起了微软的公式编辑器,大家都以为那是微软的专利,其实大错特错!
      那是微软花了money买的Design Science公司的产品Mathtype的简化版。如果你装上原版的Mathtype那
      功能,没讲的。它让你直接可以使用LETEX语言输入科技符号。
      所以,我在想说不定哪天微软再花money把shotgraph买了,这不是没有可能,
      如果这样的事情发生了,那是玩家们的福音。呵呵。有点dream哈。
      编程对我来说就是玩,对我并没什么大的用处。我想对大多数人也是这样。
      因此,我祝各位玩家玩的愉快。
      由于时间的关系,水平的限制,错误是难免的,欢迎各位玩家指出,我会及时改正的。

        忘记最重要的一点了。由于这个版本是非注册版本,gif的大小是320x240,jpeg的大小为200x200.
       其实这不是问题,因为flash软件给我们提供了转变方法:你只要把文件导入flash的舞台,让后让flash的画布与
    gif文件一样大,接着导出来就是了,在导出文件时flash会提示你选择什么文件,你选择比如gif动画,点确定,
    flash又提示你文件的大小设置,这时你输入800x600,就可以改变gif动画的大小了。相信flash效果很好。
     我在使用中发现,下面的方法可以 突破非注册版尺寸的限制---------借助于flash播放器---------
       set oshell=createobject("wscript.shell")
       oshell.run "saflashplayer test.gif"
附件: 您需要登录才可以下载或查看附件。没有帐号?注册

TOP

26# powerbat


同意。我也差不多这样想。
---学无止境---

TOP

本帖最后由 myzam 于 2011-4-8 19:43 编辑

   shotgraph图像组件的语法
   终于把方法处理完了。现在贴出来,共享。myzam 2011-4-2
    提醒:要完整的使用这里的方法,请创建画布。obj.fillrect 。。。。
   没有画布的图片,背景是一个黑粑粑。而且下面的关于透明的属性,将不起作用。
   参数是标准的vbs命名方法。如字符串就是s开头,布尔值就是b开头etc。下面的方法我将抽时间逐以注解。

   shotgraph是以矩形为基础进行构图的。确定矩形大小的方法有两种:
   通常是用对角线端点坐标确定大小,但是有的地方是用对角线的左上端点和,长,宽来确定大小的。  
---方法部分----------------------

动画:
1--定义帧
TrackAdd iTransp,iXDecl,iYDecl,iX,iY,iWidth,iHeight,iTime [,sDisp]

说明:oimg.trackadd true,0,0,10,10,50,40
         就是创建一帧,该帧的长方形对角线坐标为:0,0,0+50,0+40
         然后在帧上放一个元件,元件所在的长方形的lefttop坐标为10,10,当然这个元件的最大范围是10,10,10+50,10+40
         也就是说元件超出帧后将不显示超出的部分。true逻辑值,到表要背景色,false就表示不要背景色。shotgraph的逻辑值
         比较松散,非零的数等价于true,零等价于false。这点和vbs不同。在vbs中true总是严格的=-1,false=0.
         最后一个参数,sdisp是可选的,用处不大,约去。

2--保存动画TrackPlay sFileName [,iBgColor]
说明:把你做的动画存盘。sfilename就是路径。如 oimg.trackplay "f:\test.gif"
         如果你用gifimge,jepgimage存盘,则动画将不动。

3--椭圆弧arc
Arc nLeftRect, nTopRect, nRightRect, nBottomRect, nXStartArc, nYStartArc, nXEndArc, nYEndArc
说明:arc画的是椭圆弧(含圆弧),参数nleftrect,ntoprect,nright,nbottomrect确定矩形的内切椭圆,
        nXStartArc, nYStartArc, 从椭圆中心到这个点的一条射线。
        nXEndArc, nYEndArc 从椭圆中心到这个点的一条射线。上面的两射线就从椭圆上割下了椭圆弧。

例子:未注册版为200x200的jpg,320x240的gif
set s=createobject("wscript.shell")
set obj=CreateObject("shotgraph.image")
x=320:y=240
obj.createimage x,y,8

obj.setcolor 0,255,200,225
obj.setcolor 1,0,255,0
obj.setcolor 2,0,0,255

obj.setbgcolor 0
obj.fillrect 0,0,x-1,x-1

obj.setbgcolor 1
obj.chord 10,10,50,50,30,50,30,10

obj.jpegimage 90,0,"test.jpg"
s.run "test.jpg"
4--椭圆弓形区域chord /发音kuod/这个单词大家比较生僻,意思是弦,弓形
Chord nLeftRect, nTopRect, nRighrRect, nBottomRect, nXRadial1, nYRadial1, nXRadial2, nYRadial2
说明:参数含义完全同上面,只是这里得到的是弓形区域。
例子:
set s=createobject("wscript.shell")
set obj=CreateObject("shotgraph.image")

x=320:y=240
obj.createimage x,y,8

obj.setcolor 0,255,200,225
obj.setcolor 1,0,255,0
obj.setcolor 2,0,0,255

obj.setbgcolor 0
obj.fillrect 0,0,x-1,x-1

obj.setbgcolor 1
obj.chord 10,10,50,50,30,50,30,10

obj.jpegimage 90,0,"test.jpg"
s.run "test.jpg"
5---createbrush
CreateBrush sStyle, nColor, sHatch
说明:单词hatch---是光栅之意,或者说是影线,就是说填充的是一根根线。
        
EG.1
set s=createobject("wscript.shell")
set obj=CreateObject("shotgraph.image")

x=320:y=240
obj.createimage x,y,8

obj.setcolor 0,255,200,225
obj.setcolor 1,0,255,0
obj.setcolor 2,0,0,255

obj.setbgcolor 0
obj.fillrect 0,0,x-1,x-1

obj.createbrush "",1,""
obj.chord 10,10,50,50,30,50,30,10

obj.jpegimage 90,0,"test.jpg"
s.run "test.jpg"

EG.2
set s=createobject("wscript.shell")
set obj=CreateObject("shotgraph.image")

x=320:y=240
obj.createimage x,y,8

obj.setcolor 0,255,200,225
obj.setcolor 1,0,255,0
obj.setcolor 2,0,0,255

obj.setbgcolor 0
obj.fillrect 0,0,x-1,x-1

obj.createbrush "BS_HATCHED",1,"HS_VERCITCAL"
obj.chord 10,10,50,50,30,50,30,10

obj.jpegimage 90,0,"test.jpg"
s.run "test.jpg"

6---创建图像CreateImage nXSize, nYSize, nColors
说明:参数nXSize, nYSize设置图片的大小。参数 nColors 设置图片的背景色。

7----创建字体
CreateFont sFamily, nCharset, nHeight, nAngle, bBold, bItalic, bUnderline, bStrikeOut

[,bUnicode]
说明:sFamily 设置字体如Euclid,Rrial,对不支持中文字体。 nCharset指定字符集。nAngle旋转角度,取90*40才旋转一周。
bBold, bItalic, bUnderline, bStrikeO一次表示黑体否?斜体否?下划线否?删除线否?它们去逻辑值。

eg.1
set s=createobject("wscript.shell")
set obj=CreateObject("shotgraph.image")

x=320:y=240
obj.createimage x,y,8

obj.setcolor 0,255,200,225
obj.setcolor 1,0,255,0
obj.setcolor 2,0,0,255

obj.setbgcolor 0
obj.fillrect 0,0,x-1,x-1

obj.settextcolor 1
obj.createfont "arial",0,48,30,true,false,false,false
obj.textout 10,10,"hello world"

obj.gifimage 90,0,"test.gif"
s.run "test.gif"

8------创建笔CreatePen sStyle, nWidth, nColor
说明:sstyle笔的样式如:PS_SOLID(P-PEN,S-STYLE之意),PS_DASH,PS_DOTDASH
         nWidth笔的粗细, nColor笔的颜色。     
如:
obj.createpen "PS_SOLID",4,1
9---文字布局TextOut nXStart,nYStart,sText[,bUnicode]
说明: nXStart,nYStart设置文字在图片上显示的矩形的left top坐标。
          sText设置要显示的文字字符串
10---画线Line nXStart, nYStart, nXEnd, nYEnd [,bAntiAliased]
说明:nXStart, nYStart, nXEnd, nYEnd 线的起点和终点坐标。

-11-画饼Pie nLeftRect, nTopRect, nRighrRect, nBottomRect, nXRadial1, nYRadial1, nXRadial2, nYRadial2
说明:nLeftRect, nTopRect, nRighrRect, nBottomRect确定一个矩形框,框中放置了一个内切椭圆。假定椭圆的中心是P点。
         nXRadial1, nYRadial1确定一个点Q,然后PQ就确定了一条线。同样的道理 nXRadial2, nYRadial2 也和椭圆的中心P确定
        另一条线RQ.这样弓形就构造出来了。        

-12-贝塞尔曲线
PolyBezier aPoints
说明:apoints为数组定义的4个点,2个端点,2个控制点
如:apoints=arrary(0,0,10,30,24,50,100,50)
也可以是2维数组
bezier函数是数学上著名的多项式插值函数。
13---折线
PolyLine sFill, aPoints
说明:sfill取ALTERNATE(交替填色,如果有的话) ,WINDING
         通常可以空缺,如oimg.polyline " ",arrary(0,0,10,30,24,50,100,50),
         aPoints必须是由array生成的数组。这一点同上。
-14--矩形
Rectangle nXStart, nYStart, nXEnd, nYEnd
说明:nXStart, nYStart, nXEnd, nYEnd代表矩形的对角线坐标。
obj.rectangle 10,10,50,30

15--圆角矩形ROUNDrECT nXStart, nYStart, nXEnd, nYEnd, nWidth, nHeight
说明:nXStart, nYStart, nXEnd, nYEnd代表矩形的对角线坐标。
        nWidth, nHeight 圆角是放到一个小矩形中的,代表这个小矩形的宽,高。
obj.roundrect 10,10,100,80,20,20
16--设置填充色
SetBgColor nColor
说明:ncolor表示由setcolor定义的色编号。

17---设置背景色
SetBkColor nColor
说明:ncolor表示由setcolor定义的色编号。
         要更详细的设置背景就用createbrush方法。
18---设置背景模式为透明或不透明SetBkMode sMode
smode=OPAQUE 或TRANSPARENT
说明:在创建动画时,和设置光栅时其作用是明显的。
19---设置颜色
SetColor nColor, nRed, nGreen, nBlue
说明:ncolor给这个自定义颜色的编号,以便其它方法引用这个颜色。
         nRed, nGreen, nBlue   RGB颜色数,可以是16进制。


20--设置画笔颜色
SetDrawColor nColor
说明:ncolor表示由setcolor定义的色编号。
         要想更详细的设置画笔,就用CREATEPEN方法。

21--设置文本颜色
SetTextColor nColor
说明:ncolor表示由setcolor定义的色编号。
22--创建gif图片
GifImage nTransparent, nInterlaced, sFileName
说明:nTransparent  如果取true表示要背景色,否则不要背景色。如果无效那对光栅就有效。
        nInterlaced  消除内部据此,取0,1,2
23--创建jpg图片
JpegImage iCompression, iProgressive, sFileName [,nXStart] [,nYStart] [,Width] [,Height]

说明:icompresion一般去-1等价于去压缩率100,取-1的效果与去90的压缩率差不多。取1是很差的效果。
        如:obj.jpegimage -1,0,"text.jpg"
        iProgressive是否逐行扫描,设置为0即false好了。
        sFileName存盘路径。
        [,nXStart] [,nYStart] [,Width] [,Height]可选,存盘时改变图片的尺寸。
        gifimage方法存盘时是不可以改变图片的尺寸的。
      
24---获取磁盘上的图片文件的维数(dimension),就是图片大小。如400x300
GetFileDimensions sFileName,iX,iY
说明:sFileName磁盘上图片的路径
         iX,iY 磁盘文件的尺寸。这个方法要和readiamg配合作用才大,但是用readimage要钱。
如:obj.getfiledimensions "test.jpg",x,y
这里的x,y被读入内存,然后通过creatimage方法调用。
如:obj.createimage x,y,8
25---截屏

CaptureScreen nXDest, nYDest, nWidth, nHeight, nXSrc, nYSrc
说明:
     nXDest, nYDest, nWidth, nHeight确定要创建的图片的大小,nWidth, nHeight这与通常意义下的
      矩形框的确定方法不同。因为它们代表的是宽高。
      nXSrc, nYSrc 表示屏幕的一个点,由这个点到屏幕的左下角就是你的切屏范围。由于没有负费切的图片不大。
dest=distination,src=source
如:obj.capturescreen 10,10,50,50,0,0
10,10,50,50是你要保存的图片的对角线的坐标。
0,0是屏幕的coordinate of left-top point
26---补充创建gif动画
   创建gif动画有2个方法是必须要用到的trackadd,trackplay
   trackadd是用来定义动画区域的,而trackplay是用来存盘的。
   动画的size由于没purchase money。So,你就只可以使用320x240的size了。你觉得不过瘾
   那就pay dollar 80吧。对了最关键的一点是动画的frame怎么来?对了,用前面的划线啊,
   画矩形啊,话椭圆啊,画贝塞尔曲线啊这些方法去创建frame吧。那是你自己的创意了,与我
   无关了。
   TrackAdd iTransp,iXDecl,iYDecl,iX,iY,iWidth,iHeight,iTime [,sDisp]
   itransp: 透明否?
   ixdec1,iydec1配合iWidth,iHeight定义动画演示区域,就是帧。基于图片的letf-top开始计算。
   iX,iY上面定义的动画区域即帧,元件的位置就是ix,iy。这里的计算是基于动画区域
   开始计算的。
   itime:显示表示动画时间。
   sdisp=dispose处理之意。处理谁?不是frame才怪。怎么处理?
   也就是说sdisp有3个取值:"LEAVE","BACKGROUND","PREVIOUS",动画有什么拖尾动画,丢掉动画,就  

是这些意思。
   trackplay太明了,没说的。
   来过例子:
    obj.rectangle 10,30,50,50
    obj.trackadd true,10,10,20,20,80,80,30
    这就定义了一动画区域10,10,10+80,10+80
    在这个区域内,第一帧的位置是10-20,30-20,注意这不是图片的坐标!是动画区域内的坐标
    或叫相对坐标吧。如果让你来设计这个shotgraph我想你也会自然的用相对坐标。为了计算的方便,最后是是把trackadd里面的元件坐标和
   rectangle里面的元件坐标设置成一样,或干脆在trackadd里面把元件的坐标设置成0,0.
    这里的动画的逐帧动画,创建动画的过程。创建帧,在帧上在放元件,超出帧的部分将不显示。元件要放在帧上。注意次序。
    有点遗憾,就是图片有点小,还有textout只支持2个汉字。
27---剪辑版方法
     这里的图像剪辑版和windows剪辑版是完全不同的两个无关概念。它指的是内存里面开辟的一个缓冲区。
     要使用剪辑版,首先要创建图片,就是要在语句
     oimg.createimage xsize,yszie,ncolor 之后才可以使用!
     (a)oimg.initclipboard width,height
               说明:初始化剪辑版,即在内存里面创建一个宽为width,高为height的长方形区域。
     (b)oimg.selectclipboard true
              说明:激活剪辑版,剪辑版必须激活才可以使用。
     (c)oimg.copy  x,y,w,h,cx,cy "SRCCOPY"
              说明:从剪辑版中复制图片。cx,cy是剪辑版的左上顶点坐标。复制的图片就从这里开始直到剪辑版的右下角。
                把复制的图片粘贴到图片的矩形框上,其左上顶点为x,y,右下顶点为x+w,y+h
              
     (d)实例:
  1. set s=createobject("wscript.shell")
  2. set oimg=CreateObject("shotgraph.image")
  3. xsize=320:ysize=240
  4. oimg.createimage xsize,ysize,8
  5. oimg.setcolor 0,200,80,100
  6. oimg.setcolor 1,0,255,0
  7. oimg.setcolor 2,0,0,255
  8. oimg.setbgcolor 0
  9. oimg.fillrect 0,0,xsize,ysize
  10. oimg.initclipboard 50,50
  11. oimg.selectclipboard true
  12. oimg.setbgcolor 1
  13. oimg.rectangle 0,0,100,100
  14. oimg.copy 0,20,30,30,10,10,"SRCCOPY"
  15. oimg.copy 0,60,30,30,10,10,"SRCCOPY"
  16. oimg.copy 10,100,30,30,10,10,"SRCCOPY"
  17. oimg.gifimage -1,0,"hh.gif"
  18. s.run "hh.gif"
复制代码
28---数据传送
     可以把图片当数组数据进行传送。
    (a) 读入图片数据
    data=oimg.readbinaryfile("test.gif",maxsize)
      其中maxsize是预先自己设定的图片的最大尺寸,超出这个尺寸的数据将被丢掉。单位为字节byte。
    如可以设置maxsize=1024*10
     (b)写数据即数据存盘
    oimg.writebinary data,0,ubound(data)+1,"hhh.gif"
      说明:如果报错请把maxsize设置成一个更大的数。         
          0,ubound(data)+1表示数组的维数的最小值是0,最大值是按vb函数ubound计算出来的。
         什么样的图片都可以进行数据的传送,当然也可以进行图片格式的转变。
         如果报错,请把maxsize设置成更大的数。一般来讲如果是800x600,则maxsize=480000
             其它情况类似。

    (d)例子:
  1. set s=createobject("wscript.shell")
  2.                set oimg=CreateObject("shotgraph.image")
  3.                maxsize=480000
  4.               data=oimg.readbinaryfile("sunset.jpg",maxsize)
  5.               oimg.writebinary data,0,ubound(data)+1,"hhh.jpg"
  6.                s.run "hhh.jpg"
复制代码
GOOD LUCK!

TOP

shotgraph可以直接生成gif动画
看实例:
  1. set s=createobject("wscript.shell")
  2. set obj=CreateObject("shotgraph.image")
  3. xsize=320
  4. ysize=240
  5. frames=9
  6. obj.CreateImage xsize,ysize,4
  7. obj.SetColor 0,0,255,51
  8. obj.SetColor 1,0,0,0
  9. obj.SetColor 2,255,0,0
  10. obj.createpen "PS_SOLID",4,2
  11. for i=1 to 50
  12. obj.TrackAdd true,10,10,0,0,150,100,30
  13. obj.rEctangle i+10,i+10,i+30,i+30
  14. next
  15. obj.trackplay "test.gif"
  16. s.run "test.gif"
复制代码
说明:要生存动画就要用到方法:trackadd,trackplay
语法如下:
trackadd  transparent,x,y,x1,y1,width,height,dispose
参数trasparent背景是否透明,取逻辑值
    x--top-left,y--top-up
     x,y与width,height配合就是设置出动画演示的长方形区域
   x1,y1是指在上面设置的动画区域内frame(帧)的坐标,当然
   x1---还是是left-top,y1--left-up
     注意x,y和x1,y1计算坐标的起点是不同的。
   x,y的计算是基于图片的左上角开始计算的,
   而x1,y1是基于动画区域开始计算的。
   你运行我给出的实例记清楚了。
trackplay  path
    保存你生存的动画图片
shotgraph 太好用了,极力推荐给玩家
下面是这段程序生存的动画图片,由于没有付费,所以你看到的动画只是运动了一次,
要再次看到运动,你刷新网页就可以了。

TOP

让字体动态的旋转一周
  1. set oshell=createobject("wscript.shell")
  2. set oimg=createobject("shotgraph.image")
  3. x=320
  4. y=240
  5. oimg.createimage x,y,3
  6. oimg.setcolor 0,100,255,0
  7. oimg.setcolor 1,0,0,200
  8. oimg.setcolor 2,255,0,0
  9. oimg.settextcolor 2
  10. for i=0 to 40
  11. oimg.createfont "arial",0,48,90*i,false,false,false,false
  12. oimg.textout 100,100,"hello"
  13. oimg.gifimage true,95,"test.gif"
  14. oshell.run "test.gif" ,1
  15. wscript.sleep 1000
  16. next
复制代码

TOP

我没打算学VB/VBScript语言本身(因为我不懂编程),我的目的是会写VBS脚本,会使用常用函数和对象。
VBS我不了解,但我对VBS提供的函数大多数都知道用法,对系统提供的常用对象如WScript、WScript.Shell、WScript.NetWork、Scripting.FileSystemObject、Scripting.Dictionary、正则表达式、InternetExplorer.Application、Adodb.Stream等都会用。我觉得学vbs会这些东西就够了。

TOP

本帖最后由 myzam 于 2011-4-1 22:43 编辑

你说的一点都没错。
对我来说我就只关心画函数图象。其它的对我用处都不大。我看其它的只是了解它吧了。说真的要说方便把vb一架就解决问题了。用不了这么繁杂的。
html那东东是看不会的。建个网站,在用中才能学会。
vbs手册就算看一万次,还是学不会vbs的,除非去用。
就像看不会数学一样,你就算把数学书看破了,也学不会数学的,不是吗?学数学我们都知道要学习数学的各个分支,如果对数学分析感兴趣,就只学习数学分析,而对射影几何一点都不了解那是不行的,要想学习数学,出了做数学题外,不会有更好的方法。
所以学校vbs不在全局上对vbs做个大概的了解,我觉得是不行的。学习脚本部件,学习hta,
其实就是从不同的角度去了解vbs。最后是各人取自己感兴趣的去学习。

TOP

虽然我没学过任何编程语言,但我也会写不太复杂的vbs脚本,觉得一本《Windows脚本技术(script56.chm)》足以走遍天下。虽然对VB/VBScript语言怎么不理解,但根据手册里中的例子照葫芦画瓢也能解决大多数常见问题。关键是对手册里函数的功能和用法还有例子要熟,要经常看。不懂没关系,关键是要知道一个函数能实现什么功能、怎么使用、要什么参数、得到什么结果。

所以在我看来getref、脚本部件什么的,都是无意义的东西。可能是很强大,但对我来说几乎用不上,估计大多数人也一样,而且创建脚本部件并好像不能产生新的用法,还是对基本vbs功能的组合。我觉得了解wsf文件也比这些强。

至于楼主鼓吹的hta,本质就是HTML,要想学hta当今世界上几乎没有资料,为什么?因为学HTML、CSS、DOM就行了,不要本末倒置。只是hta用于本地运行,由mshta解释,并多了一个<hta>标签及相应功能。

要了解其他COM对象,最好的手册是MSDN

----以上内容多数是向zqz0012005版主学习的,他是我的vbs入门老师

TOP

本帖最后由 myzam 于 2011-4-2 22:00 编辑

估计是。呵呵。
对了,这个控件还可以创建文字
  1. set oshell=createobject("wscript.shell")
  2. set oimg=createobject("shotgraph.image")
  3. x=200
  4. y=200
  5. oimg.createimage x,y,8
  6. oimg.setcolor 0,255,100,12
  7. oimg.setcolor 1,125,0,0
  8. oimg.setcolor 2,255,255,200
  9. oimg.fontsmoothing=2
  10. oimg.textout 50,100,"hello world hello world"
  11. oimg.gifimage 1,95,"test.swf"
  12. oshell.run "test.swf",3
复制代码
创建字体画的语法(保存为swf,这样可以突破尺寸大小为320x240的限制):
  1. set oshell=createobject("wscript.shell")
  2. set oimg=createobject("shotgraph.image")
  3. x=800
  4. y=600
  5. oimg.createimage x,y,8
  6. oimg.setcolor 0,255,100,12
  7. oimg.setcolor 1,125,0,0
  8. oimg.setcolor 2,255,255,200
  9. oimg.createfont "Arial",50,72,100,false,false,false,false
  10. oimg.textout 10,20,"hello"
  11. oimg.gifimage 10,0,"test.swf"
  12. oshell.run "test.swf",3
复制代码
语法:
1--设置字体属性 ,line取逻辑值,这里的逻辑值比较松,true为非0,false为0
oimg.createfont "font-family",charactorset,size,rotation,line1,line2,line3,line4
2--字体位置:
oimg.textout  leftposition,topposition,"text,text can be chinese"
3--字体颜色
   由oimg.setcolor num,red,green,blue 定义颜色
   由oimg.settextcolor num 把编号为num的颜色应用到字体上。
完整的语法为:createFont sFamily, nCharset, nHeight, nAngle, bBold, bItalic, bUnderline, bStrikeOut [,bUnicode]

TOP

不好意思,刚才没转过来弯来,有点心事,
枫中残雪:风停了,我的心却在动,让我心中的寒意走向远方

TOP

本帖最后由 myzam 于 2011-4-1 21:08 编辑

20# wc726842270

好掌握啊。比如你的图片大小是200x100,你的图片是矩形框。从左上角开始的坐标为0,0,左下角的坐标就是200,100.
我把你推荐的书下来看看。

TOP

本帖最后由 wc726842270 于 2011-4-1 20:58 编辑

是好,这样也可以画出函数图像了。不过中心点好像有些不太好掌握
PS:1L的“转帖 值得一看的vbs文章”很给力。不过现在正看脚本之家的“VBS揭密".在此也推荐一下吧(不过主要是HTML的)
http://www.jb51.net/books/16580.html
枫中残雪:风停了,我的心却在动,让我心中的寒意走向远方

TOP

返回列表