VB程序员博客

VB程序开发

text1.text="美女就是好啊"
text2.text="大家好"
text3.text="中国好"

将三个textbox 输到报表,,然后预览

给代码.只能说,很简单。
报表是要确定位置的,你如果要放在除Detil外的地方,直接放上控件赋值就可以了~~三个等号就不用代码了吧~~

<
<
检查数据库是否连接上不想连接数据库,行不行?????????<
<

10楼vbman2003你是对的,

再请问一下.怎么将MSHFlexGrid的内容输到DataReport

我写的正确代码和12楼一样

请问怎么将MSHFlexGrid的内容输到DataReport顺便问问 VB LISTVIEW 读出每列到数据后能 直接预览、打印吗 不要连接什么数据库<
具体代码

要带表格的..有吗....如何把MSHFlexGrid的内容添加到rst???<
<


帮忙写个代码

这两天搞到头都大了。帮楼主顶上。MSHFlexGrid的内容传给一个数据集rs,DataReport的数据源为rs即可上楼给个简单代码,,。第一次搞报表。。upupupsection1添加与mshflexgrid列一样多的
textbox(非绑定)

rst与报表数据源绑定
字段与textbox绑定
代码.

200分是你的.两张贴.前提,不用连接数据库

<


text1.text="美女就是好啊"
text2.text="大家好"
text3.text="中国好"

将三个textbox 输到报表,,然后预览

给代码.只能说,很简单。
报表是要确定位置的,你如果要放在除Detil外的地方,直接放上控件赋值就可以了~~三个等号就不用代码了吧~~

<
<
检查数据库是否连接上不想连接数据库,行不行?????????<
<

10楼vbman2003你是对的,

再请问一下.怎么将MSHFlexGrid的内容输到DataReport

我写的正确代码和12楼一样

请问怎么将MSHFlexGrid的内容输到DataReport顺便问问 VB LISTVIEW 读出每列到数据后能 直接预览、打印吗 不要连接什么数据库<
具体代码

要带表格的..有吗....如何把MSHFlexGrid的内容添加到rst???<
<


我现在要做的一个任务就是通过一个程序抓取网页中固定的值,但是现在遇到一个问题,比如,在同一个网页中碰到两个li,而我想要抓取第二个li列表中的内容,请问各位大侠,我该怎么写???使用dom树。
或者都找到,丢弃第一个。
或者正则表达式。

so easy的问题,so many的方法。getElementsByTagname("li")(1).innerhtml


为了问题简单化,简单举例如下:
1、我用vb6写了一个简单的浏览器,里面用到了webbrowser,浏览网页时,禁止复制和粘贴功能。

2、我能不能用vb6再写一个程序来破解前面的程序中webbrowser的禁止复制和粘贴的功能。或者是直接将第一个程序中的webbrowser中的内容复制下来。

我只是想知道,除了IE浏览器,其他人写的第三方浏览器(vb、vc)能不能破解其页面锁定的功能?????

大侠们给提供点思路啊。帮顶一下可以啊,给个思路你把,首先他一定是通过某个涵数等来阻止复制和粘贴,只要你把那涵数找到,然后将其去掉,就可以复制粘贴了,我试过,但在webbrowser中,你是需要先进入那网页,然后修改其代码进行判断才可以.地址欄javascript:協議可以獲得源代碼<
给你个思路,不过有个前提,就是至少知道目标WEB页所在进程内的一个有效句柄:

一,利用句柄得到目标的最上层窗口的句柄;

二,查找Shell Embedding窗口–>Shell DocObject View窗口—>最终找到Internet Explorer_Server窗口的句柄;

三,发送WM_HTML_GETOBJECT消息取得一个已编排的IHTMLDocument2接口指针

四,再使用ObjectFromLresult就能通过这个接口指针得到一个HTMLDocument对象.

得到HTMLDocument对象后,想干嘛都行了………..睡.网上很多的网页星号查看器就是这个原理.<
<
不能用内容区分…你怎么知道你要取哪个~~~

CSDN 有现成的源程 供参考

百度 CVBWebBrowserHunter<
可以的.WIN程序是一种消息机制的程序.结合钩子和消息就可以突破你程序的限制


  VB下如何将dbgrid的单元格内容垂直居中?下面的代码是 Delphi 的,请各位高手帮帮转成VB,先谢了!
