您现在的位置是: 软件 > 开发者网络 > 程序方舟 > 开发专栏 > VB开发 > 正文
·速成电脑精英(包分配)白领高薪一族从这里开始



-软件频道新春贺词
-选贺卡,赢大奖!
-与“蠕虫王”战斗到底
-三款资源访问辅助工具使用

Visual Basic编程疑难问题解(二)
2003-02-07· ·  ··yesky

上一页  1 2 3 4 5 6  

  问题七:如何识别操作系统版本?

  办法如下:


'引用控件 Microsoft SysInfo Control 6.0
Dim OS As String

With SysInfo1
 Select Case .OSPlatform
  Case 0: OS = "Win32"
  Case 1:
   Select Case .OSVersion
  Case 4: OS = "Win 95"
  Case 4.1: OS = "Win 98"
  Case 4.9: OS = "Wim Me"
 End Select
  Case 2:
   Select Case .OSVersion
    Case 4: OS = "Win NT"
    Case 5: OS = "Win 2000"
    Case 6: OS = "Win XP"
   End Select
 End Select

 MsgBox "Build:" & .OSBuild & vbNewLine & _
  "Platform:" & OS & "(" & .OSPlatform & ")" & vbNewLine & _
  "Version:" & .OSVersion
End With

  问题八:如何实现遍历文件夹中的所有文件

  办法如下:
 
  把下面放到模块中


Option Explicit

