如何在wince控制面板增加一个响应指定程序的图标

Wince6.0下用代码修改桌面壁纸/给程序增加快捷方式 Wince6.0下用代码修改桌面壁纸(修改注册表,发消息通知系统刷新) 给程序增加快捷方式(添加桌面快捷方式以及start menu中添加快捷) 工程是VS2005. 直接看代码也方便。没几行 立即下载

这个比想像中的要麻烦有下面详细的8个步文件
1.首先在驱动文件夹,建立一个:"newcpl" 文件夹

2.建 "sources" 文件,内容如下
TARGETNAME=newcpl
SOURCES= /
connpnl.rc /
connpnl.cpp /
INCLUDES= /
$(_PROJECTROOT)/cesysgen/oak/inc /
CDEFINES=$(CDEFINES) -DBKLPNL_EXPORTS
CPL=1
DLLENTRY=DllEntry
TARGETTYPE=DYNLINK
TARGETLIBS= $(_COMMONSDKROOT)/lib/$(_CPUINDPATH)/coredll.lib /


3.有sources 当然少不了,"makefile",文件 这个参考驱动

4.找一个.ico图标,现在我用"remotenw_new.ico",放在同一目录
5.建一个 "newcpl.def" 文件,内容如下

       LIBRARY         BKLPNL

       EXPORTS
             CPlApplet
6.建一个"resource.h",内容如下
#define IDD_BKL                         101
#define IDC_BKLSLIDE                    1000
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NO_MFC                     1
#define _APS_NEXT_RESOURCE_VALUE        102
#define _APS_NEXT_COMMAND_VALUE         40001
#define _APS_NEXT_CONTROL_VALUE         1003
#define _APS_NEXT_SYMED_VALUE           101
#endif
#endif
#define IDI_REMOTENW              3000
#define IDS_TITLE                 6000
#define IDS_INFO                  6001
extern "C" BOOL APIENTRY VolumeDlgProc (HWND hDlg, UINT message, UINT wParam, LONG lParam);

7.建一个"connpnl.rc" .内容如下
#define APSTUDIO_READONLY_SYMBOLS
#include "resource.h"
#define APSTUDIO_HIDDEN_SYMBOLS
#include "windows.h"
#undef APSTUDIO_HIDDEN_SYMBOLS
#undef APSTUDIO_READONLY_SYMBOLS
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)
#ifdef _WIN32
LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED
#pragma code_page(936)
#endif //_WIN32
IDI_REMOTENW            ICON    DISCARDABLE     "remotenw_new.ico"
#ifdef APSTUDIO_INVOKED
1 TEXTINCLUDE DISCARDABLE
BEGIN
    "resrc1.h/0"
END

2 TEXTINCLUDE DISCARDABLE
BEGIN
    "#include ""resource.h""/r/n"
    "#define APSTUDIO_HIDDEN_SYMBOLS/r/n"
    "#include ""windows.h""/r/n"
    "#undef APSTUDIO_HIDDEN_SYMBOLS/r/n"
    "/0"
END

3 TEXTINCLUDE DISCARDABLE
BEGIN
    "/r/n"
    "/0"
END

#endif    // APSTUDIO_INVOKED
IDD_BKL DIALOG DISCARDABLE 0, 0, 187, 98
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "newcpl"//将是在控制面板看到的名字
FONT 10, "System"
BEGIN
    DEFPUSHBUTTON   "OK",IDOK,15,77,50,14
    PUSHBUTTON      "Cancel",IDCANCEL,114,77,50,14
    CONTROL         "Slider1",IDC_BKLSLIDE,"msctls_trackbar32",WS_TABSTOP,17,
                    34,152,15
END
#ifdef APSTUDIO_INVOKED
GUIDELINES DESIGNINFO DISCARDABLE
BEGIN
    IDD_BKL, DIALOG
    BEGIN
        LEFTMARGIN, 7
        RIGHTMARGIN, 180
        TOPMARGIN, 7
        BOTTOMMARGIN, 91
    END