出自
http://topic.csdn.net/t/20061217/09/5236146.html
  //自动折行,  自动调整行高,  对齐方式为垂直居中 
  procedure  TMainForm.DBGridDrawColumnCell(Sender:  TObject; 
      const  Rect:  TRect;  DataCol:  Integer;  Column:  TColumn; 
      State:  TGridDrawState); 
  var 
      ARect:  TRect; 
      HCell:  Integer; 
      RecNo:  Integer; 
      SCell:  string; 
  begin 
      if  DBGrid.DataSource.DataSet.RecordCount  >  0  then 
      begin 
          RecNo  :=  DBGrid.DataSource.DataSet.RecNo; 
          //注意,我这里只是示范,实际应用要加上转换异常处理 
          SCell  :=  Column.Field.AsString; 
          Arect  :=  Rect; 
          Column.Title.Alignment  :=  taCenter; 
          with  DBGrid,  DBGrid.Canvas  do 
          begin 
              HCell  :=  DrawText(Handle,  PChar(SCell),  Length(SCell),  ARect,  DT_CENTER  or  DT_VCENTER  or  DT_WORDBREAK); 
              FillRect(ARect); 
              if  HCell  >=  RowHeights[RecNo]  then 
              begin 
                  RowHeights[RecNo]  :=  HCell; 
                  DrawText(Handle,  PChar(SCell),  Length(SCell),  ARect,  DT_CENTER  or  DT_VCENTER  or  DT_WORDBREAK) 
              end  else 
                  DrawText(Handle,  PChar(SCell),  Length(SCell),  ARect,  DT_CENTER  or  DT_VCENTER  or  DT_SINGLELINE); 
          end; 
      end; 
  end; 
   
  //你可以在此基础上,再变化出你自己想要的单元格效果 
   
  //可以根据不同的数据类型设置不同的对齐方式,如数字右对齐 
   
  //请看下面绘制文本格式常量,  每个常量的效果你可以自己多测试。 
   
  const 
      {  DrawText()  Format  Flags  } 
      {$EXTERNALSYM  DT_TOP} 
      DT_TOP  =  0; 
      {$EXTERNALSYM  DT_LEFT} 
      DT_LEFT  =  0; 
      {$EXTERNALSYM  DT_CENTER} 
      DT_CENTER  =  1; 
      {$EXTERNALSYM  DT_RIGHT} 
      DT_RIGHT  =  2; 
      {$EXTERNALSYM  DT_VCENTER} 
      DT_VCENTER  =  4; 
      {$EXTERNALSYM  DT_BOTTOM} 
      DT_BOTTOM  =  8; 
      {$EXTERNALSYM  DT_WORDBREAK} 
      DT_WORDBREAK  =  $10; 
      {$EXTERNALSYM  DT_SINGLELINE} 
      DT_SINGLELINE  =  $20; 
      {$EXTERNALSYM  DT_EXPANDTABS} 
      DT_EXPANDTABS  =  $40; 
      {$EXTERNALSYM  DT_TABSTOP} 
      DT_TABSTOP  =  $80; 
      {$EXTERNALSYM  DT_NOCLIP} 
      DT_NOCLIP  =  $100; 
      {$EXTERNALSYM  DT_EXTERNALLEADING} 
      DT_EXTERNALLEADING  =  $200; 
      {$EXTERNALSYM  DT_CALCRECT} 
      DT_CALCRECT  =  $400; 
      {$EXTERNALSYM  DT_NOPREFIX} 
      DT_NOPREFIX  =  $800; 
      {$EXTERNALSYM  DT_INTERNAL} 
      DT_INTERNAL  =  $1000; 
      {$EXTERNALSYM  DT_HIDEPREFIX} 
      DT_HIDEPREFIX  =  $00100000; 
      {$EXTERNALSYM  DT_PREFIXONLY} 
      DT_PREFIXONLY  =  $00200000; 
   
      {$EXTERNALSYM  DT_EDITCONTROL} 
      DT_EDITCONTROL  =  $2000; 
      {$EXTERNALSYM  DT_PATH_ELLIPSIS} 
      DT_PATH_ELLIPSIS  =  $4000; 
      {$EXTERNALSYM  DT_END_ELLIPSIS} 
      DT_END_ELLIPSIS  =  $8000; 
      {$EXTERNALSYM  DT_MODIFYSTRING} 
      DT_MODIFYSTRING  =  $10000; 
      {$EXTERNALSYM  DT_RTLREADING} 
      DT_RTLREADING  =  $20000; 
      {$EXTERNALSYM  DT_WORD_ELLIPSIS} 
      DT_WORD_ELLIPSIS  =  $40000;dbgrid 和 Delphi都没用过。
一般的grid多有 column的alignment的吧。dbgrid是vb5的控件吧,本身没有这个功能,等我出差回来研究一下.
估计得用api,不知道能否解决,实在不行自己做个如何
好的,先谢了!!!!!

好像是 colalignment= 一个值 1到7的试试layout。alignment=2MSFlexGrid


  VB下如何将dbgrid的单元格内容垂直居中?下面的代码是 Delphi 的,请各位高手帮帮转成VB,先谢了!
