请教用VB编写一个自动按键小程序

请教用VB编写一个自动按键小程序,第1张

程序包含一个标签和一个间隔1秒的时间控件

Private xx(1 To 5) As String

Private i As Integer, f As Integer

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)

If KeyCode = 112 Then

f = MsgBox("你按了F1,继续吗?", vbYesNo + vbInformation, "提示")

If f = vbYes Then

Timer1Enabled = True

Else

Call Form_KeyDown(113, 0)

End If

ElseIf KeyCode = 113 Then

MsgBox "你按了F2键,结束应用程序!"

End

End If

End Sub

Private Sub Form_Load()

xx(1) = "aaaaaaaaaa"

xx(2) = "bbbbbbbbbb"

xx(3) = "cccccccccc"

xx(4) = "dddddddddd"

xx(5) = "请按F1、F2"

i = 1

End Sub

Private Sub Timer1_Timer()

Label1Caption = xx(i)

If xx(i) = "请按F1、F2" Then

Timer1Enabled = False

Call Form_KeyDown(112, 0)

End If

i = i + 1

If i > 5 Then i = 1

End Sub

你也可以手动按F1、F2 效果一样!

这个只要做一个窗体中包含三个文本框,用于输入出身的年月日,然后计算当前年龄,就要判断,如果现在的月份大约出生的月份,或现在的月份等于出生月份并且现在的日大于出生日,年龄就等于今年的年份减去出生年份,否则就等于这个值再减去一。

用VB写一些小程序比较有意思,想一些控件,简单的MP3等。

vb是Visual Basic的简称,是由美国微软公司于1991年开发的一种可视化的、面向对象和采用事件驱动方式的结构化高级程序设计语言,可用于开发 Windows 环境下的各类应用程序。它简单易学、效率高,且功能强大可以与 Windows 专业开发工具SDK相媲美。在Visual Basic环境下,利用事件驱动的编程机制、新颖易用的可视化设计工具,使用Windows内部的广泛应用程序接口(API)函数,动态链接库(DLL)、对象的链接与嵌入(OLE)、开放式数据连接(ODBC)等技术,可以高效、快速地开发Windows环境下功能强大、图形界面丰富的应用软件系统。

也就是说,用VB编程像画图。很有意思。

代码改为:Private Sub Form_Click()Dim a, b, c, d As StringDim sum, aver As Longa = Val(InputBox("请输入第一个数"))

b = InputBox("请输入第二个数")

c = InputBox("请输入第三个数")

d = InputBox("请输入第四个数")

sum = a + b + c + d

aver = sum / 4

Print "所输入的4个数字分别是"; a, b, c, d

Print "4个数字的和为"; sum

Print "4个数字的平均值为"; averEnd Sub VB60下调试通过。

用VB做万年历,非常关键点就是农历写法,参考代码如下:

#Region " 返回农历 "

'返回农历

'cCalendarMaxSupportedDateTime 返回支持的最大日期,即2101-1-28

'cCalendarMinSupportedDateTime 返回支持的最小日期,即190-2-19

Private cCalendar As New SystemGlobalizationChineseLunisolarCalendar

Public Function PubFunGet_CNDate(ByVal sDateTime As Date) As String

cCalendar = New SystemGlobalizationChineseLunisolarCalendar

Dim lyear As Integer = cCalendarGetYear(sDateTime)

Dim lmonth As Integer = cCalendarGetMonth(sDateTime)

Dim lday As Integer = cCalendarGetDayOfMonth(sDateTime)

Dim lweek As Integer = cCalendarGetDayOfWeek(sDateTime)

'获取闰月, 0 则表示没有闰月

Dim leapMonth As Integer = cCalendarGetLeapMonth(lyear)

Dim isleap As Boolean = False

If (leapMonth > 0) Then

If (leapMonth = lmonth) Then

'闰月

isleap = True

lmonth = lmonth - 1

ElseIf (lmonth > leapMonth) Then