Public Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA" _
(ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long
Public Declare Function FindNextFile Lib "kernel32" Alias "FindNextFileA" _
(ByVal hFindFile As Long, lpFindFileData As WIN32_FIND_DATA) As Long
Public Declare Function FindClose Lib "kernel32" (ByVal hFindFile As Long) As Long

Public Const MAX_PATH = 260
Public Const FILE_ATTRIBUTE_ARCHIVE = &H20
Public Const FILE_ATTRIBUTE_COMPRESSED = &H800
Public Const FILE_ATTRIBUTE_DIRECTORY = &H10
Public Const FILE_ATTRIBUTE_HIDDEN = &H2
Public Const FILE_ATTRIBUTE_NORMAL = &H80
Public Const FILE_ATTRIBUTE_READONLY = &H1
Public Const FILE_ATTRIBUTE_SYSTEM = &H4
Public Const FILE_ATTRIBUTE_TEMPORARY = &H100

'自定义数据类型FILETIME和WIN32_FIND_DATA的定义
Public Type FILETIME
 dwLowDateTime As Long
 dwHighDateTime As Long
End Type

Public Type WIN32_FIND_DATA
 dwFileAttributes As Long
 ftCreationTime As FILETIME
 ftLastAccessTime As FILETIME
 ftLastWriteTime As FILETIME
 nFileSizeHigh As Long
 nFileSizeLow As Long
 dwReserved0 As Long
 dwReserved1 As Long
 cFileName As String * MAX_PATH
 cAlternate As String * 14
End Type
----------------------
'--------------------------------------------------------------------------------
' 把当前文件夹路径下的所有文件入到listview中
'--------------------------------------------------------------------------------
Private Sub finfiles(tCurrentdir As String)
 Dim itmX As ListItem
 Dim tFindData As WIN32_FIND_DATA
 Dim strFileName As String
 Dim lHandle As Long
 Dim CountFolder As Integer
 Dim CountFiles As Integer
 CountFolder = 0
 CountFiles = 0
 ListView1.ListItems.Clear
 lHandle = FindFirstFile(tCurrentdir & "\*.*", tFindData)
 If lHandle = 0 Then
  Set itmX = ListView1.ListItems.Add(, , strFileName & "找不到文件")
  Exit Sub
 End If
 strFileName = fDelInvaildChr(tFindData.cFileName)
 Do While True
  tFindData.cFileName = ""
  If FindNextFile(lHandle, tFindData) = 0 Then
   FindClose (lHandle)
   Exit Do
  Else
   strFileName = fDelInvaildChr(tFindData.cFileName)
   If tFindData.dwFileAttributes = &H10 Then
    If strFileName <> "." And strFileName <> "." Then
     Set itmX = ListView1.ListItems.Add(, , strFileName)
     itmX.SmallIcon = 1
     CountFolder = CountFolder + 1
    End If
   Else
    Debug.Print InStr(LCase(Right(strFileName, 3)), ExtendFileName)
    If InStr(ExtendFileName, LCase(Right(strFileName, 3))) > 0 Then
     Set itmX = ListView1.ListItems.Add(, , strFileName)
     itmX.SubItems(1) = CStr(FileLen(tCurrentdir & "\" & strFileName))
     itmX.SmallIcon = 2
     itmX.SubItems(2) = FileDateTime(tCurrentdir & "\" & strFileName)
     CountFiles = CountFiles + 1
    End If
   End If
  End If
 Loop
 ListView1.Sorted = True
 ListView1.SortKey = 1
 StatusBar1.Panels(2).Text = CurrentDir
 StatusBar1.Panels(3).Text = "文件夹:" & CountFolder & " 文件:" & CountFiles
End Sub

    问题九:如何让你的程序在任务列表隐藏

  办法如下:

Private Declare Function RegisterServiceProcess Lib "kernel32"
(ByVal ProcessID As Long, ByVal ServiceFlags As Long) As Long
Private Declare Function GetCurrentProcessId Lib "kernel32" () As Long

 '请你试试 Ctrl+Alt+Del 是不是你的程序隐藏了
Private Sub Command1_Click()
 i = RegisterServiceProcess(GetCurrentProcessId, 1)
End Sub

  问题十:如何计算出本月的最后一天

  办法如下:

首先为下个月的第一天生成一个顺序数值,然后再减去一天

Private Sub Command1_Click()
 Dim dtl As Date
 dtl = DateSerial(Year(Now), Month(Now) + 1, 1) - 1
 MsgBox dtl
End Sub
-------------------------------------------------------------------------------------------
错误的作法 ==> x = Shell("c:\windows\Sheep.scr") '这种作法只能开启屏幕保护程序的设定画面而已!

正确的作法 ==> Shell ("start c:\windows\sheep.scr") '这种作法才能正确启动屏幕保护程序

------------------------------------------------------------------------------------
Sub mnuEditText_Click (Index As Integer)
 ' 我们只要使用 SendKeys,其他的就让 Windows 去做吧!
 Select Case Index
  Case 0 '复原/UNDO
   SendKeys "^Z" 'Keys Ctrl+Z
  Case 1 '剪下/CUT
   SendKeys "^X" 'Keys Ctrl+X
  Case 2 '复制/COPY
   SendKeys "^C" 'Keys Ctrl+C
  Case 3 '贴上/PASTE
   SendKeys "^V" 'Keys Ctrl+V
 End Select
End Sub

-------------------------------------------------------------------------------------
Private Declare Function MessageBox Lib "user32" Alias "MessageBoxA"
(ByVal hwnd As Long, ByVal lpText As String, ByVal lpCaption As String,
ByVal wType As Long) As Long

'加入以下程序码:

Private Sub Command1_Click()
 MsgBox "计时器停掉了!", 64, "VB 的讯息框"
End Sub

Private Sub Command2_Click()
 Timer1.Enabled = 1
 MessageBox Me.hwnd, "注意!计时器还在跑!", "API 的讯息框", 64

End Sub

Private Sub Form_Load()
 Timer1.Interval = 2000
 Label1.Caption = "目前的时间是:" & Time
End Sub

Private Sub Timer1_Timer()
 SendKeys Chr(13)
 Timer1.Enabled = 0
End Sub


上一页  1 2 3 4 5 6  

【责任编辑:方舟】
【发表评论】【关闭窗口】
■ 相关内容
 实战Visual Basic条形码编程
 Visual Basic编程疑难问题解(一)
 Visual Basic .NET 中动态加载类
 Visual Basic6.0设计强力Windows隐藏引擎
 Visual Basic .NET实现后台处理(下 )
 Visual Basic .NET实现后台处理(上)
 Visual Basic .NET中操作MsAgent
 Visual Basic.NET快速开发MIS系统
 Visual Basic中实现I/O端口控制
 Visual Basic.NET和GDI+共创图标编辑器
 在Visual Basic .NET中使用存储过程
 一步一步创建Visual Basic .NET 控件
 在Visual Basic 6.0中操纵XML文件
感谢 访问天极网,如果您觉得该文章涉及版权问题,请看这里!