返回列表 发布新帖
楼主: 张硕御月

电脑基础知识大全

 楼主| 发表于 2011-10-31 14:53:24 | 查看全部
53,Q:在 ASP 编程中统计查询结果的记录数:
A:
<%
  Set theConn=Sever.CreateObject("ADODB.Connection")
  Set theRs=Sever.CreateObject("ADODB.RecordSet")
  theConn.Open "FILEDSN=d:\\Program Files\\Common Files\\ODBC\\Data
Sources\\MyData.dsn"
  theRs.Open "SELECT COUNT(*) as Mycount FROM theTable",theConn
%>
共有<% =theRs("MyCount")%>条记录
<%
  theRs.Close
  theConn.Close
%>
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-10-31 14:53:33 | 查看全部
54,Q:为何无法编译成 dll 文件?
A:无论是用 VB 还是 VJ++,在编译 Active dll 文件时都会发现无法重新编译成 dll 文件的问题。原因是第一次编译后 dll
文件已经被自动注册了。这时关闭 Web server 后即可再次编译,待编译完毕后再打开 Web server。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-10-31 14:53:40 | 查看全部
55,Q:资源文件有什么用处?
A:最重要的有两个地方:
1、国际发行:如果我们将 Application 中所有的文字从 Resource 中读取,那么,只要更动 Resource
文件的内容,就可以用不同语言的方式来显示;
2、管理资源:例如,我们的软件中用了数百张的图片或声音,不用 Resource
文档的话,在发行出去的软件中,就必需有数百个图形、声音文档,那似乎不太好,使用 Resource 文件,便可以将这些图形、声音放进一个 .Res 文档中。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-10-31 14:53:49 | 查看全部
56,Q:如何在 DOS 程序结束执行时,自动将其关闭?
A:在 VB 程序中启动 DOS 程序(或指令)的方法是:
  Shell "DOS可执行文件名", vbNormalFocus
例如:Shell "Xcopy c:\\temp\\*.* d:\\temp\\*.*", vbNormalFocus
但是当以上的 Xcopy 程序结束执行时, 却会残留着 DOS 窗口没有被关闭,如果想要让 DOS 程序结束执行时, DOS 窗口自动被关闭,
则应该使用以下方法来启动 DOS 程序:
Shell "Command.com /C DOS可执行文件名", vbNormalFocus
例如:Shell "Command.com /C Xcopy c:\\temp\\*.* d:\\temp\\*.*", vbNormalFocus
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-10-31 14:53:57 | 查看全部
57,Q:VB 编程中打开默认网址和 Email 的更简单的方法:
A:打开网址:Call Shell("start http://www.alchemydev.com", vbHide)
  打开 Email:Call Shell("start mailto:admin@alchemydev.com", vbHide)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-10-31 14:54:06 | 查看全部
58,Q:我用 VB6.0 的 ActiveX dll 工程开发了一个在 ASP 中调用的 dll 类型库,里面有好多封装的函数,我能不能在 VB 的
EXE 工程中利用它们?
A:当然可以! 这正是微软 COM 模型的具体应用之一。具体用法是:在 VB 的 EXE 工程的 IDE
界面中,引用你建立的类库文件,然后在“对象浏览器”里就可以看到你的所有类及其函数。比方你的类 myobj 中有函数 myfun(),则调用语句是:
  dim theobj as new myobj
  ret = theobj.myfun() 'ret 为函数返回值
