精华内容
下载资源
问答
  • VB终止、杀死进程的几个程序例子,附代码资料,一共7个包括强力杀死进程的例子代码,VB原版(可杀WINLOGON.EXE,不能杀冰刃),还有利用killBR杀死进程的,各有各的特色和方法,相信这些个源码够你参考学习了。
  • 自动终止进程运行的程序vb,希望对大家有用
  • Vb开发编写的关机助手源代码,具体来说可以定时关机、强制终止进程。可设定程序在几小时几分钟内自动关机,关机时强制终止进程,激活本功能后,关机程序将倒计时,在此期间您可终止运行本程序,运行效果图如上所示。
  • 双进程保护Vb程序

    2021-05-12 21:07:11
    内容索引:VB源码,系统相关,进程保护 Vb双进程保护示例源程序程序运行后,生成两个独立进程,结束一个进程 ,会重新启动一个新进程,你会发现进程管理器中始终有两个进程,总是结束不掉,以达到进程保护的功能。...
  • VB结束指定进程代码

    2013-08-02 09:22:42
    vb 中止 指定进程 '查找进程函数 Private Const MAX_PATH = 260 Private Type PROCESSENTRY32 dwSize As Long cntUsage As Long th32ProcessID As Long th32DefaultHeapID As Long th32ModuleID As Long ...
  • 内容索引:VB源码,系统相关,定时关机 VB关机程序,貌似比较酷,运行后在托盘处显示图标,双击显示主界面,托盘处的菜单感觉比主界面还要多,Windows安全关闭选项包括:快速关机、重新启动计算机、终止当前进程或程序...
  • 这是一个恶搞小程序,基于VB6.0编写,可将窗口180度翻转,把屏幕上的窗口颠倒显示了,字是反的,鼠标的指针也是反的,很恶搞,弄得不知如何操作电脑了,不过不要紧,若无法操作,按ALT F4强制关闭本窗口就行了。...
  • VB关闭其他运行的应用程序

    千次阅读 2018-08-31 08:52:56
    程序代码 Dim winHwnd As Long ‘定义一个长整形变量winHwnd Dim RetVal As Long ‘定义一个长整形变量RetVal winHwnd = FindWindow(vbNullString, “Calculator”) ‘API函数查找”Calculator”这个窗口 ...

    ‘下面的代码放到模块中
    Declare Function FindWindow Lib “user32” Alias “FindWindowA” (ByVal lpClassName As String, ByVal lpWindowName As String) As Long ‘FindWindowAPI函数
    Declare Function PostMessage Lib “user32” Alias “PostMessageA” (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long ‘PostMessageAPI函数
    Public Const WM_CLOSE = &H10 ‘常用变量定义

    ‘程序代码
    Dim winHwnd As Long ‘定义一个长整形变量winHwnd
    Dim RetVal As Long ‘定义一个长整形变量RetVal
    winHwnd = FindWindow(vbNullString, “Calculator”) ‘API函数查找”Calculator”这个窗口
    Debug.Print winHwnd ‘显示这个窗口句柄
    If winHwnd <> 0 Then ‘如不为0,表示找到窗口
    RetVal = PostMessage(winHwnd, WM_CLOSE, 0&, 0&) ‘向这个窗口发送关闭信息
    If RetVal = 0 Then ‘如果返回信息为0.表示失败,未发送成功
    MsgBox “Error posting message.” ‘提示发送失败
    End If
    Else
    MsgBox “The Calculator is not open.” ‘提示没有找到打开的程序
    End If

    你用 Shell ,那就继续用 Shell 吧
    有一个命令是 :taskkill ,用这命令直接结束进程吧。

    如果第一次调用 Shell 时,保留了 pid ,那就就 pid 参数,防止结束错了,否则就只能用 映像 名了。

    taskkill是用来终止进程的。具体的命令规则如下:
    TASKKILL [/S [/U [/P []]]]
    { [/FI ] [/PID | /IM ] } [/F] [/T]
    描述:
    这个命令行工具可用来结束至少一个进程。
    可以根据进程 id 或图像名来结束进程。
    参数列表:
    /S system 指定要连接到的远程系统。
    /U [domain]user 指定应该在哪个用户上下文
    执行这个命令。
    /P [password] 为提供的用户上下文指定密码。如果忽略,提示输入。
    /F 指定要强行终止的进程。
    /FI filter 指定筛选进或筛选出查询的的任务。
    /PID process id 指定要终止的进程的PID。
    /IM image name 指定要终止的进程的图像名。通配符 ‘*’可用来指定所有图像名。
    /T Tree kill: 终止指定的进程和任何由此启动的子进程。
    /? 显示帮助/用法。
    筛选器:
    筛选器名 有效运算符 有效值


    STATUS eq, ne 运行 | 没有响应
    IMAGENAME eq, ne 图像名
    PID eq, ne, gt, lt, ge, le PID 值
    SESSION eq, ne, gt, lt, ge, le 会话编号
    CPUTIME eq, ne, gt, lt, ge, le CPU 时间,格式为
    hh:mm:ss。
    hh - 时,
    mm - 钟,ss - 秒
    MEMUSAGE eq, ne, gt, lt, ge, le 内存使用,单位为 KB
    USERNAME eq, ne 用户名,格式为
    [domain]user
    MODULES eq, ne DLL 名
    SERVICES eq, ne 服务名
    WINDOWTITLE eq, ne 窗口标题
    注意: 只有带有筛选器的情况下,才能跟 /IM 切换使用通配符 ‘*’。
    注意: 远程进程总是要强行终止,
    不管是否指定了 /F 选项。

    展开全文
  • VB快捷键、终止符和加速器检查宏,☆使用方法: - 将解压后的文件复制到 Passolo 系统文件夹中定义的 Macros 文件夹中; - 自动修改宏:打开 Passolo 的工具 -> 宏对话框,将它设置为系统宏并单击主窗口 右下角的...
  • 《《VB程序设计基础》第4章 函数与过程》由会员分享,可在线阅读,更多相关《《VB程序设计基础》第4章 函数与过程(16页珍藏版)》请在人人文库网上搜索。1、第4章函数和进程,编写4.1过程和传递调用4.2参数4.3多模块...

    《《VB程序设计基础》第4章 函数与过程》由会员分享,可在线阅读,更多相关《《VB程序设计基础》第4章 函数与过程(16页珍藏版)》请在人人文库网上搜索。

    1、第4章函数和进程,编写4.1过程和传递调用4.2参数4.3多模块编程4.4小节点,编写和调用4.1.1函数过程,1函数过程编写格式:Public|PrivateStatic Function(正式参数声明列表)As函数体End FunctionPublic声明函数可以由另一个表单、模块调用。Private选项是默认值。(2) Static将函数名和在函数中声明的局部变量声明为静态变量(请参阅第4.3.3节)(3节),函数体必须具有实现该函数运算的声明和执行语句中的至少一个赋值语句。调用函数后的返回值是返回时函数名称的当前值。(4)将通常调用和调用的过程之间要相互传递的数据用作参数(表单参数)。。

    2、4.1.1函数过程的创建和调用,形参数声明格式:Byval|ByRef变量名As类型标识符数组名称()As类型标识符形变量名称变量名称之前,Byval或ByRef的含义将在第4.2节中详细介绍。如果数组名为几何参数:对于一维数组,通常需要设置传递参数数组的元素数。对于二维数组,通常需要将两个参数分别设置为传递实际参数数组行数和列数。4.1.1函数过程的编写和调用,2函数过程的调用(1)定义为Private的所有过程只能由该表单中的过程调用。函数名称(实际列表)(2)定义为Public的任何过程都可以由当前项目中其他表单上的过程调用。调用格式为表单名称。函数名(实际列表)(3)通常需要调用Fun。

    3、ction过程,就像VB内部函数一样,调用后返回的结果是1函数的值。如稍后所述,您也可以使用Call命令调用Sub过程,如Call函数名(实际列表),但是以这种方式调用函数时,VB计算机会放弃返回值,因此无法找到所需的函数值。4.1.2 SUB进程的创建和调用、程序中多次重复执行的作业进程以及VB允许用户将这些操作自定义为SUB进程。与函数进程不同,这些迭代任务不是在计算中返回值,而是完成特定任务。返回多个值的操作有时也会创建SUB进程。1SUB流程创建格式:Public|PrivateStatic SUB(几何参数列表)Sub流程主体end SUB流程主体:无法为Sub流程名称分配值;执行E。

    4、xit Sub语句会将控件返回给调用方。函数过程名必须在函数体中指定值。这是因为在函数过程调用结束时,函数名作为获取的值用于调用方表达式的计算。不能为SUB过程名指定值。这是函数过程和SUB过程之间最重要的区别之一。4.1.2编写和调用Sub过程,2 SUB过程调用格式:Call Sub过程名(实际列表)或SUB过程名实际列表Public或Private属性对与函数过程相同的SUB过程调用的影响。特别要注意,事件进程也是Sub进程。换句话说,事件流程也可以在执行阶段以Call陈述式呼叫。Command1_Click事件包含“hello!”在Form_Click执行期间,语句“Call Comm。

    5、and1”也将激发Command1_Click事件,并显示“hello!即可列印区段。自定义Sub过程还可以命名形参数,并允许在事件期间重命名形,例如在编写代码时将键ascii重命名为k。由值4.2.1传递的形变量名前面的表达式是Byval形参数的传递方式,在过程创建时由形参数声明确定,由值传递的步骤如下:(1)创建形参数变量的步骤(即,如果实际变量为变量,则不是实际参数变量)。(2)将实际表达式的值复制到几何变量。(3)过程调用结束后,几何参数变量将被取消(存储空间从系统中回收)。按值传播是单向传播。换句话说,由于参数更改不会更改实际变量变量,因此使用以下过程swap交换两个数字变量的值是错。

    6、误的。,传递到值4.2.1,传递到值2的类型转换如果实际表达式值与形变量类型不同,则VB将根据以下规则转换为相同类型,然后复制到形变量中:(1)形参数值类型:形参数是整数,实际参数表达式是浮点类型,其值通过舍入后的值分配给形变量。使用实际表达式作为字符型时,将字符值分配给文本参数变量。“123”等于123,“12a”发生错误。(2)将文字转换为字符串:将文字转换为数值会将值分配给文字变量(123等于123)。4.2.2传递到地址,1传递到地址的参数名前面的修饰符将传递到地址,Byref没有参数传递方式的说明(默认值)。(1)如果文字不是常数、函数等变量,则文字被声明为传递到地址,但实际上是作为。

    7、值传递的。(2)按地址传递时,参数值的变化是实际变量的变化。如果值以单向方式传递给调用中调用的函数,则参数的地址特定传递是双向传递方法,在调用结束和返回控制时,实际参数的值将成为该参数的值。双字符参数对应于相同类型的数组名,数组参数按地址仅传递一种方法。这里不讨论特定于地址的转发实现机制。从程序员的角度来看,只需理解形变量是实际变量等变量。4.3.1标准模块,标准模块中存储的流程是常规流程。以前,表单的公用进程写入了此表单的公用部分,现在可以考虑将这些公用进程写入标准模块。1在“创建标准模块”下拉菜单的“工程”下,单击“添加模块”选项以显示系统,如图4-3所示。要显示记录了两个公用流程的“标准。

    8、模块”窗口(如图4-4所示),请选择“新建”选项卡。图4-3添加标准模块图4-4标准模块的“代码”窗口中的常规进程编辑,4.3.1标准模块,2调用交叉模块将常规进程写入表单的常规部分,或将某些常规进程写入标准模块,或从其他模块、表单中调用的常规进程是什么?(1)使用关键字Private公式的常规进程只能从本模块中调用。例如,从Form1修改为Private的常规进程只能由该表单上的事件进程调用。图4-3(b)中定义的标准过程x2只能从该模块调用。(2)标准模块中使用关键字Public修饰的典型过程可以由项目中的任何模块调用。(3)使用Public关键字装饰的表格的常规流程,以便项目中的所有其他。

    9、模块调用。4.3.2变量范围、变量按范围划分,可分为本地卷、模块级别和全局卷三种。1本地卷事件、函数、Sub进程中声明的变量(包含数组)或Const语句中声明的符号常量是本地量。本地卷的范围仅限于该区域所在的进程,不能被其他进程引用。示例:在示例4-10中,函数进程delkg,命令进程Command1声明了变量I,每个变量都是不同的变量。如果未在函数进程delkg中显式声明变量I,则该表单的代码窗格中未声明模块级变量I,并且该进程的I也是本地的,因为它是变体类型的本地。2模块级别量位于模块的常规对象声明部分,未声明为Public的变量(包括数组)和符号常量是模块级别量。模块级别的范围仅限于该模。

    10、块所在的模块,不能被其他模块中的进程引用。4.3.2变量范围,3全局量位于模块的常规对象声明部分,Public语句声明的变量,符号常量为全局量。整体数量可以在整个专案中参考,当其他表单参考时,必须在变数名称或符号常数名称之前指示表单名称。例如,在表单Form1的语句“x=Form2.k”中引用的变量k必须是表单Form2的“代码”窗口、常规模块部分、声明为Public的全局变量。否则,不能在表格中引用。数组,固定长字符串不能声明为Public。4.3.3变量寿命,变量的作用空间中,变量有范围。在变量的作用时间里,变量有生存时间。在程序执行过程中,根据变量的生命周期将变量分为静态变量(Stati。

    11、c)和动态变量(Dynamic)。1动态变量动态变量仅在程序运行进入变量的进程时分配给相应的变量内存空间,退出进程时变量占用的内存空间自动释放,其值消失。使用Dim语句在进程中声明的局部变量属于动态变量,在进程运行结束后,不会保留变量的值,每次重新运行每个回放进程时都会重新声明变量并分配存储空间。4.3.3变量寿命,2静态变量静态变量是在程序执行期间终止变量所在的进程时保留其值的变量,即变量占用的内存空间不会释放的变量。以后重新启动进程时,继续使用变量值。使用Static语句声明的局部变量是静态变量。静态变量只能在过程中声明,而不能在常规对象声明部分声明。要使流程中的所有本地变量成为静态变量,请在流程头中添加Static关键字。无论Sub进程aa中声明为Static、Dim或Private的变量(如Private Static Sub aa(),还是隐式声明的变量,它都将成为静态变量。函数进程和自定义进程都可以通过在进程头中添加Static关键字来进一步说明。4.4小注释、程序中多次重复的作业进程、调用系统函数无法实现的情况下,VB可以将这些作业自定义为函数过程或Sub进程。要定义函数过程或Sub过程,必须熟悉过程定义的格式以及调用方和定义的过程之间传递参数的方式和规则。需要为项目中的其他模块调用的通用进程必须声明为关键字Public,多个通用进程可以集中在标准模块上。而且。

    展开全文
  • 内容索引:VB源码,系统相关,屏幕保护,屏保 一个完备的屏保程序的实例,说明:  1)支持屏保参数设置,动态改变小球数目  2)编译成.scr文件后,拷入windows目录下,即可在显示属性中调用  3)支持命令行参数  ...
  • VB简单的程序设计”常见错误汇总一、“VB简单的程序设计”常见错误1.2常见错误和难点分析1.标点符号错误在VB中只允许使用西文标点,任何中文标点符号在程序编译时产生"无效字符"错误,在该行以红色字显示。用户...

    “VB简单的程序设计”常见错误汇总

    一、“VB简单的程序设计”常见错误

    1.2 常见错误和难点分析

    1.标点符号错误

    在VB中只允许使用西文标点,任何中文标点符号在程序编译时产生"无效字符"错误,在该行以红色字显示。用户在进入VB后不要使用中文标点符号。中、西文状态下标点符号对照见下表所示。

    中、西状态下标点符号对照

    西文状态

    ,

    .

    '

    "

    ;

    _

    <

    中文状态

    '

    "

    ——

    2.字母和数字形状相似

    L的小写字母"1"和数字"l"形式几乎相同、O的小写字母"。"与数字"0"也难以区,这在输入代码时要十分注意,避免单独作为变量名使用。

    3.对象名称(Name)属性写错

    在窗体上创建的每个控件都有默认的名称,用于在程序中唯一地标识该控件对象。系统为每个创建的对象提供了默认的对象名,例如,Text1、Text2、Command1、Label1等。用户可以将属性窗口的(名称)属性改为自己所指定的可读性好的名称,如txtInput、txtOutput、

    cmdOk等。对初学者,由于程序较简单、控件对象使用较少,还是用默认的控件名较方便。

    当程序中的对象名写错时,系统显示"要求对象"的信息,并对出错的语句以黄色背景显示。用户可以在代码窗口的"对象列表"框检查该窗体所使用的对象。

    4.Name属性和Caption属性混淆

    Name属性的值用于在程序中唯一地标识该控件对象,在窗体上不可见;而Caption属性的值是在窗体上显示的内容。

    5.对象的属性名、方法名写错

    当程序中对象的属性名、方法名写错时,VB系统会显示"方法或数据成员未找到"的信息。在编写程序代码时,尽量使用自动列出成员功能,即当用户在输入控件对象名和句点后,系统自动列出该控件对象在运行模式下可用的属性和方法,用户按空格键或双击鼠标即可,这样既可减少输入也可防止此类错误出现。

    6.变量名写错

    用Dim声明的变量名,在后面的使用中表示同一变量而写错了变量名,VB编译时就认为是两个不同的变量。例如,下面程序段求1~100的和,结果放在Sum变量中:

    Dim sum As Integer,i As Integer

    Sum=0

    For i =1 to

    100

    Sum=Sun+i

    Next i

    Print Sum

    显示的结果为100。原因是累加和表达式Sum=Sun+i中的右边的变量名Sum写成Sun。VB对变量声明有两种方式,可以用变量声明语句显式声明,也可以用隐式声明,即不声明直接使用。上述变量名的写错,系统为两个不同的变量各自分配内存单元,造成计算结果不正确。因此,为防止此类错误产生,必须对变量声明采用限制其为显式声明方式,也就是在通用声明段加Option

    Explicit语句。

    7.语句书写位置错

    在VB中,除了在"通用声明"段利用Dim等对变量声明语句外,其他任何语句都应在事件过程中,否则运行时会显示"无效外部过程"的信息。若要对模块级变量进行初始化工作,则一般放在Form

    Load()事件过程中。

    8.无意形成控件数组

    若要在窗体上创建多个命令按钮,有些读者会先创建一个命令按钮控件,然后利用对该控件进行复制、粘贴,这时系统显示:“已经有一个控件为"Command1"。创建一个控件数组吗?”的信息,若单击"是"按钮,则系统创建了名称为Command1的控件数组。若要对该控件的

    Click事件过程编程,系统显示的框架是:

    Private Sub Command1_Click(Index As Integer)

    End Sub

    Index表示控件数组的下标。

    若非控件数组,Click事件过程的框架是:

    Private Sub Command1_Click()

    End Sub

    请注意直到学习第四章数组前,一律不使用控件数组。

    9.Print方法中定位问题

    定位通过Tab、Spc函数和最后的逗号、分号和无符号来控制。VB中通过Print方法中各参数的综合使用达到所需的结果,但初学者往往难以掌握。

    (1) Tab(n)与Spc(n)的区别

    Tab(n)从最左第1列开始算起定位于第n列,若当前打印位置已超过n列,则定位于下一行的第n列,这是常常定位不好出现的问题。在格式定位中,Tab用得最多。

    Spc(n)从前一打印位置起空n个空格。例如,下面程序段显示了Tab与Spc的区别,效果如图所示。

    Private Sub Commandl_Click()

    Print "1234567890”,

    Print

    Tab(1);"**"';Tab(2);"%%%";spc(2);"$$$$"

    End Sub

    (2)

    紧凑格式";"分号的使用

    紧凑格式";",即输出项之间无间隔。但对于数值型,输出项之间系统自动空一列,而由于数值系统自动加符号位,因此,大于零的数值,实际空两列。对于字符型之间无空格。

    例如,下面程序段,效果如图所示。

    Private Sub Command1_Click()

    Print 1;-2;3

    Print"1234";"5678"

    Print"A";"B";"C";"D","E","F"

    End Sub

    从该例应区分数值和字符在紧凑格式输出的差异。

    10.打开工程时找不到对应的文件

    一般,一个再简单的应用程序也应由一个工程.vbp文件和一个窗体.frm文件组成。工程文件记录该工程内的所有文件(窗体.frm文件、标准模块.bas文件、类模块.cls文件等)的名称和所存放在磁盘上的路径。

    若在上机结束后,把文件复制到软盘上保存,但又少复制了某个文件,下次打开工程时就会显示"文件未找到"。也有在VB环境外,利用Windows资源管理器或DOS命令将窗体文件等改名,而工程文件内记录的还是原来的文件名,这样也会造成打开工程时显示"文件未找到"。

    解决此问题的方法:一是修改.vbp工程文件中的有关文件名:二是通过"工程"菜单的"添加窗体"中的"现存"选项,将改名后的窗体加入工程。

    二、表达式

    1.书写规则

    (1)运算符不能相邻。例a+-b是错误的。

    (2)乘号不能省略。例x 乘以y

    应写成:x*y

    (3)括号必须成对出现,均使用圆括号。

    (4)表达式从左到右在同一基准上书写,无高低、大小。

    2. 不同数据类型的转换

    运算结果的数据类型向精度高的数据类型靠.

    Integer< P>

    3.逻辑表达式书写错,在VB没有造成语法错而形成逻辑错

    例:数学表达式 3≤x<10 VB表达式为 3<=x<10

    问题在于VB中的逻辑量与数值量可互转

    4.同时给多个变量赋值,在VB没有造成语法错而形成逻辑错

    例 Dim x%,y%,z%

    x=y=z=1

    5. 标准函数名写错

    6.变量名写错

    检查方法:在通用声明段加Option Explicit

    7.语句书写位置错

    在通用声明段只能有Dim语句,不能有赋值等其他语句

    1.逻辑表达式书写错,在VB没有造成语法错而形成逻辑错

    例如,要将数学上表示变量x在一定数值范围内如3≤x<10,以VB的逻辑表达式表示,有的读者写成的VB表达式为:

    3<=x<10

    此时在其他语言中将产生语法错,而在VB中不产生语法错,程序能运行,但不管x的值为多少,表达式的值永远为True,这造成程序能正常运行的假象,其结果是不正确的。

    因为在VB中,当两个不同类型的变量或常量参加运算时,有自动向精度高的类型转换的功能。例如,逻辑常量True转换为数值型的值为-1,False为0;反之数值型非0转换为逻辑型的值为True,0为False。同样数字字符与数值运算,转换为数值型。

    例如,语句Print

    True+3 '显示的结果是2

    Print

    "123"+100 '显示的结果是223

    Print#5/1/2000#+3 '显示的结果是00-5-4

    根据此原因,表达式:

    3<=x <10

    (1)

    (2)

    值的计算过程是:首先根据x的值计算3<=x,结果总为True或False;然后该值(-1或0)与10比较永远为True。正确的VB表达式书写为:

    3<=x And x<10

    2.同时给多个变量赋值,在VB没有造成语法错而形成逻辑错

    例如,要同时给x,y,z三个整型变量赋初值1,有的读者写成如下赋值语句:

    x=y=z=1

    在C语言中,上述语句是可以实现同时对多个变量赋值,而在VB中规定一句赋值语句内只能给一个变量赋值,但上述语句并没有产生语法错,运行后x,y,z中的结果均为0。

    原因是VB将y=z=1作为一个表达式,再将表达式的结果赋值给x。在VB中默认数值型变量的初值为0,根据上面错误1的分析类推,因此表达式y=z=l的结果为0,所以x赋得的值为0、y、z变量的值为默认值o。

    3.标准函数名写错

    VB提供了很多标准函数,如IsNumeric()、Date()、LeR()等。当函数名写错时,如将

    IsNumeric写成IsNummeric,系统显示"子程序或函数未定义",并将该写错的函数名选中提醒用户修改。

    [提示]

    如何判断函数名、控件名、属性、方法等是否写错,最方便的方法是当该语句写完后,按

    Enter键,系统把被识别的上述名称自动转换成规定的首字母大写形式,否则为错误的名称。

    4.数据合法性检查中引起程序的死循环

    在数据输入时,经常需要对输入的数据作合法性检查,以确保程序运行的正确性。如在实验::第1题中,对输入的温度要求是数字,否则删除原输入的内容,焦点仍定位于文本柜。有关属性设置见下表,界面如图2所示,程序段如下。

    表2 控件有关属性

    有关控件名

    TabIndex

    Text1

    2

    Text2

    3

    Command1

    4

    Command1

    5

    Private Sub Text1_LostFocus()

    If

    Not IsNumeric(Text1)Then

    Text1=""

    Text1.SetFocus

    End If

    EndSub

    Private Sub Text2_LostFocus()

    If

    Not IsNumeric(Text2)Then

    Text2=""

    Text2.SetFocus

    End

    If

    End Sub

    当华氏温度(Text1)输入错时,焦点在Text2处不停地闪动,程序产生死循环。

    原因是当Textl输入结束按Tab键,激发Textl

    LostFocus事件,焦点已到Text2;但当判断Textl文本框输入数据错时,执行Textl.SetFocus,使焦点从Text2拉回到Textl;而又激发Text2_LostFocus事件,此时并没有判断Text2文本框输入数据错,又执行

    Text2.SetFocus,使焦点从Text1拉回到Text2,如此交错造成死循环。

    而当摄氏温度(Text2)输入错时,程序正常运行。因为当Text2输入结束按Tab键,焦点已到Commanl,因此不会产生死循环。

    解决Text1输入错时死循环的问题,只要把Private Sub

    Text2_LostFocus()事件的If表达式If Not

    IsNumeric(Text2)Then改为:IfText2<>""And

    Not isNumeric(Text2)Then即可。

    5.如何终止死循环

    当编写程序时考虑不周到,产生死循环(尤其使用第四章介绍的循环结构)时,只要同时按Ctrl+Break键就町终止死循环,找出死循环的原因,修改程序。

    6.声明局部变量和窗体级变量的问题

    在VB程序中,除了大量的控件对象外,还要使用一些变量,暂时存放一些中间结果。这些变量的声明可以放在过程外的"通用声明"段(称为窗体级变量),也可以放在过程中(称为局部变量),怎样安置这些变量,初学者觉得有点头疼。两者区别:窗体级变量在本窗体的所有过程中均可使用:而局部变量仅在变量所在的过程中可使用,也即随着本过程的执行而分配存储空间,当执行到EndSub语句,分配的内存空间回收,变量的值也丢失。

    具体对实验二第2题来说,在方法一中窗体内有四个过程,共同要用到三个变量a,b,c,因此这些变量的声明应在"通用声明"段,否则Click事件过程中a,b,c变量的值为零。在方法二中只有一个事件过程,变量a,b,c作为过程级变量声明,当然声明与窗体级变量效果相同。

    方法一: 方法二:

    Dim

    ag,b#,c# Private

    Sub Form_Click()

    Private Sub

    Textl_LostFocus() Dima#,b#,c#

    … '对变量a赋值 … '用到变量a,b,c

    EndSub EndSub

    Private Sub Text2_LostFocus()

    … '对变量b赋值

    EndSub

    Private Sub Text3_LostFocus()

    … '对变量c赋值

    EndSub

    Private Sub Command1_Click()

    … '用到变量a,b,c

    EndSub

    7.在Form

    Load事件中,SetFocus方法不起作用

    原因同Print方法,因为系统在窗体装入内存时无法同步地用SetFocus方法定位控件的焦点。解决的方法在属性窗口对要定位焦点的控件将其Tablndex值设置为。就可。

    8.程序运行时对多个文本框间焦点移动的问题

    方法-:按"Tab"键。这时可不必编程,直接利用系统提供的功能方便地在各控件之间移动。若要确定离开或进入了哪个控件,则利用"控件LostFocus''或"控件_GotFocus''事件进行判断。

    方法二:按"回车"键。这时必须通过KeyPress事件编程宋实现,有关程序段如下:

    Private Sub某文本框_KeyPress(KeyAscii As

    Integer)

    If KeyAscii=13 Then

    另一控件.SetFocus

    End If

    End Sub

    三、选择结构/循环结构常见错误

    1.选择结构语法错误

    (1)块IF语句中如果有Else,必须单独作为一行;且End

    If不可缺省;

    (2)多条件选择ElseIf关键字的书写:

    ElseIf 不要写成Else If;

    (3)Select Case语句要与End

    Select配对出现;

    (4)Select Case

    后不能出现多个变量;Case子句后不能出现变量及有关运算符;

    (5)Select

    Case结构中Case后面的表达式之一是:Is

    ,它是简单关系式,例如:

    Private Sub Command1_Click()

    x =

    Val(InputBox("输入学生成绩"))

    Select Case

    x

    Case Is <

    60 ' 不能写成:Case x<60

    Print "不及格"

    Case Else

    Print "及格"

    End

    Select

    End Sub

    以下语句也是错误的:

    Select Case x1,x2,x3

    Case

    (x1+x2+x3)>=270

    Print "优秀"

    ……

    End Select

    2.选择结构逻辑错误

    VB程序的语法错误在编译过程中系统会给出提示信息。但是,如果存在逻辑错误系统就无能为力了,只能给出错误的结果,此时程序员很难找出错误所在。下面的例子是一个多条件表达式,例如,根据输入学生的百分制成绩,显示出五个不同的等级评定,评定条件如下:

    以下程序段是正确的:

    Private Sub Command1_Click()

    Dim mark As Integer, grade As String

    mark = InputBox("请输入学生的成绩:")

    If mark >= 90 Then

    grade =

    "优"

    ElseIf mark >= 80 Then

    grade =

    "良"

    ElseIf mark >= 70 Then

    grade =

    "中"

    ElseIf mark >= 60 Then

    grade =

    "及格"

    Else

    grade =

    "不及格"

    End If

    Print grade

    End Sub

    如果将IF……End

    IF之间的语句改为以下程序段结果就是错误的:

    If mark >= 60 Then

    grade =

    "及格"

    ElseIf mark >= 70 Then

    grade =

    "中"

    ElseIf mark >= 80 Then

    grade =

    "良"

    ElseIf mark >= 90 Then

    grade =

    "优"

    Else

    grade =

    "不及格"

    End If

    以上语句除了输入小于60分的输出正确以外,其他只要输出大于或等于60分的都输出“及格”。这是因为只要遇到第一个满足条件的即不再往下进行判断。

    另外还应该注意的是,Then后面不能写语句,必须换行。

    1.在选择结构中缺少配对的结束语句

    对多行式的If块语句中,应有配对的End

    If语句结束。否则,在运行时系统会显示"块

    If没有End If"的编译错误。

    同样对Select

    Case语句也应有与其相对应的EndSelect语句。

    2.多边选择ElseIf关键字的书写和条件表达式的表示

    多边选择ElseIf子句的关键字ElseIf之间不能写有空格,即不能写成Else

    If。

    在多个条件表达式的表示时,应从最小或最大的条件依次表示,以避免条件的过滤。

    3.Select Case语句的使用

    (1)"表达式列表i"中不能使用"变量或表达式"中出现的变量。例如,上述多边选择的例子改为Select

    Case语句实现,方法一Case子句中出现变量mark,运行时不管mark的值多少,始终执行Case

    Else子句,运行结果不正确;方法二、方法三正确。

    方法一: 方法二: 方法三:

    Select Case mark Select Case

    mark Select Case mark

    Case

    mark>=90 Case

    Is>=90 Case

    Is>=90

    Print"优"

    Print"优" Print"优"

    Case

    mark>=80 Casels>=80 Case 80 To 89

    Print"良" Print"良" Print"良"

    Casemark>=70 Case Is>=70 Case 70To 79

    Print"中" Print"中" Print"中"

    Case

    mark>=60 Case Is>=60 Case 60TO 69

    Print

    "及格" Print "及格 Print"及格"

    Case Else

    Case

    Else

    Case

    Else

    Print"不及格" Print"不及格"

    Print"不及格"

    End

    Select End

    Select End Select

    (2)在"变量或表达式"中不能出现多个变量。实验三第5题对三门课程奖学金的判断,只能用If语句的多边选择,而不能用SelectCase语句实现。例如,有些读者用如下语句表示:

    Select Case markl,mark2,mark3

    Case

    (markl+mark2+mark3)/3>=95

    Print"一等奖"

    End Select

    这样就会在"Select Case

    markl,mark2,mark3"语句行出现编辑错误:同时Case(markl+mark2

    +mark3)/3>=95书写也错误。

    3.不循环或死循环问题

    出现不循环或死循环主要是循环条件、循环初值、循环终值、循环步长的设置有问题。

    例如,以下循环语句不执行循环体:

    For i=1 To 10 Step

    –2 '

    步长为负,初值必须大于等于终值才能循环

    For I=100 To

    10 '

    缺省步长默认为正1,初值必须小于等于初值才能循环

    Do While

    False ' 循环条件是逻辑常量False,不执行循环

    Do While

    0 ' 循环条件为0等同于False

    例如,以下循环形成死循环:

    For I=10 to 100 Step

    0 ' 步长为0初值永远不会超过终值

    Do While

    True '

    循环条件是逻辑常量True,永远满足循环条件

    Do While

    1 ' 循环条件为非零值等同于True

    4.循环结构中缺少配对的结束语句

    For循环缺少Next语句;Do语句缺少Loop,尤其是多重循环这类问题更应该注意。

    5.多重循环语句内外循环交叉

    For i=1 to

    4 For i=1 to 4

    For j=1 to

    5 应改为: For j=1 to

    5 或将Next后面的j和i均去掉;

    ?i+j; ?i+j;

    Next

    I Next

    j 或将以下两行写成一行:Next i, j

    Next

    j Next i     Next后面的i,j不能缺且顺序不能错

    6.计数、累加、连乘结果变量赋初值问题

    计数一般的语句格式是:n=n+1的形式,每循环一次自动加1,而累加的一般格式是:s=s+x,每次将x的值累加到s中去。如果已经定义n、s为数值型变量,则默认初值为0,可以省略赋初值。而连乘的一般格式是:p=p*j,此时p应该赋初值1。例如,求10!的语句为:

    p=1

    for i=1 to 10

    p=p*i

    next I

    如果是多重循环,存放累加、连乘结果的变量初值设置放在内、外循环的位置应视具体问题分别处理。

    例如,以下程序段是求出30位同学三门课的平均成绩:

    Private Sub Command1_Click()

    For i = 1 To 30

    aver =

    0       ' 每换一位同学重新置0

    For j = 1 To

    3

    m = InputBox("输入第" & j &

    "门课的成绩:")

    aver = aver + m

    Next j

    aver = aver

    / 3

    Print "第"

    & i &

    "位同学的平均成绩是:", aver

    Next

    End Sub

    1.不循环或死循环的问题主要是循环条件、循环初值、循环终值、循环步长的设置有问题。例如,以下循环语句不执行循环体:

    For i=10 To 20

    Step-1 '

    步长为负,初值必须大于等于终值,才能循环

    For i=20 To10 '

    步长为正,初值必须小于等于终值,才能循环

    Do While False '

    循环条件永远不满足,不循环

    例如,以下循环语句死循环:

    For i=10 To 20 Step

    0 '

    步长为零,死循环

    Do While

    1 ' 循环条件永远满足,死循环

    2.循环结构中缺少配对的结束语句

    For…Next语句没有配对的Next语句;Do语句没有一个终结的Loop语句等。

    3.循环嵌套时,内外循环交叉:

    For I=1 to

    4

    For j=1 to 5

    Next

    i

    Next j

    上述循环的交叉运行时显示"无效的Next控制变量引用"。

    4.累加、连乘时,存放累加、连乘结果的变量赋初值问题

    (1)一重循环

    在一重循环中,存放累加、连乘结果的变量初值设置应在循环语句前。

    例如,求1~100的3的倍数和,结果放入Sum变量中,如下程序段,输出结果如何?

    Private SubForm_Click()

    Fori=3 To

    100 Step 3

    Sum=0

    Sum=Sum+i

    Next i

    Print

    Sum

    End Sub

    要得到正确的结果,应作如何改进?

    (2)多重循环

    在多重循环中,存放累加、连乘结果的变量初值设置放在外循环语句前,还是内循环语句前,这要视具体问题分别对待。

    例如,期末30位学生参加三门课程的考试,求每个学生的三门课程的平均成绩如下程序能否实现,应如何改进?

    aver=0

    For i=1 To 30

    For j=1 To

    3

    m=InputBox("输入第"&j&"门课的成绩")

    aver=aver+m

    Next j

    aver=aver/3

    Print aver

    Nexti

    展开全文
  • 内容索引:VB源码,系统相关,关机,终止进程,定时关机 Vb开发编写的关机助手源代码,具体来说可以定时关机、强制终止进程。可设定程序在几小时几分钟内自动关机,关机时强制终止进程,激活本功能后,关机程序将倒计时...
  • 读取大量数据,程序读取过程无问题(读取过程有进度记录,读取过程正常) 但因为数据过于庞大(一次读取几十万条...分开数据就不完整 估计读取过程是在循环中,系统认为死循环自动终止程序 请问如何延长程序运行时间
  • VB强制关闭进程,输入你要结束的程序PID,点击“终止”即可结束,不知道PID的,可打开任务管理器查看,然后输入进去就行了。程序挺简单的,新手能看懂。
  • 当执行一个VB.NET应用程序时,CLR会把IL翻译成x86指令,并且寻找一个名为Main的方法。 并从该方法开始执行程序。Main方法也称为程序的"入口"(entry point)。 入口方法可以采用不同的形式: 1. 不带参数的Main方法 ...

    当执行一个VB.NET应用程序时,CLR会把IL翻译成x86指令,并且寻找一个名为Main的方法。
    并从该方法开始执行程序。Main方法也称为程序的"入口"(entry point)。

    入口方法可以采用不同的形式:

    1. 不带参数的Main方法

        Module Module1
    
            Sub Main()
    
                Console.WriteLine("Hello World!")
    
                Console.Read()
    
            End Sub
    
        End Module
    

    2.带参数的Main方法

        Module Module1
    
            Sub Main(ByVal Args() As String)
    
                Console.WriteLine("Hello VB.NET!")
    
                For Each arg As String In Args
    
                    Console.WriteLine(arg)
    
                Next
    
                Console.Read()
    
            End Sub
    
        End Module
    

    还可以使用另外一种写法

        Module Module1
    
            Sub Main()
    
                Console.WriteLine("Hello VB.NET!")
    
                '获得的参数第一个为程序的完整的路径名称
                For Each arg As String In Environment.GetCommandLineArgs()
    
                    Console.WriteLine(arg)
    
                Next
    
                Console.Read()
    
            End Sub
    
        End Module
    

    转载于:https://www.cnblogs.com/tengwei6328/p/11257157.html

    展开全文
  • Vb双进程保护示例源程序程序运行后,生成两个独立进程,结束一个进程 ,会重新启动一个新进程,你会发现进程管理器中始终有两个进程,总是结束不掉,以达到进程保护的功能。不过,在结束进程时先锁定EXE,或者选择...
  • VB程序的基本结构――循环结构之For-Next语句》由会员分享,可在线阅读,更多相关《VB程序的基本结构――循环结构之For-Next语句(4页珍藏版)》请在人人文库网上搜索。1、课 题: 程序的基本结构循环结构之For-Next...
  • VB列出Windows运行的所有程序,并终止其运行的控 病毒外挂必备
  • 如果处于全屏屏保状态,则终止屏保程序 当小球圆心坐标值小于其半径值时(碰左边壁时),反弹,并把运动方向参数 BallVx 置反,这样小球会反向运动 或当小球球心坐标值大于屏幕宽与半径差值(碰右边壁时),反弹并把...
  • VB透明窗体 音乐播放 录音程序,MP3播放功能基于MP3ENC.OCX控件实现,支持左右声道调节,Me.LinkTopic = "" ' 这两行用于清除新运行的程序的DDE服务器属性,Me.LinkMode = 0 ' 否则在连接DDE程序时会出乱子的。...
  • 在VisualBasic程序中,可以使用WindowsAPI函数来重新启动计算机系统,文本介绍如何退出Windows并关闭计算机系统。关闭计算机系统可以使用WindowsAPI的ExitWindowsEx函数来从VisualBasic程序中重新启动计算机系统。要...
  • TerminateProcess函数终止指定进程及其所有线程 End If Next">按指定的名称关闭相应进程 关键代码如下: For Each TName In NameS If mName LCase TName Then List1 AddItem TName pid my th32ProcessID pname...
  • Windows操作平台设有一个...下面介绍如何利用VB设计用户自己的屏幕保护程序。屏幕保护程序可以保护显示屏不被损坏,同时节约能源。作为屏幕保护程序,应该具有如下特性: 1)屏幕保护程序运行时,鼠标光标被自动隐...
  • VB系统进程枚举和管理程序,功能类似于Windows的任务管理器,打开后可查看当前正在运行的程序细节,终止程序的运行,功能比Windows默认的进程管理器要多一些,操作起来挺方便。本源码贵在学习一下VB与Windows进程...
  • 程序启动了两个线程,一个线程sample2_printI 负责输出字母序号,另外一个线程sample2_printState输出sample2_printI 的状态,同时当计数为10时,终止sample2_printI 和自身。由于需要从sample2_printState终止...
  • 本文介绍了一种实现VB调用C语言程序的方法-动态链接库方法,给出了动态链接库生成的一般框架,并通过示例描述了动态链接库的实现及其制造方法和编程步骤. 该方法具有普遍意义. 关键字VB动态链接库DLL C程序1.简介...
  • VB程序错误处理方法

    千次阅读 2014-05-03 13:11:37
    大家知道,即使顺序员抱有最好的愿望,而且计划工作做得非常周密,也无法防止代码泛起...假如一个历程中包含了编译错误,VB将不执行该历程,并且我们也不能向用户提供带有编译错误的运行期版本应用顺序,大多数编译错
  • 我创建了一个小型应用程序,使用以下命令自动升级为管理员:requestedExecutionLevel level="highestAvailable" uiAccess="false"如果我在计算机上本地运行应用程序,这可以正常工作。但是,如果计算机试图在netork...
  • 再发一个VB定时关机代码,关于定时关机的功能,我想大概不需要多介绍了吧,大概就这样子,不过本程序除了定时关机外,还有很多其它实用的小功能,比如提高WINDOWS屏幕刷新速度、显示托盘图标,托盘右键菜单,图形...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,710
精华内容 3,484
关键字:

vb终止程序