lmonth = lmonth - 1

End If

End If

Return StringConcat(GetLunisolarYear(lyear), IIf(isleap = True, "闰年", "年"), GetLunisolarMonth(lmonth), "月", GetLunisolarDay(lday))

End Function

'十天干

Private tiangan As String() = {"甲", "乙", "丙", "丁", "戊", "己", "庚", "辛", "壬", "癸"}

'十二地支

Private dizhi As String() = {"子", "丑", "寅", "卯", "辰", "巳", "午", "未", "申", "酉", "戌", "亥"}

'十二生肖

Private shengxiao As String() = {"鼠", "牛", "虎", "免", "龙", "蛇", "马", "羊", "猴", "鸡", "狗", "猪"}

'农历月

Private months As String() = {"正", "二", "三", "四", "五", "六", "七", "八", "九", "十", "十一", "十二(腊)"}

'农历日

Private days1 As String() = {"初", "十", "廿", "三"}

Private days As String() = {"一", "二", "三", "四", "五", "六", "七", "八", "九", "十"}

'返回农历年(天干 地支 生肖)

Private Function GetLunisolarYear(ByVal year As Integer) As String

GetLunisolarYear = ""

If (year > 3) Then

Dim tgIndex As Integer = (year - 4) Mod 10

Dim dzIndex As Integer = (year - 4) Mod 12

Return tiangan(tgIndex) & dizhi(dzIndex) & "[" & shengxiao(dzIndex) & "]"

End If

'无效的年份!

End Function

'返回生肖

Private Function GetShengXiao(ByVal sDateTime As Date) As String

Return shengxiao(cCalendarGetTerrestrialBranch(cCalendarGetSexagenaryYear(sDateTime)) - 1)

End Function

'返回农历月

Private Function GetLunisolarMonth(ByVal month As Integer) As String

GetLunisolarMonth = ""

If (month < 13 AndAlso month > 0) Then

Return months(month - 1)

End If

'无效的月份!

End Function

'返回农历日

Private Function GetLunisolarDay(ByVal day As Integer) As String

GetLunisolarDay = ""

If (day > 0 AndAlso day < 32) Then

If (day <> 20 AndAlso day <> 30) Then

Return StringConcat(days1((day - 1) \ 10), days((day - 1) Mod 10))

Else

Return StringConcat(days((day - 1) \ 10), days1(1))

End If

End If

'无效的日!

End Function

#End Region

是这样的吗,建一个模块,在里面加入以下代码:

Function grade(js As Integer, bs As Integer)

If js >= 85 And bs >= 85 Then

    grade = "优秀"

  ElseIf js < 60 And bs < 60 Then

    grade = "不合格"

  Else

    grade = "合格"

End If

End Function

其实不用Hook,也不用模块,检查系统闲置时间已有专用函数,不必这么复杂。

完整代码如下:

Option Explicit

Private Declare Function GetLastInputInfo Lib "user32" (plii As LASTINPUTINFO) As Boolean

Private Declare Function GetTickCount Lib "kernel32" () As Long

Private Type LASTINPUTINFO

cbSize As Long

dwTime As Long

End Type

Dim lii As LASTINPUTINFO

Private Sub Form_Load()

Timer1Interval = 1000

liicbSize = Len(lii)

End Sub

Private Sub Timer1_Timer()

If GetLastInputInfo(lii) Then

If (GetTickCount - liidwTime) / 60000 >= 15 Then

Shell "shutdownexe -s -t 180"

Call MsgBox("由于本机15分钟没有 *** 作,如果3分钟后没有反应,系统将强制关机", vbYesNo + vbExclamation + vbDefaultButton2, "提示")

End If

End If

End Sub

以上就是关于请教用VB编写一个自动按键小程序全部的内容,包括:请教用VB编写一个自动按键小程序、VB中怎样制作一个小程序。要求输入出生日期的时间,就能得到目前的年龄、出生、用vb写什么程序有意思谢谢。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9728626.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存