powerbuilder判断程序是否运行

season1021 2013-02-17 11:23:02
想用PB判断一个Windows程序是否在运行着。
用以下函数,老是不成功:(Win7下面) 大家有更好的办法么?
integer li_size=144,li_result
string ls_executable=Space(li_size)
integer li_module_usage
uint li_module_handle
li_result=FindExecutable(as_filename,as_directory,ls_executable)
IF li_result<32 THEN Return FALSE
//如可执行文件已载入,获取这个执行文件的句柄
li_module_handle=GetModuleHandle(ls_executable)
IF li_module_handle<1 THEN
//没有载入
Return FALSE
ELSE
//获取有多少个实例被载入
li_module_usage=GetModuleUsage(li_module_handle)
Return TRUE
END IF
...全文
1674 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
A啦Dbit 2014-03-24
  • 打赏
  • 举报
回复
filemove失败,证明已被运行或占用
hovoy 2014-03-23
  • 打赏
  • 举报
回复
支持一下。我也在关注这个问题。。
chentao 2014-01-22
  • 打赏
  • 举报
回复
我自己写的一个DLL文件,导出了IsRun函数,传入可执行文件的路径即可判断程序是否在执行,需要的留下邮箱或者给我留言!
soar_angel 2013-04-08
  • 打赏
  • 举报
回复
这个问题我以前遇到过,且已经解决: http://bbs.csdn.net/topics/390192251
C++实习生 2013-03-15
  • 打赏
  • 举报
回复
另外一个方法,是使用DLL,创建一个共享内存,记录你程序的运行资料。 这样也可以处理了。
C++实习生 2013-03-15
  • 打赏
  • 举报
回复
判断程序是否运行,可以使用一个函数 HANDLE CreateMutex( LPSECURITY_ATTRIBUTES lpMutexAttributes, BOOL bInitialOwner, LPCTSTR lpName ); 创建一个互斥变量,每一次运行返回一个句柄。 如果是第二次运行,创建互斥量就是会失败, 返回值有可能是ERROR_ALREADY_EXISTS说明互斥变量已经存在。 这是我的一点创建,自己看MSDN参考吧。
pcwe2002 2013-02-17
  • 打赏
  • 举报
回复
这个只能判断当前进程是否载入,判断外部程序应该遍历进程,查看程序是否存在
season1021 2013-02-17
  • 打赏
  • 举报
