VB程序员博客
02 8th, 2010
rt
程序跟着快捷方式图标跑,这个比较麻烦。
首先,图标在哪都不确定。
先在桌面上找到快捷方式的坐标,
计算该快捷方式下面的高度够不够显示整个窗口:
够,在该位置显示窗口;
不够,在屏幕中心显示窗口。
不过费上面那事儿,还不如显示窗口时,如能恢复到上次关闭前保存的位置就恢复该位置,不能恢复的话就在屏幕中心显示。也就是说,“恢复以前位置”比“显示在指定桌面快捷方式下面的位置”更好、更实用。
<
<
02 6th, 2010
dim cn as new adodb.connection
cn.open ""
str1="update tab set a=1 where …"
str2="update tab set a=12 where …"
str3="update tab set a=12 where …"
str4="update tab set a=12 where …"
str5="update tab set a=12 where …"
…
cn.execute str1
cn.execute str2
cn.execute str3
cn.execute str4
cn.execute str5
…
现在想把…包含的部分变成下列形式(但是下列的形式是错误的),请问如何实现。或帮我改易下页可以。
for i=0 to 2000
cn.execute str & (i+1)
next
为什么要写成上面的形式,我觉得这样好修改比较方便。另外不占地方.
dim str1(1 to 5) as string ' str是系统函数,所以用str1
str1(1)="update tab set a=1 where …"
str1(2)="update tab set a=12 where …"
str1(3)="update tab set a=12 where …"
str1(4)="update tab set a=12 where …"
str1(5)="update tab set a=12 where …"
for i=0 to 2000
cn.execute str1(i+1)
next
for i=0 to 2000
str="update tab set a=" & (i+1) & " where …"
cn.execute str
next
for i=0 to 2000
strsql="update tab set a=" & (i+1) & " where …"
cn.execute strsql
next
错误原因在于VB不支持直接使用指针。
延续1楼的思路,使用更有效率的批更新:
dim str1(1 to 5) as string ' str是系统函数,所以用str1
str1(1)="update tab set a=1 where …"
str1(2)="update tab set a=12 where …"
str1(3)="update tab set a=12 where …"
str1(4)="update tab set a=12 where …"
str1(5)="update tab set a=12 where …"
dim UpdateString as string
UpdateString = "BEGIN TRANSACTION" & chr(13) & chr(10)
for i=0 to 2000
updatestring=updatestring & str1(i+1) & chrw(13) & chrw(10)
next
updatestring = updatestring & "COMMIT TRANSACTION"
cn.execute updatestring
02 6th, 2010
dim cn as new adodb.connection
cn.open ""
str1="update tab set a=1 where …"
str2="update tab set a=12 where …"
str3="update tab set a=12 where …"
str4="update tab set a=12 where …"
str5="update tab set a=12 where …"
…
cn.execute str1
cn.execute str2
cn.execute str3
cn.execute str4
cn.execute str5
…
现在想把…包含的部分变成下列形式(但是下列的形式是错误的),请问如何实现。或帮我改易下页可以。
for i=0 to 2000
cn.execute str & (i+1)
next
为什么要写成上面的形式,我觉得这样好修改比较方便。另外不占地方.
dim str1(1 to 5) as string ' str是系统函数,所以用str1
str1(1)="update tab set a=1 where …"
str1(2)="update tab set a=12 where …"
str1(3)="update tab set a=12 where …"
str1(4)="update tab set a=12 where …"
str1(5)="update tab set a=12 where …"
for i=0 to 2000
cn.execute str1(i+1)
next
for i=0 to 2000
str="update tab set a=" & (i+1) & " where …"
cn.execute str
next
for i=0 to 2000
strsql="update tab set a=" & (i+1) & " where …"
cn.execute strsql
next
错误原因在于VB不支持直接使用指针。
延续1楼的思路,使用更有效率的批更新:
dim str1(1 to 5) as string ' str是系统函数,所以用str1
str1(1)="update tab set a=1 where …"
str1(2)="update tab set a=12 where …"
str1(3)="update tab set a=12 where …"
str1(4)="update tab set a=12 where …"
str1(5)="update tab set a=12 where …"
dim UpdateString as string
UpdateString = "BEGIN TRANSACTION" & chr(13) & chr(10)
for i=0 to 2000
updatestring=updatestring & str1(i+1) & chrw(13) & chrw(10)
next
updatestring = updatestring & "COMMIT TRANSACTION"
cn.execute updatestring
01 27th, 2010
我要在程序中实现:先查到所需要的字符串,然后显示该字符串所在行的整行内容。
请各位指导下,谢谢了
例如:
……..
LIBRARY OPTIONS
"custom_lib";
UNCONNECTED PIN NC;
CAPACITOR
C1B1 10u 20 20 f;
C1B2 10u 20 20 f;
C1B3 10u 20 20 f;
C1B4 10u 20 20 f;
C1B6 10u 20 20 f;
当我查找C1B6时,在一个text.box 中能显示整行内容: C1B6 10u 20 20 f;
定位到这个字符串很容易,就是不知道该怎么显示整行内容?
程序:
….
address= InStr(1, Form1.context1.Text, "C1B6", 0)
下面怎么办?或者有什么另外的办法??
用InStrRev找到上一个换行符,用instr找到下一个换行符,显示两个换行符之间的内容。
谢了!
我也想知道呀
01 26th, 2010
我的mfc程序需要一个小模块实现控制笔记本电脑第二个显示器的开关。
即是:屏幕属性-〉设置->“将Windows桌面扩展到该显示器”选项 一模一样的功能.
不知用vb6.0怎样实现?
非常感谢!
sunrd
不晓得哦 帮顶
用C#是这样实现,但怎样转换用VB表示!
this.DesktopLocation=Screen.AllScreens[1].Bounds.Location;
<
关注一下
没有人知道吗?
楼上的回答说明. 学vb最后还是要学一点vc.
VB不太适合搞这种操作。
友情顶贴…………
帮楼主顶上去!
01 21st, 2010
如题:
vb 怎么实现串口端口的扫描呢?就是将电脑上现有的串口号扫描罗列出来。
大家都没上班吗 自己先顶
small but effective tool(if u know the rite way to use it..u might do wonders..)
——————–
you need:
2 textboxes
1 listbox
3 commandbuttons
1 timer
1 winsock control
——————–
Code: VB
Private Sub Command1_Click() Timer1.Enabled = TrueEnd SubPrivate Sub Command2_Click() Timer1.Enabled = False Text2.Text = "0"End SubPrivate Sub Command3_Click() List1.ClearEnd SubPrivate Sub Timer1_Timer() On Error Resume Next Winsock1.Close Text2.Text = Int(Text2.Text) + 1 Winsock1.RemoteHost = Text1.Text Winsock1.RemotePort = Text2.Text Winsock1.ConnectEnd SubPrivate Sub Winsock1_Connect() List1.AddItem Winsock1.RemotePort & " is open!"End Sub——————–
explanation:
text1 = IP to scan
text2 = starting port
list1 = list where all open ports are shown
command1 = start
command2 = stop and reset
command3 = clear port list
timer1 = will make the winsock control to try ports
我要扫描的是串口端口
查注册表。可以得到所有固有的硬件串口和虚拟串口。
4楼的方法可行
四楼的方法是行 但有时候 虚拟端口的端口 可能会比较大 顺序查找的话没什么效率啊,而且事先也不知道查到哪为止
of123能告诉我怎么查注册表吗
呼叫OF123 大哥还在不
HKEY_LOCAL_MACHINEHARDWAREDEVICEMAPSERIALCOMM
一般pc支持16个串口,所以想1~17去遍历也不行,如果事先知道没那么多串口,可以1~8遍历就行,我试过了,这样遍历可以将虚拟串口一块罗列出来,注册表的方法也不错,但如果操作系统不同,位置会不会不同呢?还有如果人为在注册表删掉键值,读出来就是错误了。一般在form_load里面判断一次,速度应该不是问题吧?
不想说话
我以前做过一个一转16 的虚拟串口 每次换个USB口都会有不同的 虚拟口,有时候虚拟口都到40多的 所以我觉得遍历方法会不可靠
搞错,虽然pc支持串口数没那么多,但可遍历数很大,1~1000都没问题。
01 21st, 2010
在当前目录下的/musics/下有N多音乐文件,程序运行的时候, windowsmediaplayer控件正在播放其中某一个文件:
1、当程序检测正在播放的文件被删除或移动时,弹出对话框警告不准删除或移动,然后阻止这个文件的删除或移动
2、当有音乐文件复制到这个文件夹(某些特定的音乐文件,*.mp3,*.wav,*.mid,*.ogg)的时候,弹出对话框提示“新增了音乐文件”
3、当这个文件夹下有音乐文件被删除,但不是正在播放的文件时,提示“删除了音乐文件”
http://download.csdn.net/source/778924
可参考这个源码:
http://www.84ren.com/read.php?tid-28140.html
顺便再问下,一个list1控件,怎么用鼠标拖文件进来的方法得到文件名和路径
要求:
首先对文件类型进行判断,必须为*.mp3,*.wav,*.mid,*.ogg文件
如果本来list1中没有元素,则在list1中增加这个文件的文件名(不包含路径)
如果本来list1中有元素,则要判断一下这个文件在list1中是否已经存在(进行完整的路径和文件名验证),如果存在则不添加,如果不存在则添加进来
最后把文件(包含路径)的地址赋给数组c(1 to 128)
<
关键是没分了!!!有分的话就重开了!
wmi很容易就可以完成
01 6th, 2010
如何实现模拟鼠标点击网页超连接或按钮
关注
最近搞HTML+VB的人特多….
<
'模拟点击登陆按钮
Set vDoc = WebBrowser1.Document
for i …
Set vTag = vDoc.All(i)
If vTag.Type = "submit" And vTag.Value = "登录" Then '登陆按钮
vTag.Click
End If
next
谁有webbrowser1的具体用法说明呢?
百度里搜一下,有好多
WebBrowser常见用法
http://hi.baidu.com/hacklzt/blog/item/a1e5b23fd32fa3f2828b1305.html
<
上面提供的链接不错,自己搜一下也容易找到,网上很多的。
http://hi.baidu.com/hacklzt/blog/item/a1e5b23fd32fa3f2828b1305.html
这里不错 收藏了 学习下
webbrower不需要去模拟鼠标点击
改refer就可以了
01 6th, 2010
如何实现模拟鼠标点击网页超连接或按钮
关注
最近搞HTML+VB的人特多….
<
'模拟点击登陆按钮
Set vDoc = WebBrowser1.Document
for i …
Set vTag = vDoc.All(i)
If vTag.Type = "submit" And vTag.Value = "登录" Then '登陆按钮
vTag.Click
End If
next
谁有webbrowser1的具体用法说明呢?
百度里搜一下,有好多
WebBrowser常见用法
http://hi.baidu.com/hacklzt/blog/item/a1e5b23fd32fa3f2828b1305.html
<
上面提供的链接不错,自己搜一下也容易找到,网上很多的。
http://hi.baidu.com/hacklzt/blog/item/a1e5b23fd32fa3f2828b1305.html
这里不错 收藏了 学习下
webbrower不需要去模拟鼠标点击
改refer就可以了
12 31st, 2009
各位高手,最近我编了一个简易的浏览器,用到了combobox 我想在实现输入字符下拉列表即自动出现以前输入过的匹配的项
当在下拉列表中选中它时自动浏览指定网页,请高手指教,谢谢了~~~~
Public Declare Function SHAutoComplete Lib "Shlwapi.dll" (ByVal hWndEdit As Long, ByVal dwFlags As Long) As Long
Public Enum SHAC_Constants
Default = &H0
FileSystem = &H1
UrlHistory = &H2
URLMRU = &H4
URLAll = (&H2 Or &H4)
End Enum
对于你的问题这样既可。注意,组合框的hWndEdit不是组合框的句柄,而是组合框中的类名为edit句柄。
如果要实现自定义资源,则需要实现自动完成接口
还是不太懂啊~~
那具体该怎么写呢?请指教!!
怎么使用它 ,说详细点吧~~谢谢了
用StrComp函数比较一下你正在输入的值(即combo1.text)跟combobox列表项之间存在什么关系?是相等,还是大于、小于列表项,根据不同有条件作出相应的处理(注意保存原始项目)。
怎么检查?是在change事件里吗? 还有要是相等了,怎么让下拉列表弹出?????
如需要阅读该回复,请