出自
http://topic.csdn.net/t/20061217/09/5236146.html
  //自动折行,  自动调整行高,  对齐方式为垂直居中 
  procedure  TMainForm.DBGridDrawColumnCell(Sender:  TObject; 
      const  Rect:  TRect;  DataCol:  Integer;  Column:  TColumn; 
      State:  TGridDrawState); 
  var 
      ARect:  TRect; 
      HCell:  Integer; 
      RecNo:  Integer; 
      SCell:  string; 
  begin 
      if  DBGrid.DataSource.DataSet.RecordCount  >  0  then 
      begin 
          RecNo  :=  DBGrid.DataSource.DataSet.RecNo; 
          //注意,我这里只是示范,实际应用要加上转换异常处理 
          SCell  :=  Column.Field.AsString; 
          Arect  :=  Rect; 
          Column.Title.Alignment  :=  taCenter; 
          with  DBGrid,  DBGrid.Canvas  do 
          begin 
              HCell  :=  DrawText(Handle,  PChar(SCell),  Length(SCell),  ARect,  DT_CENTER  or  DT_VCENTER  or  DT_WORDBREAK); 
              FillRect(ARect); 
              if  HCell  >=  RowHeights[RecNo]  then 
              begin 
                  RowHeights[RecNo]  :=  HCell; 
                  DrawText(Handle,  PChar(SCell),  Length(SCell),  ARect,  DT_CENTER  or  DT_VCENTER  or  DT_WORDBREAK) 
              end  else 
                  DrawText(Handle,  PChar(SCell),  Length(SCell),  ARect,  DT_CENTER  or  DT_VCENTER  or  DT_SINGLELINE); 
          end; 
      end; 
  end; 
   
  //你可以在此基础上,再变化出你自己想要的单元格效果 
   
  //可以根据不同的数据类型设置不同的对齐方式,如数字右对齐 
   
  //请看下面绘制文本格式常量,  每个常量的效果你可以自己多测试。 
   
  const 
      {  DrawText()  Format  Flags  } 
      {$EXTERNALSYM  DT_TOP} 
      DT_TOP  =  0; 
      {$EXTERNALSYM  DT_LEFT} 
      DT_LEFT  =  0; 
      {$EXTERNALSYM  DT_CENTER} 
      DT_CENTER  =  1; 
      {$EXTERNALSYM  DT_RIGHT} 
      DT_RIGHT  =  2; 
      {$EXTERNALSYM  DT_VCENTER} 
      DT_VCENTER  =  4; 
      {$EXTERNALSYM  DT_BOTTOM} 
      DT_BOTTOM  =  8; 
      {$EXTERNALSYM  DT_WORDBREAK} 
      DT_WORDBREAK  =  $10; 
      {$EXTERNALSYM  DT_SINGLELINE} 
      DT_SINGLELINE  =  $20; 
      {$EXTERNALSYM  DT_EXPANDTABS} 
      DT_EXPANDTABS  =  $40; 
      {$EXTERNALSYM  DT_TABSTOP} 
      DT_TABSTOP  =  $80; 
      {$EXTERNALSYM  DT_NOCLIP} 
      DT_NOCLIP  =  $100; 
      {$EXTERNALSYM  DT_EXTERNALLEADING} 
      DT_EXTERNALLEADING  =  $200; 
      {$EXTERNALSYM  DT_CALCRECT} 
      DT_CALCRECT  =  $400; 
      {$EXTERNALSYM  DT_NOPREFIX} 
      DT_NOPREFIX  =  $800; 
      {$EXTERNALSYM  DT_INTERNAL} 
      DT_INTERNAL  =  $1000; 
      {$EXTERNALSYM  DT_HIDEPREFIX} 
      DT_HIDEPREFIX  =  $00100000; 
      {$EXTERNALSYM  DT_PREFIXONLY} 
      DT_PREFIXONLY  =  $00200000; 
   
      {$EXTERNALSYM  DT_EDITCONTROL} 
      DT_EDITCONTROL  =  $2000; 
      {$EXTERNALSYM  DT_PATH_ELLIPSIS} 
      DT_PATH_ELLIPSIS  =  $4000; 
      {$EXTERNALSYM  DT_END_ELLIPSIS} 
      DT_END_ELLIPSIS  =  $8000; 
      {$EXTERNALSYM  DT_MODIFYSTRING} 
      DT_MODIFYSTRING  =  $10000; 
      {$EXTERNALSYM  DT_RTLREADING} 
      DT_RTLREADING  =  $20000; 
      {$EXTERNALSYM  DT_WORD_ELLIPSIS} 
      DT_WORD_ELLIPSIS  =  $40000;dbgrid 和 Delphi都没用过。
一般的grid多有 column的alignment的吧。dbgrid是vb5的控件吧,本身没有这个功能,等我出差回来研究一下.
估计得用api,不知道能否解决,实在不行自己做个如何
好的,先谢了!!!!!

