VB程序员博客
02 5th, 2010
Public Sub UpData() '在线升级
On Error Resume Next
Dim MyData() As Byte, VerInfo() As Byte, Ti As Long, Tj As Long
If Inet1.StillExecuting = True Then Exit Sub
VerInfo() = Inet1.OpenURL("http://www.xxx.com/uploadsoft/update.txt", icString)
Ti = InStr(1, VerInfo, vbCrLf) + 2
Tj = InStr(Ti, VerInfo, vbCrLf)
'检测版本号
If Val(Left$(VerInfo, Ti - 3)) <= Val(App.Major & "." & App.Minor & App.Revision) Then Exit Sub
If MsgBox("SWpsF 发布了新的版本:" + Left$(VerInfo, Ti - 3) + ",文件大小:" + Mid$(VerInfo, Tj + 2) + ",是否进行在线升级 ?", vbYesNo + vbQuestion, "在线升级") = vbNo Then Exit Sub
IsUp = True
'开始下载更新文件
MyData() = Inet1.OpenURL("http://www.xxx.com/uploadsoft/" + Mid$(VerInfo, Ti, Tj - Ti), icByteArray)
Open App.Path + "" + Mid$(VerInfo, Ti, Tj - Ti) For Binary Access Write As #1
Put #1, , MyData()
Close #1
IsUp = False
'执行更新文件
ShellExecute 0, vbNullString, App.Path + "" + Mid$(VerInfo, Ti, Tj - Ti), vbNullString, App.Path, SW_SHOWNORMAL
End
End Sub
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
在执行了put #1,,mydata() 以后,写出的文件是一个4K大小的文件,文件名是一样的,不是我想要下来的文件,请高手帮看下有什么问题,还有啊,后面这个SHELLEXECUTE可以在本程序执行的时候强制关闭掉本身而运行那个程序吗?
————天.没高手了/
留下你的邮箱,确认你已给分后,再发给你!!
…我一定给你分啊…lyxrkj@163.com发给我好了.
好吧.
给你了
分给你啦/赶紧的发来
01 2nd, 2010
建了一个表“XX”有A、B、C、D字段,A字段是一个独一无二的编号
另一个表“YY”有A、B、C、D、E、F、G、H字段
新建一个窗体,这个窗体录入结果保存到“YY”表中,窗体中的控件有A、B、C、D、E、F、G、H
实现窗体中:输入A字段中的独一无二的编号后,窗体中B、C、D控件就自动跳出XX表中字段的内容,然后依次输入E、F、G、H的内容,保存结果进入“YY”表中。
请教高手指点…
在哪里输入啊???自己顶
表XX和表YY的A/B/C/D字段的内容和值完全一样么?
如果表XX和表YY的A/B/C/D字段的内容和值完全一样,那么你现在这样设计表结构是冗余太多,容易带来问题。
应该
(1)把表YY中的B, C, D字段都删掉,把表XX的A字段和表YY的A字段关联。
(2)新建ACCESS窗体时,数据源直接从表XX和表YY的JOIN查询得到,这样你的要求就可以自动满足。
A控件change事件不断刷新;或者A控件失去焦点时查XX表,分别给BCD赋值。
<
你可以把你的报表的记录源也改成来自XX和YY的联合查询。
在B、C、D控件中输入“DLookUp”函数如下:
=DLookUp("[被引用的字段名称,即B]","[被引用的表名称,即XX]","[被引用的表中的条件字段,即A]='" & Forms![所属窗体名称]![保存结果的表中的条件字段,即YY表中的A字段名称] & "'")
12 30th, 2009
Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "database.mdb;Persist Security Info=False"
Adodc1.LockType = adLockOptimistic
Adodc1.RecordSource = "select * from server "
Adodc1.Refresh
Set DataGrid1.DataSource = Adodc1
程序是列出SERVER 表单的所有内容…但是备注型的比较长..看不到..能做到自动适应不
参考
也就是判断数据源字段的长度,再定义datagrid单元格的宽度。
12 20th, 2009
各位大哥,我做了个小工具,想用vb实现自动更新,但是我听说urldownloadtofile容易被杀毒软件误杀,那么,我只能用其他控件来实现这个功能了么?请有经验的大哥帮下忙好么。
更新什么?
和urldownloadtofile有关系?
我想用urldownloadtofile来下载,然后自动对比文件并更新。
可以有很多种方法下载啊~~
<
<
是这样的,我的自动更新是从我的站点下载我写的那个新的程序,以前的要被更新。
<
额。。。不好意思啊,我才学没多久,对win32api不熟,嘿嘿
http://blog.csdn.net/CHRL/archive/2009/12/19/5036640.aspx
<
局域网内的自动更新有做过,Internet的没有。
12 8th, 2009
最近喜欢用电脑看小说了!不过用鼠标点来点去麻烦,网上基本上又没什么好的自动阅读器。正好最近学了VB,我就想能不能用VB编写一个自动阅读器:
①可以把txt文本直接导入阅读器的文本框内(用其它方法也行);
②用户可以设置它每行显示的字数和滚动的速度,然后让它自动由下至上滚动阅读!!
如果,用户可以设置字体、字体颜色、字体大小和背景颜色,那就更好了!
高手恳请指点,指点!!
还有就是,它还有书签功能!
lz说的功能ReadBook都有,下个就行了。
要自己做建议用richtext控件
<
06 3rd, 2009
现在主要问题是:发的帖子都是只有标题的帖子,正文部分没有信息;
把信息填充到正文文本框的部分一直没弄成功。。。
请大家帮忙看下,谢谢。。。
发帖页面部分源代码——————————————-
<em>标题 </em> <input type="text" size="50" maxlength="127" name="doc_title" class="txt" /> <cite id="do_title_word"> </cite>
<select name="doc_topic" onChange="DoAction('PutTopic');">
<option value="">- 斑竹未设置分类 - </option>
<textarea name="doc_text" style="width:100%;height:273px"> </textarea>
——————————————-
'''''''''''登陆部分代码(自动登录部分已实现)
'''''''''''''''登陆部分代码
Private Sub Command1_Click()
Dim vDoc, vTag, nTag
Dim I As Integer
On Error GoTo Line
Set vDoc = WebBrowser1.Document
For I = 0 To vDoc.All.length - 1
If UCase(vDoc.All(I).tagName) = "INPUT" Then
Set vTag = vDoc.All(I)
If vTag.Type = "text" Then
If vTag.Name <> "validate" Then vTag.Value = "t_0001" '这个是用户名
ElseIf vTag.Type = "password" Then
vTag.Value = "t_0001" '这个是密码
ElseIf vTag.Type = "submit" Then '这个是提交按钮
vTag.Click
Exit Sub
End If
End If
Next I
For I = 0 To vDoc.All.length - 1
If UCase(vDoc.All(I).tagName) = "BUTTON" Then
Set nTag = vDoc.All(I)
If nTag.Type = "submit" Then
nTag.Click
End If
End If
Next I
Sleep 3000 'ms
WebBrowser1.Navigate "http://www.xici.net/b16462/board.asp"
Line:
End Sub
——————————————-
''''''''''''''''发帖部分代码
''''''''''''''''发帖并自动提交Private Sub Command6_Click()
Dim vDoc, vTag
Dim I As Integer
On Error GoTo Line
Set vDoc = WebBrowser1.Document
For I = 0 To vDoc.All.length - 1
If UCase(vDoc.All(I).tagName) = "INPUT" Then
Set vTag = vDoc.All(I)
If vTag.Type = "textarea" Then
If vTag.Name = "doc_text" Then
vTag.Value = Text11 '要发表的帖子正文,没有实现把信息填充到正文的多行文本框内。。。
Else
End If
End If
If vTag.Type = "text" Then
If vTag.Name = "doc_title" Then vTag.Value = Text5.Text '要发表的帖子标题
ElseIf vTag.Type = "submit" Then '这个是提交按钮
vTag.Click
'''''''Exit Sub
End If
End If
Next I
'''''''For I = 0 To vDoc.All.length - 1
''''''''If UCase(vDoc.All(I).tagName) = "BUTTON" Then
''''''''Set nTag = vDoc.All(I)
''''''''If nTag.Type = "submit" Then
''''''''nTag.Click
''''''''End If
''''''''End If
''''''''Next I
WebBrowser1.Navigate "http://www.xici.net/b495265/board.asp"
Line:
End Sub
——————————————-
JC叔叔在盯着偶们哩
弄好之后共享下。。。
关注一下
可能要用到抓包工具了吧,
抓包工具还不知道怎么用呢。。。
ding…
ding…
05 28th, 2009
某网页上的文本输入框,源码如下:
文本框源码:
<INPUT class="" id=NSRLSH onkeydown=eapObjsMgr.getEAPObj(this).enterToTab()style="BORDER-TOP-WIDTH:1px;BORDER-LEFT-WIDTH:1px;BORDER-BOTTOM-WIDTH:1px;WIDTH:259px;BORDER-RIGHT-WIDTH:1px"maxlength=20 name=string(NSRLSH) JSObjName="Taxpayer" prompt="纳税人流水号" onAffirm="btnClick('changePage')' model="SWJG" isnullable="flase" isUniEAP="true">
问题:怎么自动填写数据并模拟一下回车
原来这个问题在这儿发过,有人这样回复,不过这东西不是VB的,有点儿象DELPHI或PB
//输入数据
NSRLSH.text="abc";
//模拟回车
NSRLSH.focus();
var wsh = WScript.CreateObject("WScript.Shell");
wsh.SendKeys("{ENTER}");
wsh=null;
VB应
内部网络的页面啊,互联网看不到的
这么写中不?
Dim vDoc, vTag, i
Set vDoc = WebBrowser1.Document
For i = 0 To vDoc.All.length - 1
If UCase(vDoc.All(i).tagName) = "INPUT" Then
Set vTag = vDoc.All(i)
if vtag.name="string(NSRLSH)" Then
vTag.value="123321"
SendKeys "{ENter}"
vTag.Click
end if
我写的不行啊,点了没反映
参看下面贴子,将相关的需要修改的点击语句改为赋值语句,getElementById 根据需要改为getElementsByName
我想得太简单了,我只想点击后worksheets.sheet(1).clees(i,2).copy 然后past,写时我才发觉悟,还要先找到句柄才能粘贴,真的不如将getElementsByName替换下getElementById
学习
xue xi
看看怎么样
感觉非常幸运哦,我提的总是也能被推荐!!
哈哈哈,大笑中
不要把嘴巴都笑歪了啊
/**
* 解析JSON的数据格式,并把数据绑定到显示控件
* strJson 基本格式为控件NAME:值
* @param formName json格式的对象,注意显示控件的NAME要与JSON的键名要保持一致
*/
Tools.prototype.bindFormData = function(formName, jsonObj) {
try {
var form = document.forms[formName];
for (var key in jsonObj) {
var obj = document.forms[formName].document.getElementById(key);
if (obj) {
if (obj.tagName.toLowerCase() == "select") { //是否是 下拉框
obj.value = jsonObj[key];
} else if (obj.tagName.toLowerCase() == "textarea") { //清空 textarea 的 value
obj.value = jsonObj[key];
} else if (obj.tagName.toLowerCase() == "input") { //如果是input标签
if (obj.type.toLowerCase() == "checkbox" || obj.type.toLowerCase() == "radio") { //把单选,复选置于非选中状态
var bCheck = jsonObj[key];
if ((bCheck == 1)) {
obj.checked = true;
} else {
obj.checked = false;
}
bCheck = null;
} else if ((obj.type.toLowerCase() != "button") && (obj.type.toLowerCase() != "reset")) {//清空非按钮和非重置 的所有值
obj.value = jsonObj[key];
}
}
}
}
} catch(e) {
alert("客户端绑定错误:
" + "URL:
" + this._curPage + "
message:
" + e.message);
}
};
不知道能帮你不
mark
帮你顶人气!
不知道你在做什么呢!自动填写数据不就是赋值吗?回车不就是 submit() 一下吗?
学习
/**
* 解析JSON的数据格式,并把数据绑定到显示控件
* strJson 基本格式为控件NAME:值
* @param formName json格式的对象,注意显示控件的NAME要与JSON的键名要保持一致
*/
Tools.prototype.bindFormData = function(formName, jsonObj) {
try {
var form = document.forms[formName];
for (var key in jsonObj) {
var obj = document.forms[formName].document.getElementById(key);
if (obj) {
if (obj.tagName.toLowerCase() == "select ") { //是否是 下拉框
obj.value = jsonObj[key];
} else if (obj.tagName.toLowerCase() == "textarea ") { //清空 textarea 的 value
obj.value = jsonObj[key];
} else if (obj.tagName.toLowerCase() == "input ") { //如果是input标签
if (obj.type.toLowerCase() == "checkbox " || obj.type.toLowerCase() == "radio ") { //把单选,复选置于非选中状态
var bCheck = jsonObj[key];
if ((bCheck == 1)) {
obj.checked = true;
} else {
obj.checked = false;
}
bCheck = null;
} else if ((obj.type.toLowerCase() != "button ") && (obj.type.toLowerCase() != "reset ")) {//清空非按钮和非重置 的所有值
obj.value = jsonObj[key];
}
}
}
}
} catch(e) {
alert( "客户端绑定错误:
" + "URL:
" + this._curPage + "
message:
" + e.message);
}
};
确实好像有这问题的,谢谢分享
你这个问题只要的就是要实现模拟submit()
IE下的模拟方法:
var evt = document.createEventObject();
evt.keyCode = 13;
document.getElementById('NSRLSH').fireEvent(evt);
不错
mark!
弄不大明白
good
学习了.
05 27th, 2009
某网页上的文本输入框,源码如下:
文本框源码:
<INPUT class="" id=NSRLSH onkeydown=eapObjsMgr.getEAPObj(this).enterToTab()style="BORDER-TOP-WIDTH:1px;BORDER-LEFT-WIDTH:1px;BORDER-BOTTOM-WIDTH:1px;WIDTH:259px;BORDER-RIGHT-WIDTH:1px"maxlength=20 name=string(NSRLSH) JSObjName="Taxpayer" prompt="纳税人流水号" onAffirm="btnClick('changePage')' model="SWJG" isnullable="flase" isUniEAP="true">
问题:怎么自动填写数据并模拟一下回车
原来这个问题在这儿发过,有人这样回复,不过这东西不是VB的,有点儿象DELPHI或PB
//输入数据
NSRLSH.text="abc";
//模拟回车
NSRLSH.focus();
var wsh = WScript.CreateObject("WScript.Shell");
wsh.SendKeys("{ENTER}");
wsh=null;
VB应
内部网络的页面啊,互联网看不到的
这么写中不?
Dim vDoc, vTag, i
Set vDoc = WebBrowser1.Document
For i = 0 To vDoc.All.length - 1
If UCase(vDoc.All(i).tagName) = "INPUT" Then
Set vTag = vDoc.All(i)
if vtag.name="string(NSRLSH)" Then
vTag.value="123321"
SendKeys "{ENter}"
vTag.Click
end if
我写的不行啊,点了没反映
参看下面贴子,将相关的需要修改的点击语句改为赋值语句,getElementById 根据需要改为getElementsByName
我想得太简单了,我只想点击后worksheets.sheet(1).clees(i,2).copy 然后past,写时我才发觉悟,还要先找到句柄才能粘贴,真的不如将getElementsByName替换下getElementById
学习
xue xi
看看怎么样
感觉非常幸运哦,我提的总是也能被推荐!!
哈哈哈,大笑中
不要把嘴巴都笑歪了啊
/**
* 解析JSON的数据格式,并把数据绑定到显示控件
* strJson 基本格式为控件NAME:值
* @param formName json格式的对象,注意显示控件的NAME要与JSON的键名要保持一致
*/
Tools.prototype.bindFormData = function(formName, jsonObj) {
try {
var form = document.forms[formName];
for (var key in jsonObj) {
var obj = document.forms[formName].document.getElementById(key);
if (obj) {
if (obj.tagName.toLowerCase() == "select") { //是否是 下拉框
obj.value = jsonObj[key];
} else if (obj.tagName.toLowerCase() == "textarea") { //清空 textarea 的 value
obj.value = jsonObj[key];
} else if (obj.tagName.toLowerCase() == "input") { //如果是input标签
if (obj.type.toLowerCase() == "checkbox" || obj.type.toLowerCase() == "radio") { //把单选,复选置于非选中状态
var bCheck = jsonObj[key];
if ((bCheck == 1)) {
obj.checked = true;
} else {
obj.checked = false;
}
bCheck = null;
} else if ((obj.type.toLowerCase() != "button") && (obj.type.toLowerCase() != "reset")) {//清空非按钮和非重置 的所有值
obj.value = jsonObj[key];
}
}
}
}
} catch(e) {
alert("客户端绑定错误:
" + "URL:
" + this._curPage + "
message:
" + e.message);
}
};
不知道能帮你不
mark
帮你顶人气!
不知道你在做什么呢!自动填写数据不就是赋值吗?回车不就是 submit() 一下吗?
学习
/**
* 解析JSON的数据格式,并把数据绑定到显示控件
* strJson 基本格式为控件NAME:值
* @param formName json格式的对象,注意显示控件的NAME要与JSON的键名要保持一致
*/
Tools.prototype.bindFormData = function(formName, jsonObj) {
try {
var form = document.forms[formName];
for (var key in jsonObj) {
var obj = document.forms[formName].document.getElementById(key);
if (obj) {
if (obj.tagName.toLowerCase() == "select ") { //是否是 下拉框
obj.value = jsonObj[key];
} else if (obj.tagName.toLowerCase() == "textarea ") { //清空 textarea 的 value
obj.value = jsonObj[key];
} else if (obj.tagName.toLowerCase() == "input ") { //如果是input标签
if (obj.type.toLowerCase() == "checkbox " || obj.type.toLowerCase() == "radio ") { //把单选,复选置于非选中状态
var bCheck = jsonObj[key];
if ((bCheck == 1)) {
obj.checked = true;
} else {
obj.checked = false;
}
bCheck = null;
} else if ((obj.type.toLowerCase() != "button ") && (obj.type.toLowerCase() != "reset ")) {//清空非按钮和非重置 的所有值
obj.value = jsonObj[key];
}
}
}
}
} catch(e) {
alert( "客户端绑定错误:
" + "URL:
" + this._curPage + "
message:
" + e.message);
}
};
确实好像有这问题的,谢谢分享
05 26th, 2009
某网页上的文本输入框,源码如下:
文本框源码:
<INPUT class="" id=NSRLSH onkeydown=eapObjsMgr.getEAPObj(this).enterToTab()style="BORDER-TOP-WIDTH:1px;BORDER-LEFT-WIDTH:1px;BORDER-BOTTOM-WIDTH:1px;WIDTH:259px;BORDER-RIGHT-WIDTH:1px"maxlength=20 name=string(NSRLSH) JSObjName="Taxpayer" prompt="纳税人流水号" onAffirm="btnClick('changePage')' model="SWJG" isnullable="flase" isUniEAP="true">
问题:怎么自动填写数据并模拟一下回车
原来这个问题在这儿发过,有人这样回复,不过这东西不是VB的,有点儿象DELPHI或PB
//输入数据
NSRLSH.text="abc";
//模拟回车
NSRLSH.focus();
var wsh = WScript.CreateObject("WScript.Shell");
wsh.SendKeys("{ENTER}");
wsh=null;
VB应
内部网络的页面啊,互联网看不到的
这么写中不?
Dim vDoc, vTag, i
Set vDoc = WebBrowser1.Document
For i = 0 To vDoc.All.length - 1
If UCase(vDoc.All(i).tagName) = "INPUT" Then
Set vTag = vDoc.All(i)
if vtag.name="string(NSRLSH)" Then
vTag.value="123321"
SendKeys "{ENter}"
vTag.Click
end if
我写的不行啊,点了没反映
参看下面贴子,将相关的需要修改的点击语句改为赋值语句,getElementById 根据需要改为getElementsByName
我想得太简单了,我只想点击后worksheets.sheet(1).clees(i,2).copy 然后past,写时我才发觉悟,还要先找到句柄才能粘贴,真的不如将getElementsByName替换下getElementById
学习
xue xi
看看怎么样
感觉非常幸运哦,我提的总是也能被推荐!!
哈哈哈,大笑中
不要把嘴巴都笑歪了啊
/**
* 解析JSON的数据格式,并把数据绑定到显示控件
* strJson 基本格式为控件NAME:值
* @param formName json格式的对象,注意显示控件的NAME要与JSON的键名要保持一致
*/
Tools.prototype.bindFormData = function(formName, jsonObj) {
try {
var form = document.forms[formName];
for (var key in jsonObj) {
var obj = document.forms[formName].document.getElementById(key);
if (obj) {
if (obj.tagName.toLowerCase() == "select") { //是否是 下拉框
obj.value = jsonObj[key];
} else if (obj.tagName.toLowerCase() == "textarea") { //清空 textarea 的 value
obj.value = jsonObj[key];
} else if (obj.tagName.toLowerCase() == "input") { //如果是input标签
if (obj.type.toLowerCase() == "checkbox" || obj.type.toLowerCase() == "radio") { //把单选,复选置于非选中状态
var bCheck = jsonObj[key];
if ((bCheck == 1)) {
obj.checked = true;
} else {
obj.checked = false;
}
bCheck = null;
} else if ((obj.type.toLowerCase() != "button") && (obj.type.toLowerCase() != "reset")) {//清空非按钮和非重置 的所有值
obj.value = jsonObj[key];
}
}
}
}
} catch(e) {
alert("客户端绑定错误:
" + "URL:
" + this._curPage + "
message:
" + e.message);
}
};
不知道能帮你不
05 17th, 2009
南宁新时空网 http://www.nn-sky.com/
用户名:一天一个梦 密码:000000
你登陆进去,,就有一个3级联动,,,城市 城区 片区
有哪位高手,,请帮帮忙,,谢谢 了,,,
菜鸟只有20分,,5555555.。。。。
孩子又在这里了啊
3级联动,无非就是要等待联动的脚本(或从服务器上获取)运行完成后,再进行选择
如果你能搜索到我以前回答过的,应该可以考虑一下
我晕,登录有图片验证,俺干不了!!
我想问下什么是三级联动?
就是说,,必须要选择 “城市” 之后,,才能选择 “城区” ,,,选择 区域 之后才能选择 “片区”
我只有20分,,,55555,,,有人不嫌分数低而帮助我吗????
继续等待高手的出现,,,