END
#endif    // APSTUDIO_INVOKED
STRINGTABLE DISCARDABLE
BEGIN
    IDS_TITLE               "newcpl" //名字2.没多大作用
    IDS_INFO                "Connects to other computers, networks, and the Internet"
END

#endif    // Chinese (P.R.C.) resources
#ifndef APSTUDIO_INVOKED
#endif    // not APSTUDIO_INVOKED

8.最后一个文件了"connpnl.cpp"
#include <windows.h>
#include <tchar.h>
#include <cpl.h>
#include "resource.h"
#define lengthof(exp) ((sizeof((exp)))/sizeof((*(exp))))
HMODULE g_hModule = NULL;
extern "C" BOOL WINAPI DllEntry(HANDLE hinstDLL, DWORD dwReason, LPVOID lpvReserved)
{
   switch (dwReason)
   {
      case DLL_PROCESS_ATTACH:
      {
        g_hModule = (HMODULE) hinstDLL;
      }
      break;

   }

   return TRUE;
}

extern "C" LONG CALLBACK CPlApplet(HWND hwndCPL, UINT message, LPARAM lParam1, LPARAM lParam2)
{
   switch (message)
   {
      case CPL_INIT:
      {
         return 1;
      }

      case CPL_GETCOUNT:
      {
         return 1; // Just connmc
      }

      case CPL_NEWINQUIRE:
      {
         ASSERT(0 == lParam1);
         ASSERT(lParam2);

         NEWCPLINFO * lpNewCplInfo = (NEWCPLINFO *) lParam2;
         if (lpNewCplInfo)
         {
            lpNewCplInfo->dwSize = sizeof(NEWCPLINFO);
            lpNewCplInfo->dwFlags = 0;
            lpNewCplInfo->dwHelpContext = 0;
            lpNewCplInfo->lData = IDI_REMOTENW;
            lpNewCplInfo->hIcon = LoadIcon(g_hModule, MAKEINTRESOURCE(IDI_REMOTENW));
            LoadString(g_hModule, IDS_TITLE, lpNewCplInfo->szName, lengthof(lpNewCplInfo->szName));
            LoadString(g_hModule, IDS_INFO, lpNewCplInfo->szInfo, lengthof(lpNewCplInfo->szInfo));
            _tcscpy(lpNewCplInfo->szHelpFile, _T(""));
            return 0;
         }
         return 1; // Failure
      }

      case CPL_DBLCLK:
      {
       
         PROCESS_INFORMATION pi = {0};
         if (CreateProcess(_T("//Windows//waveout.exe"), NULL, NULL, //指点执行的文件
                           NULL, FALSE, 0, NULL, NULL, NULL, &pi))
         {
            CloseHandle(pi.hThread);
            CloseHandle(pi.hProcess);
            return 0;
         }
         return 1;
      }

      case CPL_STOP:
      case CPL_EXIT:
      default:
      {
         return 0;
      }
   }

   return 1;
} // CPlApplet

编译后在 platform.bib 加入这个文件"newcpl.cpl"就可以了

WinCE开机自动运行程序设置 可以用来设置WinCE系统自动运行程序的小工具。目前只支持添加一个自启动。需要更复杂的设置,可以利用驱动调试助手小工具协助设置。 立即下载

相关推荐

WINCE下第三方软件添加进系统及桌面快捷方式重启不消失定制

WINCE下第三方软件添加进系统及桌面快捷方式重启不消失定制

如何在wince控制面板增加一个响应指定程序的图标——转载

