怎样开发控制面板程序(CPL程序)

面板小程序开发工具及调试功能详细介绍 为了能够在Tuya MiniApp Tools中运行面板小程序,引入了面板开发工具来模拟面板运行环境,面板开发工具现已支持虚拟设备及真机设备调试,同时能够更方便地调试 DP 下发上报。 阅读详情
怎样开发控制面板程序(CPL程序)
    CPL程序是动态链接库(DLL)的一种变形,只不过扩展名为.cpl、入口函数为CPlApplet()而不是DllMain()罢了,编写起来其实很简单。
先创建一个dll工程,写下如下代码

#include <windows.h>
#include <cpl.h>
#include <cplext.h>
extern "C" __declspec(dllexport) long __stdcall CPlApplet(HWND hwndCPL,UINT uMsg,LPARAM lParam1,LPARAM lParam2);

long __declspec(dllexport) __stdcall CPlApplet(HWND hwndCPL,UINT uMsg,LPARAM lParam1,LPARAM lParam2)
{
    LPNEWCPLINFO cpl;//LPNEWCPLINFO结构可在CPL.H头文件中查看
    long result=0;
    switch(uMsg)//判断传来的信息
    {
    case CPL_INIT://第一个信息,在控制面板调入时产生
        result=1;
        break;
    case CPL_GETCOUNT://第二个信息,在控制面板调入时产生
        result=1;
        break;
    case CPL_INQUIRE://第三个信息,当控制面板查询时产生
        result=0;
        break;
    case CPL_NEWINQUIRE://第三个信息,当控制面板查询时产生
        cpl=LPNEWCPLINFO(lParam2);// 将lParam2中的指针传给mycpl
        cpl->dwSize=sizeof(NEWCPLINFO);
        cpl->dwFlags=0;//标志变量 一般设为0
        cpl->dwHelpContext=0;//帮助句柄一般设为0
        cpl->lData=0;
        cpl->hIcon=(HICON)LoadIcon(NULL,IDI_WINLOGO);
        cpl->szHelpFile[0]='/0';//帮助文件
        strcpy(cpl->szName,"控制面板演示程序");//在图标下显示的说明文字
        strcpy(cpl->szInfo,"开发自己的控制面板程序");// 在控制面板状态栏中显示的说明信息
        result=0;
        break;
    case CPL_DBLCLK://当图标被双击时
        MessageBox(hwndCPL,"这是一个CPL试验程序","你好",MB_OK);
        result=0;
        break;
    case CPL_STOP://当用户关闭自已的程序时产生
        result=1;
        break;
    case CPL_EXIT://当控制面板关闭时产生,系统使用FreeLibrary()释放
        result=0;
        break;
    default:
        break;
    }
    return result;
}

    编译成一个dll文件。

  程序说明:

  CPL程序的运行流程是基于发送到程序的一系列消息。

  当用户打开“控制面板”的时候,系统将遍历System目录下的所有CPL程序,并给它们传送CPL—INT消息。这时,CPL程序就可以做一些初始化工作,然后返回非零值,如果返零,程序将被终止。如果CPL—INT消息处理完成后,CPL程序将接收到CPL—GETCOUNT消息,此时程序必须返回对话框的数目,一般为1。然后,程序又将收到CPL—NEWINQUIRE消息,此时系统需要CPL程序提供有关信息,如图标、说明文字、帮助文件等,程序必须填充lParam2这个指针指向的信息结构,然后返回0。到这里,控制面板就完成了初始化,显示出各个图标。如果用户双击了某个图标后,这个图标所代表的CPL程序将接收到一个CPL—DBCLICK消息。这时,CPL程序可以显示出对话界面,进行有关操作。当用户完成操作、关闭程序时,必须返回0。当用户关闭“控制面板”,此时CPL程序将接收到CPL—STOP消息,这时就要释放内存资源,做好善后工作,然后返回1。 最后CPL程序将接收到最后一个消息CPL—EXIT,系统将删除各个窗口,并使用FreeLibrary()函数将CPL程序从系统中删除,完成整个流程。一般情况下,我们只需要对CPL—NEWINQUIRE和CPL—DBCLICK这两个消息进行处理,其它的消息只要返回默认值就够了。

  大家只要编译这个CPL项目,并将结果拷贝到Windows/System(System32)目录下,然后打开“控制面板”就可以看到成果了。双击图标,程序将弹出一个信息框:“这是一个CPL试验程序!"。这样一个CPL程序就完成了。也可不必到控制面板里来打开,直接点击右键“用控制面板打开”,就可运行程序。你也可以用编程的方法来运行。WinExec("c:/windows/system32/control.exe MyCpl.cpl", SW_NORMAL);


    如果大家用BCB开发的话,还得加dll入口函数。即下面的代码。

