vb.net进程编程 VB程序开发-成都创新互联网站建设

关于创新互联

多方位宣传企业产品与服务 突出企业形象

公司简介 公司的服务 荣誉资质 新闻动态 联系我们

vb.net进程编程 VB程序开发

vb.net编写的程序屏蔽系统热键

使用VB.net编写屏蔽热键的方法有很多中,比如说使用系统的API函数,也可以使用钩子来进行屏蔽.还有一种就是.net带的一种方法,首先来判断所按下去的键,然后再执行操作等事件.比如说:if (e.keycode==keys.D){e.handle=true}在keydown事件里面处理!这样就可以屏蔽了D键. 实例:if ((Control.ModifierKeys == Keys.Alt) (e.KeyCode == Keys.F4))

创新互联建站主要从事网站制作、成都做网站、网页设计、企业做网站、公司建网站等业务。立足成都服务龙海,十年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:028-86922220

{

e.Handled = true;

}还有一种办法就是不通过屏蔽热键来实现,就是通过设置焦点.你可以把你程序窗口设置为主焦点,这样其他程序一般就无法在你的程序前面了.实现屏蔽的作用.至于任务管理器的话可以通过杀掉进程的办法做到.如下: Process[] p = Process.GetProcesses(); foreach (Process p1 in p)

{

try

{

if (p1.ProcessName.ToLower().Trim() == "taskmgr")//这里判断是任务管理器

{

p1.Kill();

return;

}

}

catch

{

return;

}

}}以上是使用C#编写的,稍微改下就可以了,在,NET里面都差不多!

vb.net编程,如何使用 appdomain 实现某进程DLL动态加载和卸载?

由于你要求的是能够动态的加载与卸载,所以这里选用了appdomain的load方法来加载一个程序集(同样的,卸载的时候调用appdomain的静态方法Unload即可).

另外由于,在appdomain.load的时候remoting会试图将程序集序列化到defaultdomain中去,这会产生问题,通常以一个"FileNotFoundException"结束,因此采用了一种折中的办法.

思路如下:

1.建立一个新的程序集,里面包含一个轻量的类型,这个类型只包含一个用来加载程序集的公共方法;

2.在你的主程序里面,用appdomain.load来加载上一步的程序集,接着实例化上一步的轻量的类型;

3.而后就可以像操作通常的对象一样,调用它上面的方法来加载你想要的程序集了;

源代码已经打包发给你了,

你看看吧~

如果有问题,再找我哈

VB编程高手帮助我下!!

设备:电脑

你既然喜欢编程,就应该认认真真的学习一门语言,学习微软的就先从VB开始,VB是比较好的入门语言,可视化的,比较简单,是非常好的入门语言。书籍最少应该准备两本,不可能一本书籍会包含VB的所有内容,在看书的时候,可以交叉的看,一本书籍中没有讲到的内容可以在另一本中看到,这样对学习是很有好处的,也能保证所学知识的完整性。学编程是一个很漫长的过程,不要着急,要理论与实践想结合,例程书籍也是很重要的,看源代码对学习也是很有帮助的,等你学完这门VB语言之后,学习别的语言是非常简单,可以尝试C语言,按照C——C++——VC的顺序学习,有助于知识的连贯性,我也希望你能学好的。

或者学习Delphi,入门较为简单类似于VB,但比VB强大,即可作为入门又能做强、做大

怎样学编程

1.明确学习目的

学习编程对大多数IT业人员来说都是非常有用的。学编程,做一名编程人员,从个人角度讲,可以解决在软件使用中所遇到的问题,改进现有软件,可以为自己找到一份理想的工作添加重要得砝码,有利于在求职道路上谋得一个好的职位;从国家的角度,可以为中国的软件产业做出应有的贡献,一名优秀的程序员永远是被争夺的对象。学习编程还能锻炼思维,使我们的逻辑思维更加严密;能够不断享受到创新的乐趣,将一直有机会走在高科技的前沿,因为程序设计本身是一种创造性的工作。知识经济时代给我们带来了无限的机会,要想真正掌握计算机技术,并在IT行业里干出一番事业来,有所作为,具有一定的编程能力是一个基本条件和要求。