如何在wince控制面板增加一个响应指定程序的图标2008-05-23 19:03这个比想像中的要麻烦有下面详细的8个步文件1.首先在驱动文件夹,建立一个:"newcpl" 文件夹2.建 "sources" 文件,内容如下TARGETNAME=newcplSOURCES= /connpnl.rc /connpnl.cpp /INCLUDES= /$(_PROJE

gooogleman#foxmail.com 1696

阿里云网络架构设计

背景 一个企业上云,首先要考虑整个网络的规划,涉及到云上和云下的网络规划,云上VPC的规划,云上不同地域VPC的互通,云上可用区的选择等等,所以一定要提前规划好整体的网络架构,现在阿里云云上的虚拟化网络解决方案已经完全转向 了云企业网,所以所有使用阿里云的企业客户多多少少都会使用阿里云的CEN 支撑自己的业务。 云企业网介绍 云企业网(Cloud Enterprise Network)是承载在阿里云提供的高性能、低延迟的私有全球网络上的一张高可用网络。 IDC专线接入CEN 首先面临的是云上和云下打通,那么

修电脑的码农 4838

写了个VC++ MFC小工具,一键整理Resource.h文件,重新排序并去重复ID(★firecat推荐★)

一般MFC开发的时候,如果有些资源是从其他工程中移植到本工程的,而在资源移植的时候都要将对应的资源ID复制到本工程的resource.h文件中。此时不管你在不在本工程中添加资源ID,resource.h文件中的ID可能都有重复的,一般再添加资源ID后,肯定有重复的。此外,随着界面越来越多,各种控件对话框的ID都堆积在一起,令人看得闹心。 今天我自己整理了一个小工具,可以打开Resource.h文...

$firecat利白的代码足迹$ 3559

Navicat Premium 12 永久激活保姆级教程(附最新补丁下载)

本文详细介绍了Navicat Premium 12的高效使用方法,从安装配置到高级功能应用,帮助用户充分发挥这款数据库管理工具的全部潜力。内容包括数据库连接管理、数据查询与编辑、数据同步与结构对比等核心功能,以及性能优化和最佳实践建议,提升数据库管理效率。

weixin_28834765的博客 640

LLM的MCP协议:初识MCP,搭建第一个MCP Server

MCP(Model Context Protocol),是一个开发的协议,标准化了应用程序如何为大模型提供上下文。MCP提供了一个标准的为LLM提供数据、工具的方式,使用MCP会更容易的构建Agent或者是基于LLM的复杂工作流。

Criss@陈磊 2万+

XML解析器接口--C++版

Resource.h文件 /*Resource.h*/ //{{NO_DEPENDENCIES}} //Microsoft Visual C++ generated include file. //Used by XMLParseInterface.RC //新对象的下一组默认值 #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY

TCP/IP 3403

Vue - 解决报错 Error: Cannot find module ‘XXX\@vue\cli-service\bin\vue-cli-service.js‘(vue项目编译运行出错,启动失败)

vue报错,Error: Cannot find module ‘@vue\cli-service\bin\vue-cli-service.js‘,vue2项目启动报错,vue3项目运行出错,vue执行npm run serve报错,找不到@vue/cli-service模块,vue项目关于:Error: Cannot find module ‘D:\@vue\cli-service\bin\vue-cli-service.js‘的解决方案,vue项目跑不起来了,Vue项目报错,跑项目报错Cannot fi

🏆 前端领域优质创作者 3114

c语言resource files的作用,c – resource.h中的宏用于什么?

在visual studio中创建资源文件时,IDE会自动生成一个名为resource.h的头文件,其中包含以下文本://{{NO_DEPENDENCIES}}// Microsoft Visual C++ generated include file.// Used by BackupRestore.rc// Next default values for new objects//#ifdef...

weixin_39571179的博客 642

如何解决Elsevier和IEEE期刊之间参考文献的转换问题

Elsevier期刊和IEEE旗下的期刊两者模版互相转换的时候,会发现Elsevier模版的参考文献是存放在.bib文件下的,然后在.tex文件中直接引用即可。3. 在IEEE的.tex文件中的\end{document}命令行之前,添加下面的这句话(ps:\bibliography{**}中的**名称即为.bib文件的名称)如何将Elsevier的参考文献快速的转成IEEE期刊可用的格式,是本博客需要解决的问题。2. 将下载好的.bib文件,上传到IEEE的latex文件中。

薰珞婷紫小亭子的博客 1675

实战落地!Python抓取股票历史数据:开盘/收盘/成交量全维度爬取(附数据清洗+可视化)

股票历史数据抓取的核心是“数据准确性+完整性”,网页爬取适合小批量、个性化需求,API调用适合批量、标准化需求。多市场数据抓取:适配港股(00700.HK)、美股(AAPL)的抓取逻辑;高频数据抓取:抓取分钟级、小时级行情数据,用于短线量化策略;财务数据扩展:抓取市盈率、市净率、净利润等财务指标,结合价格数据做基本面分析;量化策略回测:将清洗后的数据接入Backtrader、VNPY等量化框架,验证策略有效性。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1739

《Windows程序设计》读书笔十一 对话框

第十一章  对话框 基于模板的对话框,包含了弹出窗口,和子窗口控件,而且有一个窗口过程来处理对话框消息。 包括键盘和鼠标的输入。 称为 “对话框管理器”  和标准的Windows窗口消息处理略有不同。稍后能看到具体区别 许多消息不仅被对话框窗口过程处理,还会传递给你自己的程序中的某些函数。  称为对话框过程 对话框过程一般处理初始化自创控件以及子窗口传来的消息。不处理WM_

sesiria的博客 3971

Superpowers与 OpenSpec、Spec Kit 对比

按照官方仓库定义,Superpowers 是一套构建在 composable skills 之上的完整软件开发工作流。它不是单纯的 prompt 集合,而是把一系列工程动作做成默认流程。一个需要明确的点:Superpowers 并不只偏 Claude Code,根据。

人不风流枉少年 1813

详解WINCE的控制面板

曾经在我的一篇《控制面板的创建》中介绍过WinCE控制面板的结构,不过由于那篇文章其目的只在于控制面板如何调用EXE程序,故对控制面板也仅是泛泛而谈.不过在这篇文章中,我们将对WinCE的使用方法来个整体的详解. 1.控制面板的结构         控制面板其实也是个动态链接库,区别只在于后缀名为.cpl,以及对外接口为CPlApplet().         接口的原型为:

芝麻软件工作室的专栏 533

NXP S32k3 MCAL ADC配置

S32K3 配置MCAL ADC

Leon_0125的博客 5071

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

详解WINCE的控制面板——转载

详解WINCE的控制面板发 布 时 间 : 2008-11-19    来 源 : 优快云Blog    作 者 : norains   浏 览 : //========================================================================//TITLE:// 详解WINCE的控制面板//AUTHOR:// norains

gooogleman#foxmail.com 1882

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

wince系统控制面板功能或设置怎么调用

1.控制面板的结构   控制面板其实也是个动态链接库,区别只在于后缀名为.cpl,以及对外接口为CPlApplet().   接口的原型为:   LONG CALLBACK CPlApplet(HWND hwndCPL,UINT message, LPARAM lParam1, LPARAM lParam2)   在接口函数中我们需要实现特定几个消息的响应,控制面板才能正常运作.为方便观察

JXES智能生态系统 1774

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

wince系统功能或设置怎么调用 转

1.控制面板的结构   控制面板其实也是个动态链接库,区别只在于后缀名为.cpl,以及对外接口为CPlApplet().   接口的原型为:   LONG CALLBACK CPlApplet(HWND hwndCPL,UINT message, LPARAM lParam1, LPARAM lParam2)   在接口函数中我们需要实现特定几个消息的响应,控制面板才能正常运作.为方便观察

足球中国的专栏 786

控制面板与系统调用

来自:http://topic.youkuaiyun.com/u/20111223/21/5b3d8c9f-04e8-41a2-881b-4473c000293a.html 1.控制面板的结构   控制面板其实也是个动态链接库,区别只在于后缀名为.cpl,以及对外接口为CPlApplet().   接口的原型为:   LONG CALLBACK CPlApplet(HWND hwndCPL,UINT

smart_qiang的专栏 1170
上一篇: 仅通过崩溃地址找出源代码的出错行
下一篇: CE下的电源管理---mobile
luixing67
博客等级 码龄19年 54粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值