VB:程序运行通知

VB:程序运行通知,第1张

看看下面这篇文章 自己研究一下

如果是重复运行的话就把command发送过去就可以了

程序只运行一个实例,再次双击时把前一个激活的功能怎么实现

动态数据交换技术DDE

faq-it.org/asm/

打开VB,新建一个工程,选择菜单中的“工程->工程1属性”,把工程名称改为“P1”,把已有的一个窗体的“LinkTopic”属性改为“FormDDE”,把“LinkMode”属性改为“1-Source”,添加一个PictureBox控件作为DDE执行控件,命名为picDDE。然后睁胡添加一个TextBox控件,命名为“txtInfo”,并把“MultiLine”属性设置为“True”,以便显示多行文本,作为消息显示控件。

最后在窗体代码区输入以下代码:

ConstCOMMANDLINE="CommandLine="注释:还是为了省事,定义一个常量

PrivateSubForm_LinkExecute(CmdStrAsString,CancelAsInteger)

StaticlngCountAsLong

DimInfoAsString

Info=txtInfo.Text注释:保留原有信息

SelectCaseCmdStr注释:CmdStr是DDE程序传送过来的数氏参数

Case"Max"悉毕拦

Me.WindowState=2

Info=Info vbNewLine "窗体已被最大化"

Case"ShowTime"

Info=Info vbNewLine "最后一次运行这个程序的时间是:" Str(Now)

Case"Count"

lngCount=lngCount 1

Info=Info vbNewLine "你已经第" Str(lngCount) "次重复调用这个程序。"_

vbNewLine "但怕您不多给工资,所以只运行了一个^_^"

EndSelect

IfLeft(CmdStr,Len(COMMANDLINE))=COMMANDLINEThen

Info=Info vbNewLine "新程序曾以命令行形式运行" vbNewLine "命令行为:"_

vbNewLine Right(CmdStr,Len(CmdStr)-Len(COMMANDLINE))

EndIf

txtInfo.Text=Info注释:把信息显示出来

Cancel=False

EndSub

PrivateSubLinkAndSendMessage(ByValMsgAsString)

DimtAsLong

picDDE.LinkMode=0注释:--

picDDE.LinkTopic="P1&ampbrvbarFormDDE"注释:&ampbrvbar______连接DDE程序并发送数据/参数

picDDE.LinkMode=2注释:&ampbrvbar “&ampbrvbar”为管道符,是“退格键”旁边的竖线,

picDDE.LinkExecuteMsg注释:--不是字母或数字!

t=picDDE.LinkTimeout注释:--

picDDE.LinkTimeout=1注释:&ampbrvbar______终止DDE通道。当然,也可以用别的方法

picDDE.LinkMode=0注释:&ampbrvbar 这里用的是超时强制终止的方法

picDDE.LinkTimeout=t注释:--

EndSub

PrivateSubForm_Load()

IfApp.PrevInstanceThen注释:程序是否已经运行

Me.LinkTopic=""注释:这两行用于清除新运行的程序的DDE服务器属性,

Me.LinkMode=0注释:否则在连接DDE程序时会出乱子的

LinkAndSendMessage"Max"注释:--

LinkAndSendMessage"Count"注释:&ampbrvbar-----连接DDE接受程序并传送数据/参数

LinkAndSendMessage"ShowTime"注释:--

IfCommand<> ""Then注释:如果有命令行参数,就传递过去

LinkAndSendMessageCOMMANDLINE Command

EndIf

End注释:结束新程序的运行

EndIf

EndSub

测试一下:

把工程“P1”编译成EXE文件(设名称为P1.EXE)

1、打开“我的电脑”,找到P1.EXE并执行。可以看到程序正常运行了。

2、再运行一次,这次新程序没有运行成功,而原来运行的程序却被最大化了,而且文本框中有以下

字符:

窗体已被最大化

你已经第1次重复调用这个程序。

但怕您不多给工资,所以只运行了一个^_^

最后一次运行这个程序的时间是:00-2-67:11:01

3、打开MS-DOS方式,用命令行方式再次运行程序,如“P1HowAreYou?”

这时原来运行的程序文本框中又多了几行字:

窗体已被最大化

你已经第2次重复调用这个程序。

但怕您不多给工资,所以只运行了一个^_^

最后一次运行这个程序的时间是:00-2-67:14:32

新程序曾以命令行形式运行

命令行为:

HowAreYou?

OK,运行完全正确,然后你就可以把它应用的你的程序中了。

1. 用VB新建镇哪一个此橘标准EXE程序

2. 用 Lable 、TextBox 和 CommandButton 控件在窗体中设计界面如下:

3. 双击“抽取”按钮,并在代码窗御扒码口中修改代码如下:

Private Sub Command1_Click()

  Dim v1 As Long, v2 As Long, v3 As Long

  v1 = Val(Text1)

  v2 = Val(Text2)

  v3 = Int(Rnd(1) * (v2 - v1 + 1)) + v1

  Text3.Text = v3

End Sub

4.按F5运行,并进行测试即可


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

原文地址: https://outofmemory.cn/yw/12388722.html

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

发表评论

登录后才能评论

评论列表(0条)

保存