2.打好基础

学编程要具备一定的基础,总结之有以下几方面:

(1)数学基础 从计算机发展和应用的历史来看计算机的数学模型和体系结构等都是有数学家提出的,最早的计算机也是为数值计算而设计的。因此,要学好计算机就要有一定的数学基础,出学者有高中水平就差不多了。

(2)逻辑思维能力的培养学程序设计要有一定的逻辑思维能力,“逻思力”的培养要长时间的实践锻炼。要想成为一名优秀的程序员,最重要的是掌握编程思想。要做到这一点必须在反复的实践、观察、分析、比较、总结中逐渐地积累。因此在学习编程过程中,我们不必等到什么都完全明白了才去动手实践,只要明白了大概,就要敢于自己动手去体验。谁都有第一次。有些问题只有通过实践后才能明白,也只有实践才能把老师和书上的知识变成自己的,高手都是这样成材的。

(3)选择一种合适的入门语言 面对各种各样的语言,应按什么样的顺序学呢?程序设计工具不外乎如下几类: 1)本地开发应用软件开发的工具有:Visual Basic 、Delphi 、VC++ ( C++ Builder ) 等;数据库开发工具有:Visual Foxpro 、Oracle Developer 、Power Builder 等。 2)跨平台开发开发工具如 Java 等。 3)网络开发对客户端开发工具如:Java Script 等;对服务器开发工具如:PHP 、ASP 、JSP 、ISAPI 、NSAPI 、CGI 等。以上不同的环境下几种开发工具中 VB 法简单并容易理解,界面设计是可设化的,易学、易用。选 VB 作为入门的方向对出学者是较为适合的。

3. 注意理解一些重要概念

一本程序设计的书看到的无非就是变量、函数、条件语句、循环语句等概念,但要真正能进行编程应用,需要深入理解这些概念,在理解的基础上应用,不要只简单地学习语法、结构,而要吃透针对这些语法、结构的应用例子,做到举一反三,触类旁通。

4.掌握编程思想

学习一门语言或开发工具,语法结构、功能调用是次要的,最主要是学习它的思想。例如学习 VC 就要学习 Windows 的内在机理、什么是线程......;学习 COM 就要知道 VTALBE 、类厂、接口、idl......,关键是学一种思想,有了思想,那么我们就可以触类旁通。

5.多实践、多交流

掌握编程思想必须在编程实际工作中去实践和体会。编程起步阶段要经常自己动手设计程序,具体设计时不要拘泥于固定的思维方式,遇到问题要多想几种解决的方案。这就要多交流,各人的思维方式不同、角度各异,各有高招,通过交流可不断吸收别人的长处,丰富编程实践,帮助自己提高水平。亲自动手进行程序设计是创造性思维应用的体现,也是培养逻辑思维的好方法。

6.养成良好的编程习惯

编程入门不难,但入门后不断学习是十分重要的,相对来说较为漫长。在此期间要注意养成一些良好的编程习惯。编程风格的好坏很大程度影响程序质量。良好的编程风格可以使程序结构清晰合理,且使程序代码便于维护。如代码的缩进编排、变量命令规则的一致性、代码的注释等。

7.上网学编程

在网上可以学到很多不同的编程思想、方法、经验和技巧,有大量的工具和作品及相关的辅导材料供下载。例如网站“编程课堂”()主要以 VB 和 Delph;教学和交流为主,提供大量实用技巧;网站“现在时编程学园”()是专门介绍C、VC、VB、Delphi 等的综合编程网站;网站“ VB 编程乐园 ”()提供内容丰富而且实用的编程技术文章、精选控件、源代码下载、计算机考试、相关软件以及编程书籍推荐等等。

8.加强计算机理论知识的再学习