回复
哦?还得遍历进程呢? FindExecutable判断进程是否载入,并不能判断外部程序是否运行是么? 看来有点复杂啊。。
PowerBuilder 8.0基础篇》各章例程及运行注意事项: 第1章 窗口与控件 1.1 制作Splash窗口 -- Splash 1.2 制作美观的状态条 -- StatusBar 1.3 系统热键的实现 -- HotKey 1.4 创建图标栏应用 -- Systray 1.5 MDI窗口显示背景图片 -- MDIBmp 1.6 定制有特色的图标按钮 -- PictureButton 1.7 导航图界面的制作 -- FlowChat 1.8 制作图文并茂的菜单 -- BmpMenu 1.9 窗口内控件大小与窗口大小同步 -- Autosize 1.10 动态创建控件 -- DynamicControl 1.11 控件融合技术 -- SplitBar 1.12 窗口中控件显示 -- ToolTips 第2章 数据窗口 2.1 数据窗口组合条件查询 -- Search 2.2 数据窗口中实现增量查询 -- zlcx 2.3 数据窗口的多表更新 -- UpdateMultable 2.4 单击标题栏对数据窗口排序 -- TitleSort 2.5 数据窗口中用回车键实现Tab键切换列焦点功能 -- Tab-Enter 2.6 动态数据窗口 -- DynamicDataWindow 2.7 复合数据窗口 -- AddTitle 2.8 数据窗口打印处理 -- PrintPreview/PrintPreview3 (PrintPreview和PrintPreview3内容是相同的,但在实现上有些区别) 2.9 捕捉DropDownDataWindow列相关键事件 -- dddw 2.10 数据窗口中闪烁文字显示的实现 -- dwTimer 2.11 在GRID风格DataWindow中调整列顺序 -- ChangeColumnOrder 2.12 利用数据窗口计算表达式 -- Calculate 2.13 获取数据窗口中列在数据库中的实际域名 -- GetFieldName 2.14 数据窗口的最大/最小化显示实现 -- dwResize 第3章 PowerScript 本章所要使用的资源文件--pic 3.1 PowerBuilder8新增函数、功能使用简介 3.1.1 文件系统函数 -- FileFunction 3.1.2 打印函数 -- Printer 3.1.3 系统函数 -- SysFunction 3.2 记录系统出错信息 -- SysError 3.3 注册表函数应用 -- Regedit 3.4 连接任意ODBC数据源 -- ODBCList 3.5 在应用程序中关闭外部程序 -- CloseApp 3.6 在应用程序中启动控制面板项目 -- RunControl 3.7 判断是否处于开发模式 -- GetMode 3.8 非TAB分隔符文本文件倒入数据窗口 -- ImportFile 3.9 编译后的程序带参数运行 -- MyApp 3.10 取当月的最后一天 -- GetLastDay 3.11 限制程序运行次数 -- OnlyOnce 3.12 打印文件的打印 -- prnplt 3.13 程序中实现拨号连接 -- Dial-up 第4章 数据库与SQL 4.2 PowerBuilder + ASA7的C/S编程 -- Client-Server 4.4 动态SQL -- DynamicSQL 4.5 存取二进制大对象 -- Blob 4.6 PowerBuilder应用取服务器时间 -- GetServerTime 4.7 PowerBuilder扩展属性系统表及其应用 -- SystemTable 4.8 程序中备份Adaptive Server Anywhere 7 数据库 -- DbBackup 第5章 用户对象 5.1.1 创建定制的用户对象(创建弹压式按钮) -- ToggleButton 5.1.2 创建标准的可视用户对象(扩展的数据窗口) -- Datawindow 5.1.3 创建可视外部用户对象(状态条) -- StatusBar 5.2.2 创建通用不可视用户对象(FTP应用) -- Ftp 第6章 API 6.2.1 改变窗口的显示风格 -- ChangeWindow 6.2.2 使窗口的图片透明化 -- TransWindow 6.2.3 改变窗口的关闭形式 -- CloseStyle 6.2.4 PB中实现图形的复制与粘贴以及图像的简单处理 -- PictureBox 6.3.1 获得系统的内部进程 -- System Thread 6.3.2 获得系统基本信息 -- SystemInformation 6.4.1 检测物理网络的连通情况 -- Mping 6.4.2 关闭,重启,注销计算机 -- ExitWindow 6.4.3 通过标准字体对话框来设置字体 -- SetFont 第7章 pipeline 数据管道 -- pipeline 第8章 组件 将数据窗口中的数据导出到Word中 -- pbtoword 第10章 Web PowerBuilder与WEB开发 -- web 第11章 Jaguar Jaguar CTS组件编程 -- Jagar Test 注意事项: 1. 第4章部分例程需要配置名为pbbook的ODBC数据源。 2. 某些例程可能会因环境原因而无法运行,但源代码可供参考。
pb案例开发集锦,适合初学者学习,有经验也可以看看,里头有很多巧妙的应用。我在这里列出所有的目录。 源程序使用说明一、功能 本光碟中提供了与图书完全一致的程序源代码和编译好的可执行文件,读者可以直接执行这些可执行文件,以便更加直观的体会案例运行的效果;如果想进一步研究案例的源代码,可以将相应文件夹下的文件在PowerBuilder10.0开发环境中打开,然后编译运行。二、内容 本光碟中包含图书中的每个案例的源代码、可执行文件和所有资源文件,具体组织结构如下: 第1章 窗体与控件 案例1 创建应用、窗口与控件 案例2 目录浏览器 案例3 文件浏览器 案例4 图片浏览器 案例5 用户密码验证 案例6 等待窗口 案例7 使用滚动条 案例8 使用进度条 案例9 电子时钟 案例10 修改系统时间 案例11 颜色对话框 案例12 IP地址编辑框 案例13 人民币大小写金额的转换 第2章 菜单与MDI窗口 案例1 创建窗口菜单 案例2 带底图的MDI窗口 案例3 带浮动图标的工具栏 案例4 隐藏和显示任务栏 案例5 右键菜单 案例6 调用HtmlHelp文件 案例7 动态打开窗口 案例8 记事本 第3章 数据处理基础 案例1 创建数据库 案例2 设置表格颜色 案例3 比例图显示数据 案例4 动态设置数据窗口风格 案例5 使用选项卡 案例6 使用下拉子数据窗口 案例7 动态设立数据窗口 案例8 在窗口中编辑数据 案例9 学生学号排序 案例10 数据窗口排序 案例11 利用DataStore共享数据 案例12 关联与条件查询 案例13 数据查询 案例14 模糊查询 案例15 键盘模拟器 案例16 将数据保存到Word文件中 案例17 将数据保存到Excel文件中 第4章 数据库高级操作 案例1 定义数据窗口的检索参数 案例2 窗口之间传递函数 案例3 在SQL查询中使用变量 案例4 在Grid类型报表的Header区增加文字标题 案例5 使用动态SQL查询数据 案例6 两种不同查询方法的比较 案例7 外部数据源窗口的使用 案例8 更新由多个表生成的数据窗口 案例9 把数据窗口信息存为Html格式文件 案例10 数据窗口查询模式的应用 案例11 数据窗口的树形视图表示 案例12 数据窗口中实现字段的组合 案例13 数据窗口中的数据共享 第5章 网络与通信 案例1 Ping指定IP地址范围内的计算机 案例2 实现串口通信 案例3 制作收发电子邮件程序 案例4 使用组件收发电子邮件 案例5 Web服务器程序 案例6 调用WinFax发送传真 案例7 超级链接的制作 案例8 使用超级链接控件 案例9 获取本机名和IP地址 案例10 使用多线程下载网页 案例11 Socket通信客户端 案例12 Socket通信服务器端 案例13 FTP客户程序 第6章 API函数的应用 案例1 使用API函数实现透明窗体 案例2 制作位图菜单 案例3 控制窗口 案例4 获得系统信息 案例5 创建文件和目录 案例6 显示和设置时间 第7章 报表打印 案例1 报表打印预览 案例2 报表的打印 案例3 数据窗口的预览和打印实现 案例4 使用混合编程实现打印控制 案例5 使用PowerPrinter动态链接库实现打印扩展 案例6 数据窗口的打印 第8章 多媒体与图形 案例1 播放Gif动画 案例2 播放Flash动画 案例3 播放AVl文件 案例4 可连续播放的音乐播放器 案例5 带记忆的MP3播放器 案例6 播放WAV 案例7 播放指定的AVI-MID-WAV文件 案例8 CD播放器 案例9 播放光驱内所有VCD节目 案例10 生肖查询 案例11 位图动画 案例12 浏览大幅BMP图片 案例13 利用Picture制作小动画 案例14 制作屏幕保护程序 案例15 设计滚动字幕 案例16 制作动画光标 第9章 文件与系统 案例1 判断驱动器属性 案例2 清空回收站 案例3 使应用程序窗口总在最顶层 案例4 将程序设置成自动执行的程序 案例5 控制光驱的弹开与关闭 案例6 修改显示器像素色值 案例7 获得应用程序的当前路径 案例8 获取磁盘序列号 案例9 在程序中启动ODBC数据源管理器 案例10 实现定时关闭计算机 第10章 其他技巧与应用 案例1 Windows窗口的枚举 案例2 多线程的实现 案例3 使用PB获得CPU的速度、型号和生产商 案例4 磁盘格式化的实现 第11章 综合应用案例 案例1 库存管理系统 案例2 C/S应用程序设计案例――工资管理 案例3 B/S应用程序举例―――简单链接与查询 三、运行环境 系统环境:Windows XP/Intel P4/1.7G/256M 开发工具:PowerBuilder10.0+Power Dynamo3.6 IIS信息服务器:Internet Information Server 5.0 数据库系统:Adaptive Server Anywhere 8.0 网页设计工具:FrontPage 2000四、注意事项 1、运行本书涉及数据库的实例时,必须设置数据库连接,关于数据库连接的设置在本书"第3章 案例1"有详细说明。读者自己配置数据库,运行前必须重新设置路径。所有使用到的数据库文件都在光盘根目录下“数据库”文件夹内,请根据本机有关设置重新定位源代码相关设置。数据库有问题的请仔细调试,详细情况看设置。 2、界面设置图片的实例必须重新设置图片路径,大部分图片在在本例目录下,读者也可以自行选择图片。许多实例运行后的界面没有图片,与书稿中的图不一致,请仔细检查是否是源代码中的路径的问题,是否是因为用的绝对路径的问题。 3、少数几个程序需要特殊的设置,特别是客户服务器结构的应用程序,请参看书中的具体设置。 4、少数程序可执行文件出现问题可生成EXE+PBD模式,问题就可以解决!光盘中例程出现的问题:FAQ:第2章 案例2 无图,运行前必须重新设置路径第5章 案例1 Ping不了只有单独连接因特网正常运行,通过局域网、宽带等连接因特网(或曾经连接过局域网),IP地址已经多次改变,不符合PING的原理。第5章实例4 不能建立邮件列表需要设置端口、服务器参数等第5章实例8 无图,运行前必须重新设置路径
Powerbuilder 9.0实用教程》源代码 1.本源代码包括以下章节源代码: 第01章 认识PowerBuilder 9.0、第05章 创建应用程序、第06章 创建窗体、第07章 创建菜单和工具栏、第10章 应用程序的调试和发布、第11章 典型小型实例赏析、第12章 图书管理系统实例和第13章 学生选课系统实例。 2.源代码使用方法参见《附录A 源代码的使用方法》文件。 __________________________________________________________________ 注意: 1.建议读者下载源文件后,将该源文件进行备份,读者使用副本源文件进行学习,这样一但出问题就不用再从网上下载了。 2.将源文件中“数据库文件”文件夹一定要复制到C盘根目录下,这样才能保证您连接数据库文件成功,具体方法参见《附录A 源代码的使用方法》。 对于书中源代码除了数据库外其他都能正常使用,而示例中数据库需要用户在自己的计算机上注册后才能使用,如果不注册数据源就运行应用程序是检索不到任何数据的,下面以连接学生选课系统数据库为例具体介绍如何连接数据库文件。 第1章 认识PowerBuilder 9.0 1 1.1 PowerBuilder 9.0简介 1 1.1.1 中国软件业现状 1 1.1.2 为什么要学习PowerBuilder 9.0 2 1.1.3 PowerBuilder的概述 2 1.1.4 PowerBuilder的特点 3 1.1.5 PowerBuilder 9.0的新特性 6 1.2 安装PowerBuilder 9.0软硬件需求 9 1.2.1 软件环境需求 9 1.2.2 硬件环境需求 9 1.3 PowerBuilder 9.0功能界面介绍 10 1.3.1 PowerBuilder 9.0界面简介 10 1.3.2 常用功能菜单 10 1.4 工作环境设置 16 1.4.1 工具栏的设置 16 1.4.2 窗口排列 19 1.4.3 快捷键设置 20 1.4.4 系统选项设置 21 1.5 用5分钟制作一个简单实例 22 1.5.1 实例运行界面 22 1.5.2 新建一个工作空间对象 22 1.5.3 新建一个应用程序对象 23 1.5.4 创建窗体 23 1.5.5 为应用程序添加open事件代码 25 1.6 小结 27 1.7 习题 27 第2章 编程基础知识 28 2.1 PowerScript脚本语言书写规则 28 2.1.1 忽略大小写 28 2.1.2 语句的断行、续行和分割 28 2.1.3 注释 29 2.2 数据类型 29 2.3 变量和作用域 30 2.3.1 定义变量 30 2.3.2 引用变量 30 2.3.3 变量的作用域 30 2.4 操作符 31 2.5 标识符 32 2.5.1 标识符的构成 32 2.5.2 匈牙利命名法 32 2.6 常用代词 33 2.7 控制语句 34 2.7.1 判断语句 34 2.7.2 循环语句 36 2.8 结构 38 2.8.1 创建结构 38 2.8.2 使用结构 40 2.9 函数 40 2.9.1 Open()和Close()函数 41 2.9.2 MessageBox()函数 41 2.9.3 类型转换函数 41 2.9.4 类型判断函数 42 2.9.5 其他函数 42 2.10 ODBC数据源与专用数据库接口 43 2.10.1 什么是ODBC数据源 43 2.10.2 专用数据库接口 43 2.10.3 连接数据库 44 2.10.4 配置ODBC 48 2.11 SQL语言 49 2.11.1 SQL语言的格式 49 2.11.2 在PowerBuilder 9中使用SQL语句 51 2.12 类和对象的概念 56 2.12.1 继承 57 2.12.2 重载和多态性 57 2.12.3 封装 57 2.12.4 属性、事件和函数 57 2.13 在PowerBuilder 9.0中实现面向对象编程 58 2.13.1 创建对象 58 2.13.2 设置对象属性 59 2.13.3 编写事件代码 59 2.13.4 实现继承对象 60 2.14 用户对象和用户事件 61 2.14.1 用户对象分类 61 2.14.2 定义用户对象 62 2.14.3 使用用户对象 64 2.14.4 用户事件 66 2.15 小结 67 2.16 习题 68 第3章 创建数据库 69 3.1 数
第1章 窗口与控件 1.1 制作Splash窗口 -- Splash 1.2 制作美观的状态条 -- StatusBar 1.3 系统热键的实现 -- HotKey 1.4 创建图标栏应用 -- Systray 1.5 MDI窗口显示背景图片 -- MDIBmp 1.6 定制有特色的图标按钮 -- PictureButton 1.7 导航图界面的制作 -- FlowChat 1.8 制作图文并茂的菜单 -- BmpMenu 1.9 窗口内控件大小与窗口大小同步 -- Autosize 1.10 动态创建控件 -- DynamicControl 1.11 控件融合技术 -- SplitBar 1.12 窗口中控件显示 -- ToolTips 第2章 数据窗口 2.1 数据窗口组合条件查询 -- Search 2.2 数据窗口中实现增量查询 -- zlcx 2.3 数据窗口的多表更新 -- UpdateMultable 2.4 单击标题栏对数据窗口排序 -- TitleSort 2.5 数据窗口中用回车键实现Tab键切换列焦点功能 -- Tab-Enter 2.6 动态数据窗口 -- DynamicDataWindow 2.7 复合数据窗口 -- AddTitle 2.8 数据窗口打印处理 -- PrintPreview/PrintPreview3 (PrintPreview和PrintPreview3内容是相同的,但在实现上有些区别) 2.9 捕捉DropDownDataWindow列相关键事件 -- dddw 2.10 数据窗口中闪烁文字显示的实现 -- dwTimer 2.11 在GRID风格DataWindow中调整列顺序 -- ChangeColumnOrder 2.12 利用数据窗口计算表达式 -- Calculate 2.13 获取数据窗口中列在数据库中的实际域名 -- GetFieldName 2.14 数据窗口的最大/最小化显示实现 -- dwResize 第3章 PowerScript 本章所要使用的资源文件--pic 3.1 PowerBuilder8新增函数、功能使用简介 3.1.1 文件系统函数 -- FileFunction 3.1.2 打印函数 -- Printer 3.1.3 系统函数 -- SysFunction 3.2 记录系统出错信息 -- SysError 3.3 注册表函数应用 -- Regedit 3.4 连接任意ODBC数据源 -- ODBCList 3.5 在应用程序中关闭外部程序 -- CloseApp 3.6 在应用程序中启动控制面板项目 -- RunControl 3.7 判断是否处于开发模式 -- GetMode 3.8 非TAB分隔符文本文件倒入数据窗口 -- ImportFile 3.9 编译后的程序带参数运行 -- MyApp 3.10 取当月的最后一天 -- GetLastDay 3.11 限制程序运行次数 -- OnlyOnce 3.12 打印文件的打印 -- prnplt 3.13 程序中实现拨号连接 -- Dial-up 第4章 数据库与SQL 4.2 PowerBuilder + ASA7的C/S编程 -- Client-Server 4.4 动态SQL -- DynamicSQL 4.5 存取二进制大对象 -- Blob 4.6 PowerBuilder应用取服务器时间 -- GetServerTime 4.7 PowerBuilder扩展属性系统表及其应用 -- SystemTable 4.8 程序中备份Adaptive Server Anywhere 7 数据库 -- DbBackup 第5章 用户对象 5.1.1 创建定制的用户对象(创建弹压式按钮) -- ToggleButton 5.1.2 创建标准的可视用户对象(扩展的数据窗口) -- Datawindow 5.1.3 创建可视外部用户对象(状态条) -- StatusBar 5.2.2 创建通用不可视用户对象(FTP应用) -- Ftp
C/S程序自动升级是一个很重要的功能,原理其实很简单,一般包含两个程序一个是主程序,也就是除了升级功能以外的程序 主要包括以下几点:   1 比较版本  2下载文件  3更新文件 4启动主程序。但其中的需要注意的细节很多。      一般服务端会有一个配置文件包含最新更新的文件信息的配置文件,当然这些更新信息也可以存到数据库,或者其他地方。客户端(也就是需要更新的那部分程序)也有一个配置文件包含客户端版本信息,这些信息可以存到专门的一个配置文件中,或者是config文件中,没有一定的规定,可以根据实际设计。    在客户端程序启动时,先启动更新程序通过比较本地版本和服务端最新的版本信息判断是否有新版本,如果有可以直接下载,下载完成替换成功后并更新客户端版本信息,启动主程序。             缺点:如果更新速度由于更新的文件很大或者网速很慢,用户不得不等待很长时间,直到下载完成或者下载失败。             优点:处理完成后,启动的直接就是更新后的程序。不会出现由于主程序运行导致替换文件时提示文件在使用,不能替换之类的错误。    另一种方法是, 在客户端段程序启动时,启动更新程序,但更新程序不做版本判断,到客户端更新目录下检查有没有下载的新版本,如果有就更新主程序并更新客户端版本信息,然后启动主程序,如果没有就直接启动主程序。由主程序判断是否有新版本,并在后台下载把文件放到客户端更新目录中,下载完成后,提示用户退出主程序,重新启动,在启动时由更新程序并更新客户端和客户端版本信息。                 缺点:由于下载是在主程序的后台运行,可能会影响主程序的处理速度。             优点:避免了由于下载导致用户长时间的等待。

680

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder API 调用
社区管理员
  • API 调用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