好像是 colalignment= 一个值 1到7的试试layout。alignment=2MSFlexGrid


open "z:1.txt" for input as #1
do while not eof(1)
line input #1,temp
list1.additem temp
loop
close #1
上面这段代码是可以的。但是如果我我的txt文档是一个网络文档,比如http://www.url.com/1.txt。这样的话应该怎么实现listbox按照行来读入1.txt里面的内容呢?

把"z:1.txt"换成"http://www.url.com/1.txt"试试


小弟想把自己的帐号和密码存到记事本里,然后让vb读取记事本的内容,然后自动填写到网页上。

各位大哥,我需要怎么做?可以帮忙给个实例代码吗?谢谢了!

自动登陆网站呗。

因为没想到别的方法才想到用读取记事本的。

另外,我要登陆的那个网站有验证码,那个好像不好解决,所以能自动帮我填好帐号和密码就可以了。验证码我自己填。

去我博客看看,有关于简单自动登陆的代码

wbr.Navigate ??

是什么控件?

学完序列化和反序列化了么?利用序列化,反序列化和文件流读写就可以了

太专业了,我就一业余。。。。

各位大哥能帮帮我吗?

MicroSoft internet controls 6
把这个部件添加进程序,然后会多出一个webbrowser控件,wbr是我改的名字。

哦。。。。

那我想随时改帐号怎么整啊。。。总不能每换一次就改一次工程吧。

晕死~~~,
你加两个文本框不就行了,一个输入名字,一个密码,
如果你不知道怎么从文件中载入数据,那就多看看vb练习册吧

要不,你把网址告诉我,我帮你写个例子

http://warlord.duowan.com/f1.html
就是这个网址了
能一键填好帐号密码就可以。。。验证码可以先不管。。。
麻烦你了,谢谢你了,呵呵~

Private Sub Form_Load()
wbr.Navigate "http://warlord.duowan.com/f1.html"  'wbr为在‘工程’—‘部件’中添加microsoft internet control,然后拖一个webbrowser至窗体,改名wbr
End Sub

Private Sub wbr_DocumentComplete(ByVal pDisp As Object, URL As Variant)  '你可以运行,观看效果,是不是自动把你设置的值给填进去了
Dim obj
    If Not (pDisp Is wbr.Object) Then
      Exit Sub
    End If
     
        For Each obj In wbr.Document.All
            If TypeName(obj) = "HTMLInputElement" Then
              If obj.Name = "username" Then
                  obj.Value = "myname"
              End If
              If obj.Name = "passwd" Then
                  obj.Value = "123456"
                  Exit For
              End If
            End If
      Next
             
End Sub  '例子较简单,你可以自己深入一点,这个验证码是单色的,而且没有干扰线,应该比较好做

学习

虽然现在还没学到这

谢谢你~

接下来的问题就是:

我怎么才能让这个程序自动我填写在记事本里的帐号和密码~

关于那个验证码。。我也看了一些文章。。。

但是由于我真的太嫩了~很多东西都看不懂~有望多多指教~

我怎么才能让这个程序自动找 我填写在记事本里的 帐号和密码~

用记录文件 random
type user
  username as string*20
  pwd as string*20
end type
读写文件的代码我就不写了,用数据库也可以,复杂一点

很是感激~

我不懂什么是random

是一个控件吗?

你手头有vb参考书吗?看看文件那一章,或者搜索msdn也可以

我刚才翻了一下。。。
我的书上没有哪方面的内容。。。5555
我的书不好~~~哎《VB应用程序设计》

还请你帮忙了~~~

http://www.chinaitlab.com 去那里 点电子书下载,下几本去看


小弟求一源码,我买的书上没有这个内容。。。所以请大家帮忙~

我有一个记事本

我想让VB一键获取记事本里的第一行内容,然后显示在text1中;并将其第二行内容,显示在text2中。

我的记事本路径为“C:XXXX.txt”

看不懂啊,有command控件吗

我是新手啊

正如1楼所说
定义两个全局变量
然后在窗体载入(form_load)事件中把C:xxxx.txt的内容读到aa变量中保存起来.
然后在Command_click事件中用split()函数把aa以换行符分离开来存放到s数组里
然后
再在两个textbox里面显示出来就OK了

rivate Sub Form_Load()
Open "c:XXXX.txt" For Input As #1
Line Input #1, aa
Text1 = aa
Line Input #1, aa
Text2 = aa
Close #1
End Sub

以上语句能实现LZ的要求,但是我也是搜索来的,具体意思有点不明白。

而且这只能按顺序提取数据,不能指定行数;

望高手能指点明白,满足我们这些初学者的要求。

万分感谢~

readline

UP  1楼整解