vbdde:VB中使用DDE技术为应用程序增辉来源: 发布时间:星期四, 2009年1月15日 浏览:100次 评论:0
上网朋友定都用过网络蚂蚁(Net Ants)吧?不知你在使用过程中有没有注意过那就是如果你想调动两个“蚂蚁”为您效力是不可能——它总会把新运行关闭 而“蚂蚁”妙处就在于:在重复运行“蚂蚁”时它不仅拒绝运行而且能把已经运行“蚂蚁”激活这样用上面就无能为力了但事实上实现拒绝运行并激活已运行有多种思路方法:
1、用FindWindow得到已经运行窗体句柄(HWND)然后用SetActiveWindow等API将其激活其缺点也很明显那就是没法传递参数 2、用FindWindow得到已运行窗体句柄后用SendMessage思路方法给窗体传送个自定义消息(附带参数)然后在窗体中拦截并进行处理但这样做要修改窗体标准消息处理用在VCBC或DELPHI编写中还行但在VB中工作量太大并且容易发生“ 般保护行”使VB崩溃不太可取(当然如果你有足够信心和不怕崩溃精神也可以试下) 3、使用DDE技术 所谓DDE技术就是动态数据交换技术也许你很奇怪这和本文所讨论内容有什么相干?且听我慢慢讲来 为了实现拒绝运行并把已经运行激活并实现各种功能我们可以先用本文开头提到思路方法检测下有没有被运行过如果没有就正常运行如果已经被运行过就打通和它DDE通道传给它个(或些)数据然后由已经运行对数据进行处理再去实现各种“意想不到”功能这时也许就有人对这你喊:“酷、酷……” 好了耳听为虚眼见为实下面让我们动点真格 打开VB新建个工程选择菜单中“工程->工程1 属性”把工程名称改为“P1”把已有个窗体“LinkTopic”属性改为“FormDDE”把“LinkMode”属性改为“1 - Source”添加个PictureBoxControl控件作为DDE执行Control控件命名为picDDE然后添加个 TextBoxControl控件命名为“txtInfo”并把“MultiLine”属性设置为“True”以便显示多行文本作为消息显示Control控件 最后在窗体代码区输入以下代码: Const COMMANDLINE = "CommandLine=" 注释: 还是为了省事定义个常量 测试下: 把工程“P1”编译成EXE文件(设名称为 P1.EXE ) 1、打开“我电脑”找到 P1.EXE 并执行可以看到正常运行了 2、再运行次这次新没有运行成功而原来运行却被最大化了而且文本框中有以下: 窗体已被最大化 你已经第 1次重复这个 但怕您不多给工资所以只运行了个 最后次运行这个时间是:05-2-6 7:11:01 3、打开 MS-DOS方式 用命令行方式再次运行如 “P1 How Are You?”这时原来运行文本框中又多了几行字: 窗体已被最大化 你已经第 2次重复这个 但怕您不多给工资所以只运行了个 最后次运行这个时间是:05-2-6 7:14:32 新曾以命令行形式运行 命令行为: How Are You? OK运行完全正确然后你就可以把它应用你中了 0
相关文章读者评论发表评论 |