int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void*)
{
    return 1;
} 
Windows控制面板编程 Windows 控制面板编程说明:本文章为本人在做项目时查阅相关文章而写成,如有不当之处,请指出。mail: tomcui60000520@163.com关键字:控制面板,控制面板应用程序, 一、             什么是控制面板打开Windows的控制面板会看到类似的图像图一双击其中的一个图标,会显示对话框,让用户来完成相应的软硬件设置工作。这就 阅读详情

相关推荐

【Windows指令】高效管理Windows系统的10个隐藏.cpl指令

本文揭秘了Windows系统中10个高效的.cpl隐藏指令,帮助用户快速管理系统设置。从网络配置(ncpa.cpl)到硬件管理(hdwwiz.cpl),再到个性化设置(desk.cpl),这些快捷指令能大幅提升工作效率,特别适合IT人员和高级用户。掌握这些Windows快捷指令,让你像专业人士一样轻松操作系统。

weixin_33738982的博客 582

cpl (控制面板应用程序) 编写及调试

cpl (控制面板应用程序) 编写及调试 (以dialog 为例)控制面板程序是用户用于配置Windows环境的一些特殊动态连接库(DLL)。Windows已经为我们提供了一些标准的控制面板程序,如字体、键盘、鼠标设置等。我们也可以根据实际的需要创建自己的控制面板程序,以便让用户来查看或者修改特定软硬件的参数设置。 控制面板的功能和操作方式 控制面板程序的主要功能是显示一个对话框让用户完成

jtujtujtu的专栏 4292

如何使用CPN+Tools软件(CPN+tools+help+中文版)

CPN帮助文档, CPN帮助文档, CPN帮助文档, CPN帮助文档

面板的简单应用