学编程是符合“理论→实践→再理论→再实践”的一个认识过程。一开始要具有一定的计算机理论基础知识,包括编程所需的数学基础知识,具备了入门的条件,就可以开始编程的实践,从实践中可以发现问题需要加强计算机理论知识的再学习。程序人人皆可编,但当你发现编到一定程度很难再提高的时候,就要回头来学习一些计算机科学和数学基础理论。学过之后,很多以前遇到的问题都会迎刃而解,使人有豁然开朗之感。因此在学习编程的过程中要不断地针对应用中的困惑和问题深入学习数据结构、算法、计算机原理、编译原理、操作系统原理、软件工程等计算机科学的理论基础和数理逻辑、代数系统、图论、离散数学等数学理论基础知识。这样经过不断的学习,再努力地实践,编程水平一定会不断提高到一个新高度。

(一) COPY文件复制命令

1.功能:拷贝一个或多个文件到指定盘上。

2.类型:内部命令

3.格式:COPY [源盘][路径]〈源文件名〉[目标盘][路径][目标文件名]

4.使用说明:

(1)COPY是文件对文件的方式复制数据,复制前目标盘必须已经格式化;

(2)复制过程中,目标盘上相同文件名称的旧文件会被源文件取代;

(3)复制文件时,必须先确定目标般有足够的空间,否则会出现;insufficient的错误信息,提示磁盘空间不够;

(4)文件名中允许使用通配举“*”“?”,可同时复制多个文件;

(5)COPY命令中源文件名必须指出,不可以省略。

(6)复制时,目标文件名可以与源文件名相同,称作“同名拷贝”此时目标文件名可以省略;

(7)复制时,目标文件名也可以与源文件名不相同,称作“异名拷贝”,此时,目标文件名不能省略;

(8)复制时,还可以将几个文件合并为一个文件,称为“合并拷贝”,格式如下:COPY;[源盘][路径]〈源文件名1〉〈源文件名2〉…[目标盘][路径]〈目标文件名〉;

(9)利用COPY命令,还可以从键盘上输入数据建立文件,格式如下:COPY CON [盘符:][路径]〈文件名〉;

(10)注意:COPY命令的使用格式,源文件名与目标文件名之间必须有空格!

DOS时代,Copy命令恐怕是最受欢迎也最常用一个DOS内部命令,但在Windows横行的今天,它渐渐被用户遗忘,似乎变得可有可无。其实这个命令远远不止“拷贝”这么简单,好好利用它,会收到意想不到的效果。

用Copy实现远程上传和下载

用Copy命令拷贝文件大家肯定都知道,但你知道吗?Copy还支持远程文件的拷贝!比如Copy C:\SRV.EXE \\210.***.***.***\ADMIN$可以把程序SRV.EXE“上传”到对方的ADMIN$共享目录下,当然反过来也可以,这样就成“下载”了:Copy \\210.***.***.***\ADMIN$\SRV.EXE C:\就能把对方的ADMIN$共享目录下的SRV.EXE文件下载到本地的C盘中。

用Copy将秘密藏在别人肚子里

DOS的Copy命令可以将几个同类型的文件合并成一个文件,比如:多个.txt文件,其实通过它还能将一个文本文件合并到一个非文本文件中,实现隐藏秘密的效果。比如你在D盘根目录有一个重要的文本文件:001.txt,想对其进行隐藏。

找一个MP3歌曲,体积最好不要太大(500KB左右为宜),比如:wanfei.mp3(假设也放在D盘根目录),输入:Copy wanfei.mp3/b + 001.txt/a wanfei-1.mp3,这样会生成一个新文件wanfei-1.mp3。用Winamp打开它,歌曲没有变化。按住Shift键右击wanfei-1.mp3,选择“打开方式”并选择EmEditor之类的文本编辑器打开该文件,看到什么了?一堆乱码?但如果按下Ctrl+End组合键将光标移至文件的尾部,是不是001.txt文件中的内容?