当然如果你要在别的机器上使用你的组件,就必须先进行注册:regsvr32 <你的组件名>
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-10-31 14:54:15 | 查看全部
59,Q:“我爱你”病毒传播的秘密:
A:千禧年五月分大面积流行的 "ILOVEYOU" 病毒至今让人记忆尤新。这种病毒是一种通过电子邮件流行的典型的蠕虫病毒。她是通过调用 Outlook
的应用程序对象的属性和方法进行信件发送的,其发送邮件的基本代码如下:
  Set OlApp = CreateObject("outlook.application")
  Set Oitem = OlApp.CreateItem(olMailItem)
  With Oitem
  .Subject = "邮件主题"
  .To = "收件人"
  .Body = "邮件正文"
  .attachments.Add "path:附件"  ' 添加附件
  .Send ' 发送邮件
  End With
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-10-31 14:54:29 | 查看全部
60,Q:在 PowerBuilder 中使用 RichTextEdit 控件,属性中没用
Font,我想设置字体怎么办(如果不设字体,读入一个文本文件,缺省的字体对不齐)?
A:RichTextEdit 没有 Font 属性,在 Document 属性页中选择 Toolbar,使用的时候可以自行选择字体。
61,Q:在一个 PowerBuilder 程序中,我想用 RichTextEdit 控件从本地取文本文件显示,可是在我的机器上 RTE
只能显示出少量英文和乱码,程序并没有编错,因为相同的程序在其他人的机器上显示出的是正确的文本,不知是什么原因?
A:应该是默认的类型不正确,导入的时候指定类型为 FileTypeText 试试。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-10-31 14:54:43 | 查看全部
62,Q:如何在 PowerBuilder 的 BLOB 字段中写入大于 1M 的文件(数据库为MSSQL 7.0)?
A:源文件分块写。
63,Q:用程序控制电脑说英语?
A:现在,应用 Microsoft 提供的一套文字朗读引擎(Text-To-Speech Engine,简称
TTS),可以在程序中编写代码来使安装了声卡的电脑流畅的朗读英文。如果安装了“金山词霸2000”,那么 Windows 文件夹下会有一个 Speech
文件夹,里面的文件 vtxtauto.tlb 文件就包含了有关的类型库和函数,我们完全可以在我们的程序中调用它们,使电脑开口说话。TTS
包含在“金山词霸2000”的安装盘上,文件名为 mstts.exe 和 spchapi.exe。要在 VB 程序中调用 TTS,必须首先引用
vtxtauto.tlb 文件中的“VoiceText 1.0 Type Library”类型库,然后参考以下代码,电脑就可以说话了:
  Option Explicit
  Private Sub Form_Load()
  Call VTxtAuto.VTxtAuto.Register(Space(1), Space(1))
  VTxtAuto.VTxtAuto.Speed = 170 '设置语速(170 为正常语速,值越小语速越慢)
  Dim strTxt
  strTxt = "I love you very much.Do you love me? "
  On Error GoTo ErrorHandler
  Call VTxtAuto.VTxtAuto.Speak(strTxt, vtxtsp_VERYHIGH + vtxtst_READING)
  MsgBox "OK!"
  End
  ErrorHandler:
  ' 错误处理语句
  End
  End Sub
至于语速、频率等的控制,大家可以在“对象浏览器”里参看相关的控制属性。
(站长话题:什么时候能够让电脑说一口流利的中国普通话甚至是方言呢?
      但愿不会让我们等待太久!
      但愿生产厂家能够像微软一样把技术公布给普通用户!)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-10-31 14:54:57 | 查看全部
64,Q:怎样判断、防止程序重复执行?
A:
Private Sub Form_load()
'判断程序是否已经运行
If App.PrevInstance Then
MsgBox "本程序已经运行!", vbInformation Or vbOKOnly, "提示信息"
Unload Me
Exit Sub
End If
'以下是主要程序
' ……
End Sub

附:另一个例子:
Option Explicit
Public Sub CheckExist(fm As Form) '防止程序重复执行
  Dim title As String
  If App.PrevInstance Then
  title = App.title
  Call MsgBox("这程序已执行", vbCritical)
  App.title = "" '如此才不会 Avtivate 到自己
  fm.Caption = ""
  AppActivate title 'activate 先前就已运行的程序
  End ' 结束
  End If
End Sub
Private Sub Form_Load()
Call CheckExist(Me)
End Sub
65,Q:如何结束 Shell 所启动的程序?
A:如果被 Shell 所启动的程序还没有结束,我们就想主动结束它,该怎么做呢? 此时应调用的 Windows API 是
TerminateProcess, 细节如下:
1. API 的声明:
Const SYNCHRONIZE = &H100000
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess
As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long)
As Long
Private Declare Function TerminateProcess Lib "kernel32" Alias
"TerminateProcess" (ByVal hProcess As Long, ByVal uExitCode As Long) As Long
(注1:如果以上的声明放在「一般模块」底下,应将 Declare 之前的 Private 保留字去掉,并且在 Const 之前加上 Public
保留字。)
2. Shell 的程序范例:(以执行 MS-DOS 为例)
Dim pId As Long, pHnd As Long ' 分别声明 Process Id 及 Process Handle 变数
pId = Shell("Command.com", vbNormalFocus) ' Shell 传回 Process Id
pHnd = OpenProcess(SYNCHRONIZE, 0, pId) ' 取得 Process Handle
Call TerminateProcess( pHnd, 0 ) ' TerminateProcess 所传入的是 Process Handle
Call CloseHandle( pHnd )
(注2:以上的方案只适用于 Shell 所启动的程序,ShellExecute 则不适用,原因是 ShellExecute
函数是通过资源管理器来启动程序,而资源管理器启动程序之后,并没有将 Process ID 或 Process Handle 传回来。
注3:以上程序在 Windos98、VB6.0 下调试通过。)
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关注公众号
QQ会员群

Copyright © 2021-2025 中企互动平台 版权所有 All Rights Reserved.

相关侵权、举报、投诉及建议等,请发 E-mail:bztdxxl@vip.sina.com

Powered by Discuz! X3.5|京ICP备10020731号-1|京公网安备 11010102001080号

关灯 在本版发帖
扫一扫添加管理员微信
返回顶部
快速回复 返回顶部 返回列表