import java.awt.BorderLayout; import java.awt.Button; import java.awt.Color; import javax.swing.JFrame; import javax.swing.JPanel; public class JPanelApp extends JFrame { private JPanel panel1,panel2; JPanelApp() { setTitle("面板的应用"); setD...

cyx20220310的博客 252

MASTERCAM 程序单

mastercam 程序刀单,自己做的外编用的刀单,还是很可以的

西安电子科技大学编译原理大作业(CPL)实现代码+报告文档

西安电子科技大学编译原理大作业(CPL)实现代码+报告文档 上机题目:实现一个简单语言(Core Programming Language,CPL)的编译器前端 功能要求:接收以CPL编写的程序,对其进行词法分析、语法分析、语法制导翻译,最后输出程序的三地址码。

编写控制面板应用程序

  当我们打开控制面板时,会看到一些控制面板项目,如“添加/删除程序”、“调制解调器”、“系统”等。我们经常需要通过这些项目来对Windows进行配置。还有一些软件,如雅马哈声卡的驱动程序,会在控制面板中增加自己的配置项目。使用C++Builder 能方便快速地开发出自己的控制面板应用程序。使用标准的控制面板程序   控制面板程序实际上就是一个DLL(动态链接库)文件,关键是它实现了CPlAppl

Johnny的专栏 1579

cellranger安装以及使用

接受cellranger count的输出数据,将同一组的不同测序样本的表达矩阵整合在一起,比如tumor组原来有4个样本,PBMC组有两个样本,现在可以使用aggr生成最后的tumor和PBMC两个矩阵,并且进行标准化去掉测序深度的影响。但是由于病毒基因组太小了,且注释结果只有CDS没有exon,所以曲线救国,将CDS整体替换为exon,也不进行过滤了,直接下一步。虽然安装完毕,但是现在要运行cellranger的话需要在终端输入cellranger的整个路径。自动执行这个命令,需要将“

m0_59974475的博客 9393

如何编写控制面板程序

如何编写控制面板程序控制面板程序是用户用于配置Windows环境的一些特殊动态连接库(DLL)。Windows已经为我们提供了一些标准的控制面板程序,如字体、键盘、鼠标设置等;如图1所示。我们也可以根据实际的需要创建自己的控制面板程序,以便让用户来查看或者修改特定软硬件的参数设置。控制面板的功能和操作方式控制面板程序的主要功能是显示一个对话框让用户完成特定的任务。但是,与其它应用程序不同的

No15的专栏 1537

群晖设置公网ipv6方式域名解析访问

群晖、IPV6、域名解析

爬山虎的博客 2万+

手把手教你用C语言给STM32写一个Modbus RTU从机库(含完整项目源码)

在工业自动化领域,Modbus RTU协议因其简单可靠的特点,成为RS485总线通信的事实标准。对于嵌入式开发者而言,为STM32等微控制器实现一个高效的Modbus RTU从机协议栈,是开发智能传感器、执行器等设备的必备技能。Modbus RTU从机的核心是一个状态机,需要处理帧接收、CRC校验、功能码解析和响应生成等环节。工业现场总会遇到意想不到的干扰情况,一个健壮的协议栈应该能够优雅地处理各种异常场景,而不是简单地崩溃或死锁。工业现场环境复杂,协议栈必须具备完善的异常处理机制。

weixin_30561425的博客 516

快速创建控制面板程序

Delphi 5快速创建控制面板程序2007-09-05 18:51转贴自: http://www.cnread.net/cnread1/dnwl/cxsj/delphi/ztwd/cxyy/031.htm---- Borland Delphi是深受广大软件开发人员喜爱的一种高效、快速的RAD(Rapid Application Development)开发工具。在

dongyonggan的专栏 716

对工时评估的思考:当AI颠覆了coding效率

在AI时代,“人日”作为软件工时度量衡已然失效。开发的价值核心正从“编码实现”转向“深度思考”与“精准沟通”——即如何将人类的模糊需求精确地传达给AI。当最有价值的“思想工作”变得最难量化时,传统的项目管理范式随之动摇。我们必须超越对过程的算计,开始探索衡量思想、沟通与业务价值的新标尺。

架构师刘7的博客 1017

使用BCB制作控制面版程序 (转)

使用BCB制作控制面版程序 (转)[@more@]用BCB开发控制面板程序   前不久,Inprise公司(原Borland公司)正式公布了Delphi 5.0版,其开发向导中支持了“控制面板程序(CPL)”框架的生成,利用它...

csd3176的博客 206

Qt for Android:基于libusb实现CH340x串口通信的高效开发方案

本文详细介绍了在Qt for Android环境下,基于libusb实现CH340x串口通信的高效开发方案。通过绕过Android高版本系统的权限限制,利用libusb+JNI技术实现稳定通信,适用于工业手持终端等场景。文章涵盖环境搭建、核心实现、常见问题解决方案及性能调优经验,帮助开发者快速掌握这一关键技术。

weixin_42715608的博客 427

C#实战:从零搭建Vosk离线语音转文字系统

本文手把手教你用C#构建离线语音转文字系统,基于NAudio和Vosk实现全流程开发。首先介绍环境搭建,包括NuGet包安装和中文模型配置,强调16kHz单声道音频格式的关键性。接着详细解析音频预处理转换、Vosk模型初始化及识别过程的核心代码,提供多线程优化建议和实时识别扩展思路。文章包含80%以上代码注释,从常见问题排查到性能优化技巧,完整覆盖从"Hello World"到工业级部署的关键技术点,特别适合需要开发本地化语音识别应用的C#开发者。

墨夶的博客 752

使用BCB制作控制面版程序

用BCB开发控制面板程序  前不久,Inprise公司(原Borland公司)正式公布了Delphi 5.0版,其开发向导中支持了“控制面板程序(CPL)”框架的生成,利用它可以快速、方便地开发CPL程序。那么是否能在现有的Borland C++ Builder 4.0中开发CPL程序呢?   CPL程序是动态链接库(DLL)的一种变形,只不过扩展名为.cpl、入口函数为CPl

luhongjun的专栏 1017

材料仿真软件:LAMMPS_(8).温度和压力控制

在 LAMMPS 中,温度和压力的控制是通过多种恒温器和恒压器实现的。Nose-Hoover 恒温器和恒压器因其准确性和广泛适用性而被经常使用,而 Berendsen 恒温器和恒压器则因其计算效率高而适用于初步仿真或粗粒化模型。温度重标和压力重标方法虽然简单,但在某些情况下可以快速调整系统的温度和压力。通过选择合适的控制方法,可以根据具体的需求和系统特性来设计和运行分子动力学仿真,从而获得准确和可靠的结果。在实际应用中,建议先进行初步的仿真以确定合适的控制参数,然后再进行细致的仿真以验证结果的稳定性。

kkchenjj的博客 1692

WinCE中如何调用控制面板程序?

<br />文章出处来自:http://armlinux.uueasy.com/read.php?tid=120#<br />                   WinCE中如何调用控制面板程序?客户要求把触摸屏校准程序放到我的应用程序中,其实控制面板中有一个笔针程序就是干这个用的,但他们就是不想看到应用程序以外的窗口。没办法,客户的要求就是命令。我当然不想自己再写一个功能一样的程序,最好的办法是直接调用控制面板中的那个程序。 <br />要是在Linux里,简单,直接system("/path/file

刘广辉的自习室 2131

微信群“智”变:扣子机器人无缝接入实战

本文介绍了如何将扣子(Coze)机器人接入微信群实现智能化管理。文章首先阐述了扣子机器人的自然语言处理、自动分类和多模态交互等功能特点,以及其深度学习模型和持续学习能力的技术优势。随后详细讲解了接入步骤:从微信公众号配置、扣子平台机器人创建,到使用Flask框架实现消息转发功能的关键代码。通过电商客服和技术社群两个实际案例,展示了扣子机器人在提升响应效率、优化社群运营方面的显著效果。最后展望了未来在智能推荐、多模态交互等领域的发展潜力,为微信群智能化管理提供了实用解决方案。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 830

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

调用WinCE控制面板程序技巧

在WinCE的开发过程中,也许你会遇到这样的需求;让用户看不到应用程序以外的窗口,可又想直接调用WinCE控制面板内的应用程序。 下面告诉你,如何轻松实现这样的需求: 首先,要明白WinCE系统中的控制面板和Windows系统中的控制面板原理是一样的,就是里面包含了一些应用程序。WinCE系统的控制面板由 Ctlpnl.exe,Control.exe和一些.cpl文件组成,其中Ctlpnl

碧 月 有 约 1136

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

ZZ Windows 控制面板编程

ZZ From: http://blog.youkuaiyun.com/tomcui/archive/2008/01/22/2058502.aspx Windows 控制面板编程说明:本文章为本人在做项目时查阅相关文章而写成,如有不当之处,请指出。mail: tomcui60000520@163.com关键字:控制面板,控制面板应用程序, 一、             什么是控

achellies's Blog 753

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

VC++ MFC控制面板程序开发指南:从原理到实践

动态链接库(DLL)是Windows系统中实现代码复用和模块化的重要技术,通过导出特定函数供其他程序调用。在Windows开发领域,控制面板程序(Control Panel Applet,简称CPL)本质上是一种特殊类型的DLL,它通过导出CPlApplet函数与系统Shell交互,实现系统设置的集中管理。这种技术方案的价值在于能够为硬件驱动或专业软件提供与操作系统风格一致的管理界面,遵循用户习惯,提升软件集成度。在应用场景上,CPL常用于显卡驱动、声卡管理工具等需要深度系统集成的配置软件。本文以VC++

weixin_30765505的博客 346

【Windows指令】高效管理Windows系统的10个关键.cpl指令

本文介绍了10个关键的Windows .cpl指令,它们是高效管理系统设置的“快捷传送门”。通过ncpa.cpl、sysdm.cpl等指令,用户无需在图形界面中层层点击,即可直达网络连接、系统属性、硬件管理等核心功能,大幅提升操作效率,尤其适合网络管理员和高级用户。

weixin_29233857的博客 497

【转载】WinCE控制面板添加应用程序

转载自:http://blog.youkuaiyun.com/nanjianhui/article/details/4336897 WinCE系统中的控制面板和Windows系统中的控制面板原理是一样的,里面就是包含了一些应用程序。WinCE系统的控制面板由Ctlpnl.exe,Control.exe和一些.cpl文件组成,其中Ctlpnl.exe和Control.exe用于控制控制面板的文件夹显示和...

weixin_33852020的博客 82
上一篇: 内存整理(C/C++)
下一篇: 怎样用VC开发小体积程序
Y___Y
博客等级 码龄20年 63粉丝 61原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值