小提示:其中参数/b指定以二进制格式复制、合并文件;参数/a指定以ASCII格式复制、合并文件。这里要注意文件的顺序,二进制格式的文件应放在加号前,文本格式的文件放在加号后。有一点要提醒大家:就是这个文本文件的前面最好至少空3行,这样它头部的内容就不易丢失。

同样道理,你可以把文件藏进图片、WAV声音文件,甚至还能在Word、Excel等文档中藏进秘密,比如:

Copy wanfei.jpg/b + 001.txt/a wanfei-1.jpg(把001.txt藏进wanfei-1.jpg图片)

Copy wanfei.doc/b + 001.txt/a wanfei-1.doc(把001.txt藏进wanfei-1.doc文档)

Copy wanfei.wav/b + 001.txt/a wanfei-1.wav(把001.txt藏进wanfei-1.wav文件)

Copy wanfei.exe/b+ 001.txt/a wanfei-1.exe(把001.txt藏进wanfei-1.exe文件)

★ShellExecute函数和Shell函数:打开外部程序

ShellExecute函数

'声明

Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _

(ByVal hWnd As Long, ByVal lpOperation As String, _

ByVal lpFile As String, ByVal lpParameters As String, _

ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

'命令语句

Private Sub Command1_Click()

Dim lR As Long

lR = ShellExecute(Me.hWnd, "Open", sFile, "", "", vbNormalFocus)

End Sub

本函数还可以用来连接到网页:

ShellExecute 0, vbNullString, "", vbNullString, vbNullString, vbNormalFocus

或者这样写来发送Email:

ShellExecute me.hwnd, "open", "mailto:vbcode@vbcode.com", vbNullString, vbNullString, SW_SHOW

另外有ShellExecute的替代用法,更加简单实用,不用API,一句Shell搞定!

连接到网页:

Shell "rundll32.exe url.dll,FileProtocolHandler "

打开文件:

Shell "rundll32.exe url.dll,FileProtocolHandler " App.Path "\SHELLTST.TXT"

Shell函数

运行一个可执行程序,并且如果该程序仍然在运行,则返回一个包含该程序的进程 ID 的整数。

Public Function Shell( _

ByVal Pathname As String, _

Optional ByVal Style As AppWinStyle = AppWinStyle.MinimizedFocus, _

Optional ByVal Wait As Boolean = False, _

Optional ByVal Timeout As Integer = -1 _

) As Integer

格式:Shell(Pathname, Style As AppWinStyle, Wait, Timeout)

参数:

△Pathname

必选项。字符串。要执行的程序名以及任何需要的参数和命令行开关。Pathname 还可以包括驱动器和目录路径或文件夹。

△Style

可选项。AppWinStyle。从 AppWinStyle 枚举中选择的值,该枚举与要在其中运行程序的窗口样式相对应。如果省略 Style,则 Shell 使用 AppWinStyle.MinimizedFocus,这将使程序以最小化启动并具有焦点。

Style 参数可以有以下设置之一:

AppWinStyle.Hide 隐藏窗口并为隐藏的窗口提供焦点。

AppWinStyle.NormalFocus 为窗口提供焦点,并以最近的大小和位置显示窗口。

AppWinStyle.MinimizedFocus 为窗口提供焦点,并以图标的形式显示窗口。

AppWinStyle.MaximizedFocus 为窗口提供焦点,并以全屏方式显示窗口。

AppWinStyle.NormalNoFocus 将窗口设置为最近的大小和位置。当前活动窗口保持焦点。

AppWinStyle.MinimizedNoFocus 以图标的形式显示窗口。当前活动窗口保持焦点。

△Wait

可选项。Boolean。指示 Shell 函数是否应等待程序完成的值。如果省略 Wait,则 Shell 使用 False。

△Timeout

可选项。Integer。Wait 为 True 时等待完成的毫秒数。如果省略 Timeout,则 Shell 使用 -1,表示没有超时,Shell 直到程序完成时才返回。因此,如果省略 Timeout 或将它设置为 -1,则 Shell 可能永远不会将控制返回给程序。

异常/错误

异常类型 错误号 条件

ArgumentException 5 Style 不在 0 到 9(包含 0 和 9)范围内。

FileNotFoundException 53 Shell 无法启动指定的程序。

备注

Shell 函数的返回值取决于 Pathname 中指定的程序在 Shell 返回时是否仍在执行。如果将 Wait 设置为 True 并且程序在超时过期前结束,Shell 返回零。如果超时过期或者省略 Wait 或将它设置为 False,则 Shell 返回程序的进程 ID。进程 ID 是标识正在运行的程序的唯一数字。

如果 Shell 函数无法启动指定的程序,则出现 System.IO.FileNotFoundException 错误。例如,当试图从使用 System.Windows.Forms 的应用程序运行 16 位程序(如 command.com)时,可能会发生这种情况。解决办法是运行将调用所需的 16 位程序的 32 位程序。如果是 command.com,则可以将运行 cmd.exe 作为另一种选择。

默认情况下,Shell 函数异步运行程序。这意味着用 Shell 函数启动的程序在 Shell 函数后面的语句执行前可能没有结束执行。如果想等待程序结束后再继续,请将 Wait 设置为 True。

整个路径和文件规范应该始终用引号引起来,如以下示例所示:

ID = Shell("""C:\Program Files\MyFile.exe"" -a -q", , True, 100000)

字符串内每对相邻的双引号 ("") 被解释为字符串中的一个双引号字符。因此,前面的示例表示 Shell 函数的下列字符串:

"C:\Program Files\MyFile.exe" -a -q

如果路径没有用引号引起来,Windows 就会在 C:\ 目录中查找名为 Program.exe 的文件,而不是在 C:\Program Files 目录中查找 MyFile.exe 文件。

安全说明 如果路径和文件规范没有用引号引起来,那么当文件名或路径节点包含空格时,就会出现安全风险。在上面的示例中,路径节点 \Program Files 包含一个空格。如果规范不在引号中,并且名为 Program.exe 的程序(例如通过非法的破坏)安装在 C:\ 中,Windows 就会执行 Program.exe 程序而不是 MyFile.exe。

安全说明 Shell 函数需要非托管代码权限,这可能会对它在部分信任情况下的执行产生影响。有关更多信息,请参见 SecurityPermission 类和代码访问权限。

示例

本示例使用 Shell 函数运行一个用户指定的应用程序。通过将 AppWinStyle.NormalFocus 指定为第二个参数,以正常大小打开应用程序并为它提供焦点。

Dim ProcID As Integer

' Run Calculator.

ProcID = Shell("C:\Windows\system32\calc.exe", AppWinStyle.NormalFocus)

' The preceding path is for Windows XP;

' The Windows 2000 path is C:\WINNT\system32\calc.exe.

另,shell函数无须声明,例:

Option Explicit

Private Sub Command1_Click()

Shell ("D:\Program Files\WinRAR\winrar.exe")

End Sub

调用Shell函数可以执行外部可执行文件,其扩展名如.exe 、.com、.bat或.pif,缺省扩展名为.exe。不能执行操作系统内部命令及所有非执行文件(如文档),否则将显示出错信息

VB 中,常以Shell指令来执行外部程式,然而它在Create该外部process 后,立刻就会回到vb 的下一行程式,无法做到等待该Process结束时,才执行下一行指令,或是说,无法得知该Process是否已结束,甚者,该Process执行到一半,又该如何中止其执行等等,这些都不是Shell指令所能控制的,因此我们需使API的帮助来完成。

第一个问题,如何等待shell所Create的process结束后才往后执行vb的程式。

首先要知道的是,每个Process有唯一的一个ProcessID,这是OS给定的,用来区别每个 Process,这个Process ID(PID)主要可用来取得该Process相对应的一些资讯,然而要对该Process的控制,却大多透过 Process Handle(hProcess)。VB Shell指令的传回值是PID,而非hProcess,所以我们需透过OpenProcess这个API来取得 hProcess而OpenProcess()的第一个参数,指的是所取得的hProcess所具有的

能力,像 PROCESS_QUERY_INFORMATION 便是让GetExitCode()可取得hProcess所指的process之状态,而PROCESS_TERMINATE,便是让TerminateProcess(hProcess..)的指令能够生效,也就是说,不同参数设定,使hProcess所具有的权限、能力有所不同。取得 hProcess后便可以使用WaitForSingleObject()来等待hProcess状态的改变,也就是说,它会等待 hProcess所指的process执行完,这个指令才结束,它

第二个参数所指的是 WaitForSingleObject()所要等待的时间(in milliseconds ),如果超过所指的时间,就TimeOut而结束WaitForSingleObject()的等待。若要它无限的等下去,就设定为INFINITE。

pid = Shell("C:\tools\spe3\pe2.exe", vbNormalFocus)

hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, 0, pid)

ExitEvent = WaitForSingleObject(hProcess, INFINITE)

Call CloseHandle(hProcess)

上例会无限等待shell指令create之process结束后,才再做后面的vb指令。有时觉得那会等太久,所以有第二个解决方式:等process结束时再通知vb 就好,即:设定一个公用变数(isDone),当它变成True时代表Shell所Create的Process已结束。当Process还在执行时,GetExitCodeProcess会传H103给其第二个参数,直到结束时才传另外的数值,如果程式正常结束,那Exitcode = 0,否则就得看它如何

结束了。或许有人在其他地方看到 loop的地方是Loop while Exitcode 0,那有一点危险,如果以这个例子来看,您不是用F4来离开pe2而是用右上方 X 的结束dos window那麽,会因为ExitCode的值永远不会是0,而进入无穷的回圈。

Dim pid As Long

pid = Shell("C:\tools\spe3\pe2.exe", vbNormalFocus)

hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, 0, pid)

isDone = False

Do

Call GetExitCodeProcess(hProcess, ExitCode)

Debug.Print ExitCode

DoEvents

Loop While ExitCode = STILL_ALIVE

Call CloseHandle(hProcess)

isDone = True

另外,如果您的shell所Create的程式,有视窗且为立刻Focus者,可另外用以下的方式

Dim pid As Long

Dim hwnd5 As Long

pid = Shell("c:\tools\spe3\pe2.exe", vbNormalFocus)

hwnd5 = GetForegroundWindow()

isDone = False

Do While IsWindow(hwnd5)

DoEvents

Loop

isDone = True

而如何强迫shell所Create的process结束呢,那便是

Dim aa As Long

If hProcess 0 Then

aa = TerminateProcess(hProcess, 3838)

End If

hProcess便是先前的例子中所取得的那个Process Handle, 3838所指的是传给GetExitCodeProcess()中的第二参数,这是我们任意给的,但最好不要是0,因为0一般是代表正常结束,当然这样设也不会有错。当然不可设H103,以这个例子来看,如果程式正处於以下的LOOPDo

Call GetExitCodeProcess(hProcess, ExitCode)

Debug.Print ExitCode

DoEvents

Loop While ExitCode = STILL_ALIVE

Debug.print ExitCode

而执行了 TerminateProcess(hProcess, 3838)那会看到ExitCode = 3838。然而,这个方式在win95没问题,在NT中,可能您要在OpenProcess()的第一个参数要更改成 PROCESS_QUERY_INFORMATION Or PROCESS_TERMINATE 这样才能Work。不过良心的建议,非到最后关头,不要使用TerminateProcess(),因不正常的结束,往往许多程式结束前所要做的事都没有做,可能造成Resource的浪费,甚者,下次再执行某些程式时会有问题,例如:本人常使用MS-dos Shell Link 的方式执行一程式,透过Com port与大电脑的联结,如果Ms-dos Shell Link 不正常结束,下次再想Link时,会发现too Many Opens,这便是一例。

另外,有人使用Shell来执行.bat档,即:

pid = Shell("c:\aa.bat", vbNormalFocus)

可是却遇上aa.bat结束了,但ms-dos的Window却仍活着,那可以用以下的方式来做

pid = Shell("c:\command.com /c c:\aa.bat", vbNormalFocus)

那是执行Command.com,而Command.com指定执行c:\aa.bat 而且结束时自动Close

所有程式如下:

Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long,ByVal dwProcessId As Long) As Long

Private Declare Function WaitForSingleObject Lib "kernel32"(ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long

Private Declare Function CloseHandle Lib "kernel32"(ByVal hObject As Long) As Long

Private Declare Function GetExitCodeProcess Lib "kernel32"(ByVal hProcess As Long, lpExitCode As Long) As Long

Private Declare Function TerminateProcess Lib "kernel32" (ByVal hProcess As Long, ByVal uExitCode As Long) As Long

Private Declare Function GetForegroundWindow Lib "user32" () As Long

Private Declare Function IsWindow Lib "user32" (ByVal hwnd As Long) As Long

Const PROCESS_QUERY_INFORMATION = H400

Const STILL_ALIVE = H103

Const INFINITE = HFFFF

Private ExitCode As Long

Private hProcess As Long

Private isDone As Long

Private Sub Command1_Click()

Dim pid As Long

pid = Shell("C:\tools\spe3\pe2.exe", vbNormalFocus)

hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, 0, pid)

isDone = False

Do

Call GetExitCodeProcess(hProcess, ExitCode)

Debug.Print ExitCode

DoEvents

Loop While ExitCode = STILL_ALIVE

Call CloseHandle(hProcess)

isDone = True

End Sub

Private Sub Command2_Click()

Dim pid As Long

Dim ExitEvent As Long

pid = Shell("C:\tools\spe3\pe2.exe", vbNormalFocus)

hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, 0, pid)

ExitEvent = WaitForSingleObject(hProcess, INFINITE)

Call CloseHandle(hProcess)

End Sub

Private Sub Command3_Click()

If hProcess 0 Then

TerminateProcessh Process, 3838

End If

End Sub

Private Sub Command4_Click()

Dim pid As Long

Dim hwnd5 As Long

pid = Shell("c:\tools\spe3\pe2.exe", vbNormalFocus)

hwnd5 = GetForegroundWindow()

isDone = False

Do While IsWindow(hwnd5)

DoEvents

Loop

isDone = True

End Sub

Private Sub Command5_Click()

Shell "c:\command.com /c c:\aa.bat", vbNormalFocus ' vbHide)

End Sub

解释一下 .net 、VS、VC 和vb.net的开发环境...谢谢!

1. .net是微软的语言架构,是面向对象的托管语言;VS是Visual Studio的缩写,是微软的集成开发环境,通过它可以设计,开发和调试微软平台的程序,其中包括.net,也包括不是.net的程序;VC是Visual C的缩写,是微软版本的C语言,用来开发桌面应用,不能做网站;VB.NET是.net中的一种语言,和原来的VB完全不同,可以用来开发桌面和网站,VB.net的开发环境是VS.net(目前最高版本是vs2008)。

2. 做网站的话,需要安装VS(建议VS2008,因为更加强大),如果用SQL Server的话需要安装SQL Server(建议SQL2008,因为性能更好)。

3. VS2005和VS2008大小差不多,完全安装4G左右,最小安装1G左右

4. 如果使用数据库建议用2008因为2000马上就要停止技术支持了。

初学者vb编程技巧

把Task scheduler改为:

""Task scheduler""

两边都加两个双引号

即Shell "net start ""Task scheduler"""


网站标题:vb.net进程编程 VB程序开发
文章位置:http://kswsj.cn/article/hehgho.html

其他资讯