今日更新
技术新闻
精彩专题
IBM软件技术专区
微软开发专区
技术文档中心
编程语言
网络通信
网络安全
LINUX/UNIX
软件工程与管理
数据库开发
WEB开发
企业应用与开发
移动开发
资源中心
原创专栏
开放系统世界
人才与培训
技术天地论坛
厂商列表
社区推荐

· 女性身体内部人体受孕..
· 十部顶级的变态与情色..
· 感情放纵让我毁了两个..
· 当我撞见姐姐和男友在..
· 卖淫少女惨遭泄愤民工..
· 偷拍街上的走光mm绝对..
· 百度打击google的广告
· 港娱乐圈与黑社会揭秘
赛迪网>>技术应用>>技术开发
关键字: c++;api;windows应用程序;调用
来  源:
如何在c++ builder中调用windows应用程序
作者:孙航东 发文时间:2002.03.06
一般,windows程序员在编写windows程序时,为了降低编程的难度和缩短编程的时间,经常会调用各种windows资源,如画笔,写字板等资源。对于其他的程序设计语言,我们一般使用 api函数来实现着一功能,那么在borland c++ builder 上我们又如何实现呢?最近笔者在编写电子屏显示软件时,用api函数实现了该功能。

现以使用api函数调用windows画笔为列,把该方法介绍如下:

1、启动 c++ builder 进入菜单file|new application创建一个新项目,将该项目存盘,得到含有一个主窗口的项目。在主窗口上添加一个打开图片对话框控件OpenPictureDialog1和按扭控件Button1。

2、在主文件的文件头添加#include <shellapi.h>

3、在头文件的private 处添加 char BmpExec[100];

4、在Button1的OndbClick事件处添加如下代码:

void __fastcall TMainForm1::Button1Click(TObject *Sender)

{

AnsiString TempName;

FileClose(FileCreate("testest.bmp"));

FindExecutable("testest.bmp",NULL,BmpExec);//返回可执行文件名的句柄//

DeleteFile("testest.bmp");//删除文件//

OpenPictureDialog1->DefaultExt = String("BMP");

OpenPictureDialog1->Filter ="图片文件(*.bmp)|*.bmp";

OpenPictureDialog1->FileName="*.bmp";

if (OpenPictureDialog1->Execute())

{

if (OpenPictureDialog1->FileName.AnsiPos(".")<1)

openpicturedialog1->
FileName=OpenPictureDialog1->FileName+".BMP";

//给没有扩展名的文件加上扩展名,此时FileName为文名的全名//

CloseHandle(CreateFile(OpenPictureDialog1->FileName.c_str(),//参数1 为文件名//

GENERIC_WRITE, //参数2 文件的访问模式:设置为文件可写并且文件指针//

FILE_SHARE_WRITE, //参数3 文件的共享模式:如果写访问允许文件可被修改//

NULL, //参数4 安全属性: 用缺省的操作符//

OPEN_ALWAYS, //参数5 如果文件不存在,如何创造文件:设置为存在则打开,如不存在则新建//

FILE_ATTRIBUTE_NORMAL, //参数6,文件的属性和标志,文件没有其他的属性//

));//关闭打开的事物句柄//

//以上的代码使文件设置为共享,从而使下面的代码顺利执行//

TempName=AnsiString(BmpExec); //把char 转换成AnsiString//

TempName=TempName+" "+OpenPictureDialog1->FileName;//应用程序名+相应的被处理文件//

WinExec(TempName.c_str(),SW_SHOWNORMAL);//执行应用程序//

}

}

5、编译执行。当双激按扭Button1时,程序出现打开图片文件的对话框,选则要打开的bmp文件,便可以调用windows的画笔打开自己选定的bmp文件了。

在每一条语句的后面,笔者都加了注释,有兴趣的朋友可以一试。




赛迪网推出“IT博客”,花不到一分钟就完成注册
评论】 【推荐】 【 】 【打印】 【关闭

·Linux专区· ·黑客攻防·
· Linux下添加硬盘、分区、格式化任务详解
· FreeBSD服务器的安装与优化之优化篇
· 初学者入门:FreeBSD服务器的安装与优化
· 金企鹅杯两岸四地开源软件大赛圆满结束
· 如何提高Linux系统安全性的十大招数
· 构筑Linux防火墙之为个人用户设置防火墙
· 谁更安全?黑客眼中的防火墙与路由器
· 识破骗局 练就识别QQ活动真伪火眼金睛
· 应用安全大有可为:目的、挑战、总结
· 道高一尺魔高一丈:安全防御的动感魅力
· 警惕网络“内”院起火 积极谋求安内之路
· HHCTRL漏洞被黑客利用 疯狂传播木马
·中国信息化· ·成功案例·
· ERP普及化是饮鸩止渴 精细化才是应用之道
· 赛门铁克第八期《互联网安全威胁报告》解析
· 抢食“数字工商” 国产中间件杀出血路
· 从IBM等操作系统的发展看软件创新的启示
· 服务成就蓝色快车 品牌是怎样炼成的?
· 三大技术应用大会合为一体甲骨文上演三重奏
· 南阳教育城域网 拆掉学校间的“围墙”
· 金算盘助申意美步入信息化快车道
· 不为人知的索尼信息化 谁是幕后英雄?
· InforBus/Q在穗高速路联网收费系统中的应用
· J2EE构建最新金融理念和运作模式的网上银行
· 食品安全令人担心 信息化能否保驾护航
*姓  名: 更多资料 了解方案 认识厂商
*单位名称:
*联系电话:
*电子邮件:
    
◆ 相关文章   ◆ 站内热点推荐
· 网管员论坛
· 开发者之家
· WLAN无限未来
· 我是如何掉进C#的……
· 中国“人件”非正式调查

   
合作网站: IBM dW中国网站 LinuxAID 软件工程专家网 中国系统分析员 UMLChina MATRIX Mobile2008 JavaResearch 华储网 UML软件工程组织 中国JAVA手机网 JAVA中文站 金山在线 海量科技