用VC实现控制面板应用程序

合集下载

Visual Studio 2017创建第一个.NET Framework控制台应用程序

Visual Studio 2017创建第一个.NET Framework控制台应用程序

目录第1节.开发工具2第2节.第一个应用程序33.1.安装V ISUAL S TUDIO 20173 3.2.创建控制台应用程序6 3.3.编译应用程序9 3.4.查看程序集文件10 3.5.运行应用程序12第1节.开发工具微软官方推出了2个IDE开发工具:一个是Visual Studio开发工具,功能最为全面,最为强大的开发工具,但只能在Windows平台上使用。

另一个是Visual Studio Code开发工具,可以在Windows/macOS/Linux平台上使用,是免费开源跨平台的开发工具,但功能没有Visual Studio强大。

第2节.第一个应用程序现在使用Visual Studio 2017开发工具开发出第一个基于C#的.NET Framework控制台应用程序。

2.1. 安装Visual Studio 2017安装Visual Studio 2017开发工具的步骤如下:下载安装程序:从Visual Studio 2017开始,微软不再提供离线安装包,只提供在线安装包。

在图中选择要下载的版本即可。

其中Visual Studio Community 2017是免费的IDE,可下载使用。

这里在上图中点击“Visual Studio Professional 2017”栏目中的“免费试用”按钮,查看一下下载后的安装程序:在上图中,下载的安装程序大小只有1.06M,因此安装时需要持续联网下载其它的组件。

在上图中双击“vs_Professional.exe”可执行文件,在出现的安装界面上直接点击“继续”按钮:在上图中可以选择要开发的应用程序类型,这里选择“通用Windows平台开发”,“.NET桌面开发”,“和Web开发”组件即可完成大部分的开发。

如果需要其它的应用程序开发,只需要选择相应的组件安装即可:可见,Visual Studio开发工具非常的强大,几乎可以开发世界上所有任意类型的应用程序。

用VC6.0制作控制面板应用程序

用VC6.0制作控制面板应用程序

用VC6.0制作控制面板应用程序一、Windows的控制面板应用程序---- 在Windows的系统目录下可以找到控制面板应用程序,它们是一些扩展名为cpl的dll,通常用来提供配置服务,如配置网络硬件和软件用的ncpa.cpl,配置桌面用的desk.cpl等,它们的父窗口都是桌面。

运行这类程序的方法很多:双击控制面板中的图标,双击系统目录下的cpl文件,或者使用如下DOS命令:rundll32 shell32.dll,Control_RunDLL<cpl文件> [@n]或者control <cpl文件> [@n]---- 其中@n用于指定运行运行哪一个小程序(一个cpl文件中可包含多个小程序),若不带此参数则相当于@0,即运行第一个小程序。

例如:---- Rundll32 shell32.dll,Control_RunDLL main.cpl @n---- 若不带@n参数,则运行鼠标设置;@1则运行键盘设置;@2则运行打印机设置;@3则显示系统字体。

---- Control_RunDLL是shell32.dll中定义的一个函数,大小写敏感,用于启动控制面板。

---- 通过控制面板应用程序来提供配置服务是一种很好的方法,那么如何设计这种应用程序呢?下面以Visual C++6.0为例进行介绍。

二、开发控制面板应用程序---- 若希望一个文件传输程序启动后自动连接到某一个站点,就需要为其提供一些缺省值,如:服务器名、用户名、口令等。

下面就开发一个控制面板应用程序来提供这些缺省值,具体步骤为:---- 1.创建一个"MFC AppWizard (dll)"类型的项目,命名为:MyCplApp,选择"Regular DLL With MFC statically linked",使它的运行不依赖于其它任何DLL。

---- 2.选择Project菜单下的Settings项或按Alt+F7,在Link页中将输出文件名改为:---- <WindowsDir>\<SystemDir>\Mycplapp.cpl,在Debug页中将"Executable for debug session"改为:<WindowsDir>\<SystemDir>\Control.exe,以便直接用控制面板运行。

使用VC开发控制台应用程序的步骤

使用VC开发控制台应用程序的步骤

使用VC开发控制台应用程序的步骤
一、创建工程
1.打开VC,选择菜单File→New,在弹出的对话框中选择Projects 页,再选择Win32 Console Application,通过Location下面的编辑框旁边的按钮选择存放工程的路径,在Project name:下的编辑框中输入工程名Proj_1,单击OK按钮。

2.在弹出的对话框中选择An empty project,单击Finish按钮。

在接下来弹出的对话框中单击OK按钮。

3.选择菜单File→New,在弹出的对话框中选择Files页,再选择C++ Source File,将Add to project左边的选择框选中,确定Add to project下面的编辑框中出现的是Proj_1。

在File下的编辑框中输入文件名ex1,单击OK按钮。

4.在文件编辑窗口中输入以下代码:
#include <stdio.h>
void main(void)
{
printf("这是我用VC做的第一个控制台应用程序\n");
return;
}
5.单击Save All工具条,再单击Build (F7)工具条,输出窗口显示以下信息。

--------------------Configuration: Proj_1 - Win32 Debug-------------------- Proj_1.exe - 0 error(s), 0 warning(s)
6.单击工具条上红色的!号运行程序。

创建第一个C++Win32控制台应用程序

创建第一个C++Win32控制台应用程序

创建第一个C++的Win32控制台应用程序
1.打开VS2008,依次选择菜单:文件--→新建--→项目。

2.在新建项目窗口中,依次选择项目类型中的其他语言--→Visual C++ ----→Win32,选择模板中的Win32控制台应用程序。

在名称栏中输入项目名称 Win32ConsoleApplicaiton,项目所在位置可单击浏览按钮选择目录位置。

选择完毕后,单击确定按钮。

3.在Win32应用程序向导中单击“下一步”
4.不用修改任何选项,单击“下一步”
5. 右侧是解决方案的资源管理器,双击文件名可以打开相应文件。

找到相应的main函数。

6.在main函数中输入相应的代码。

7.stdafx.h的作用,当我们使用AppWizard来自动生成某些项目的时候,系统会自动把所需要include的头文件在stdafx.h中先include一下,这样,我们只需要直接include这个stdafx.h文件即可.因为同一个项目中的不同源文件CPP都包含相同的include文件,这样,为每个.CPP文件都重复include这些文件就显得很傻了。

所以,在stdafx.h中填写头部文件。

在有main函数的文件中在添加代码:#include “stdafx.h”
即可。

8.按“Ctrl+F5”可以查看运行结果。

如果按F5或单击工具栏中的“”可以进行调试,
但无法保留最终运行结果。

vc怎样设置控制台窗口界面

vc怎样设置控制台窗口界面

VC怎样设置控制台窗口界面一、概述所谓控制台应用程序,就是指那些需要与传统DOS操作系统保持某种程序的兼容,同时又不需要为用户提供完善界面的程序。

简单地讲,就是指在Windows环境下运行的DOS程序。

一旦C++控制台应用程序在Windows 9x/NT/2000操作系统中运行后,就会弹出一个窗口。

例如下列过程:单击Visual C++标准工具栏上的“New Text File”按钮,打开一个新的文档窗口。

选择File | Save菜单或按快捷键Ctrl+S或单击标准工具栏的Save 按钮,弹出“保存为”文件对话框。

将文件名为“Hello.cpp” (注意扩展名.cpp 不能省略)。

在文档窗口中输入下列代码:#include<iostream.h>{cout<<"Hello, Console!"<<endl;}单击小型编译工具栏中的“Build”按钮或按F7键,系统出现一个对话框,询问是否将此项目的工作文件夹设定源文件所在的文件夹,单击[是]按钮,系统开始编译。

单击小型编译工具栏中的“Execute Program”按钮或按Ctrl+F5键,运行刚才的程序。

程序运行后,弹出下图的窗口。

这就是控制台窗口,与传统的DOS屏幕窗口相比最主要的区别有:(1) 默认的控制台窗口有系统菜单和标题,它是一个内存缓冲区窗口,缓冲区大小取决于Windows操作系统的分配;而DOS屏幕是一种物理窗口,不具有Windows窗口特性,其大小取决于ROM BIOS分配的内存空间。

(2) 控制台窗口的文本操作是调用低层的Win32 APIs,而DOS屏幕的文本操作是通过调用BIOS的16(10h)中断而实现的。

(3) 默认的控制台窗口可以接收键盘和鼠标的输入信息,设备驱动由Windows管理,而DOS屏幕窗口接收鼠标时需要调用33h中断,且鼠标设备驱动程序由自己安装。

《用C语言编写带有GUI的桌面应用》

《用C语言编写带有GUI的桌面应用》

《用C语言编写带有GUI的桌面应用》
在今天的软件开发领域,GUI(图形用户界面)是一种重要的
部分。

C语言是一种功能强大的、可移植的编程语言,其灵活
性使其在现代软件开发中占据重要位置。

用C语言编写带有GUI的桌面应用程序可以提供软件开发者更多的可能性。

用C语言编写带有GUI的桌面应用前,首先要明确GUI应用
程序的目标,即想要实现的功能。

接下来,要编写程序的结构、编写代码,实现功能。

从程序结构的角度来看,程序的基本构件是模块和函数,它们可以有效地实现开发者想要实现的功能。

在编写程序结构时,可以通过模块化的体系结构来管理程序的结构,以循序渐进的方式编写程序,可以缩减程序的开发时间。

接下来,需要编写代码,实现功能。

由于C语言是低级语言,需要合理地使用结构化程序设计的原则,如判断/循环语句、
函数、变量等,以保证程序正确、稳定、可靠的工作。

另外,要实现GUI的设计,需要使用相应的工具,如GTK、wxWidgets等,这些工具可以让开发者用C语言实现GUI应
用程序。

这些工具可以让开发者快速编写GUI应用程序,而
无需使用更复杂的代码。

最后,在编写完成后,建议进行调试,以确保程序的可靠性。

调试可以通过检查程序的运行路径、诊断某些程序问题等方式来进行。

调试完成后,就可以发布程序,以供使用者下载和安
装了。

总之,用C语言编写带有GUI的桌面应用并不是一件容易的任务,但是通过正确的策略和方法,以及一些相应的工具,开发者可以快速、高效地完成编写过程。

因此,用C语言编写具有GUI的桌面应用依然是一个值得探索的领域。

使用C进行Windows桌面应用程序开发

使用C进行Windows桌面应用程序开发

使用C进行Windows桌面应用程序开发Windows桌面应用程序是指能够在Windows操作系统上运行的软件应用程序,通常具有图形用户界面(GUI)且能够提供丰富的功能和交互性。

开发Windows桌面应用程序可以使用多种编程语言,其中C语言是一种常用且强大的选择。

本文将介绍使用C语言进行Windows桌面应用程序开发的基本步骤和相关注意事项。

一、Windows桌面应用程序开发环境的准备在进行Windows桌面应用程序开发之前,首先需要搭建相应的开发环境。

以下是搭建C语言开发环境的基本步骤:1. 安装C编译器:C语言是一种编译型语言,因此需要安装相应的C编译器。

常用的C编译器有GCC和Visual Studio等。

GCC是一款开源的免费编译器,而Visual Studio是微软官方提供的一套集成开发环境(IDE),其中包含了C编译器。

2. 配置开发环境:根据选择的C编译器进行相应的环境配置。

对于GCC,可以通过在命令行中输入gcc命令来进行编译和链接操作。

对于Visual Studio,可以在IDE中创建一个新的C项目,并在项目设置中进行相关配置。

二、Windows桌面应用程序的开发流程在搭建好开发环境后,可以开始进行Windows桌面应用程序的开发。

下面是一个基本的开发流程:1. 确定应用程序需求:在开始开发之前,首先需要明确应用程序的需求和功能。

考虑应用程序的用途、目标用户以及所需的功能和界面设计,有助于后续的开发工作。

2. 编写代码:使用C语言编写应用程序的功能代码。

在编写代码时,可以利用C语言的丰富库函数来实现各种功能,比如文件操作、网络通信、图形界面等。

同时,还可以使用相关的开发工具和框架来简化开发过程。

3. 进行编译和调试:使用C编译器对代码进行编译,并进行调试。

编译过程会将源代码转换为可执行文件,检查并修复代码中的错误和问题。

调试过程是为了定位并解决代码中的BUG(程序错误),可以通过逐步执行、设置断点和查看变量值等方式进行。

VC编程实现控制其他应用程序

VC编程实现控制其他应用程序

VC实现进程自动控制别的窗口已有 136 次阅读 2010-10-21 21:58 标签: 自动控制进程窗口实现进程自动控制操作计算机人员常常会遇到这样的情况:每天面对重复、繁锁的劳动,这些劳动极其无聊,但却无法从中解脱。

通过自动控制程序,可让计算机完成这些枯燥的动作,提高工作效率,减少人力成本。

操纵其它进程的本质是向它们发送消息,如何准确、可靠地向其它应用程序发送消息,是实现自动控制的关键。

一、向某个输入框中输入字符:HWND hWnd = ::FindWindow(NULL,m_strTitle);//m_strTitle是窗口标题HWND hEdit = ::GetDlgItem(hWnd, m_Id );// m_Id是编辑框的ID,可在SPY++中观察得到::SendMessage( hEdit , WM_CHAR , 'a' , 0 );//写英文字母a::SendMessage( hEdit , WM_IME_CHAR , 0x6C49 , 0 );//写Unicode汉字“汉”二、重写窗口标题:HWND hWnd = ::FindWindow(NULL,m_strTitle);//m_strTitle是窗口标题if(hWnd==NULL)AfxMessageBox(_T("无效的句柄。

"),0,0);::SendMessage( hWnd , WM_SETTEXT , 0, (LPARAM)_T("User Name:"));三、枚举窗口:EnumWindows((WNDENUMPROC)EnumWinProc,(LPARAM)&m_strEdit1); 添加一个回调函数:BOOL CALLBACK EnumWinProc(HWND hwnd,LPARAM lParam){CString *s = (CString*)lParam;TCHAR lpWinName[MAX_PATH];::GetWindowText(hwnd,(LPWSTR)lpWinName,MAX_PATH-1);if(strlen((char*)lpWinName)){//SendMessage(hwndList,LB_ADDSTRING,0,(LPARAM)lpWinName); CString temp(lpWinName);s->Append(temp);s->Append(_T(","));s->Append(_T("\r\n"));}return TRUE;}四、用Windows的计算器(calc.exe)计算“111*111”HWND hWnd = ::FindWindow(NULL,m_strTitle);//m_strTitle=="计算器",在不同语言的系统上是不同的HWND hEdit1 = ::GetDlgItem(hWnd, 125 );//按钮1的ID,可在SPY++中观察得到HWND hEditMul = ::GetDlgItem(hWnd, 0x5B );//乘号的ID,可在SPY++中观察得到HWND hEditEq = ::GetDlgItem(hWnd, 0x70 );//等号的ID,可在SPY++中观察得到::SendMessage( hEdit1 , BM_CLICK , NULL , NULL );Sleep(500);::SendMessage( hEdit1 , BM_CLICK , NULL , NULL );Sleep(500);::SendMessage( hEdit1 , BM_CLICK , NULL , NULL );Sleep(500);::SendMessage( hEditMul , BM_CLICK , NULL , NULL );Sleep(500);::SendMessage( hEdit1 , BM_CLICK , NULL , NULL );Sleep(500);::SendMessage( hEdit1 , BM_CLICK , NULL , NULL );Sleep(500);::SendMessage( hEdit1 , BM_CLICK , NULL , NULL );Sleep(1000);::SendMessage( hEditEq , BM_CLICK , NULL , NULL );结合Spy 编写控制其他程序控件程序/viewdiary.22688105.html分类:编程技术-VC2008.1.1221:49作者:jackson031 | 评论:0 | 阅读:1644这两天泡在机房里指导学生计算机省级考试,发现考试系统的监考界面在一定时间后会自动将“允许登录”复选框“去除勾选,这在进行上机体验给管理带来很大不便,于是我考虑了采用定时模拟按键来勾选复选框,关键是FindWindowEx 找句柄,找到了复选框的句柄我们就可以通过PostMessage或SendMessage函数来向控件发送消息,以下是根据监考系统页面结构特需定制的获取“允许登录”控件句柄的代码段,里面采用了遍历顶层窗口获得监考窗口,然后再通过层层剥离的方式找到复选框【其实我们可以定义一个回调函数然后采用递归的方式获得特定的控件句柄,这样更具有通用性】:Spy 查看到的监考窗口结构图:程序代码//通过标题找到窗体句柄char windowTitle[100];strcpy(windowTitle,m_windowtitle);HWND inHwnd = NULL;char szText[256];CString msg;HWND hwndAfter = NULL;m_hwndFind = NULL;while(hwndAfter = ::FindWindowEx(inHwnd,hwndAfter,NULL,NULL)){memset(szText,0,256);::SendMessage(hwndAfter,WM_GETTEXT,(WPARAM)256,(LPARAM)szText);if(strcmp(szText, windowTitle) == 0){m_hwndFind = hwndAfter;msg.Format("找到窗口\"%s\" [%x]!",windowTitle,hwndAfter);AfxMessageBox(msg);if(m_hwndFind= ::FindWindowEx(m_hwndFind,NULL,"WindowsForms10.MDICLIENT.app3",NULL)){//"WindowsForms10.MDICLIENT.app3"类是通过Spy 找到的if(m_hwndFind = ::FindWindowEx(m_hwndFind,NULL,NULL,NULL)){for(int i=1; i<=5; i)//嘿嘿,用最傻瓜的办法找到第五个子窗口hwndAfter = ::FindWindowEx(m_hwndFind,hwndAfter,NULL,NULL);if(hwndAfter){//允许登录复选框所在位置hwndAfter = ::FindWindowEx(hwndAfter,NULL,"WindowsForms10.BUTTON.app3","允许登录");if(hwndAfter){m_hwndFind = hwndAfter;//到此为止,我们已经找到了允许登录复选框的句柄m_hwndFindAfxMessageBox("已经找到\"允许登录\"复选按钮,点击模拟单击进入自动点击!");}elseAfxMessageBox("没有找到\"允许登录\"复选按钮,请确认已经打开监考系统页面!");return;}}}}}if(!m_hwndFind){msg.Format("没有找到窗口\"%s\",请确认此窗口已经打开!",windowTitle);AfxMessageBox(msg);}获得句柄后我们向此控件发送检查勾选状态消息,如果没有勾选,我们就勾选它: 程序代码stat = (int)::SendMessage(m_hwndFind, BM_GETSTATE, 0, 0);if( stat == BST_UNCHECKED){//如果当前状态为非选中,则勾选::PostMessage(m_hwndFind, WM_LBUTTONDOWN, 0, 0);::PostMessage(m_hwndFind, WM_LBUTTONUP, 0, 0);}至于定时器等其他细节就So Easy了【如果你是MFC开发,建议直接重构定时函数Ctrl w --> ClassWizard --> Message Maps 添加WM_TIMER响应消息,编辑代码,在OnTimer函数体内编写一个定时周期到达后的处理代码】。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Wh o s a w 操作 系统为人们提供 了一些标准的控制面 d 板应用程序集, 通过这些应用程序可以完成诸如改变系统 设置、 桌面设置、 配置 网络协议等许多系统管理任务… 。 1 控制面板组件是可以扩充的。事实上 , 一些软件在安装过 程中会 自动加入新的控制面板组件。可以通过添加新 的 控制面板组件程序实现所需 的功能 。按照 Wi o s 2 n w 用 d 户界 面设计原则的规定 , 凡是影响到系统的整体行为和界
用V C实 现 控 制 面 板 应 用 程 序
赵剑秋 朱 一, 明
(. 1 中国科 学院长春光机物理所, 中国科学院研 究生院, 吉林 长春 10 3 ; 303 2 中国人 民银行 长春 中心支行, . 吉林 长春 105 ) 30 1
摘 姜 : no s Wi w 系统的控制面板是用来对计算机系统进行设置的一个工具集 , d 是由操作系统提供的。用户可以通过程序
tpdf O G( PE T Y ★A P E —P O ( WN yee L N A IN R P L T R C) n D
h d p, N s,O G Ia mlL N Iaa 2 wnC l UIT r g L N r ,O G rm ) n Pa P
所有发送给控制面板应用程序的消息由 C ipl 函 p pt A e 数处理_ 。可以看出, P pl ( 与普通窗 I处理 函数 3 ] C l p t) A e Z l 的形式很相似 , 事实上, 控制面板正是以发送消息的方式 与 C L库进行通信。参数 h nC l P w d p 为控制面板 的窗 口句 柄, s 为消息标识 , a ml la m mg I r 和 P r 2为附加 的两个参 Pa a 数, 具体的意义视 m g的值而定。 s 控制面板用 L aLba (函数把 C L库调入内存以 od i r ) ry P 后, 立刻 向 C lpl ( 发送一条 C L I T 消息 , P pe ) A t P —N1 指示 C L库做初始化工作。因为这是唯一允许返回失败信息 P 的消息, 以C L库此时应该分配运行过程 中需要的所 所 P 有内存和资源 , 如果因为 内存不够 或者其它原 因不能继 续, 就返回零值 。 控制面板将不再处理这个 C L库 , 自 P 并 动卸下它。由于 C L库可以支持多个组件 , P 所有 a) L库 初始化完毕后 , 控制面板 向每个 C L库 的 C Ipl ( 函 P PA p t ) e 数发送一条 C L G删 P —】 T消息 , 此时 a) L库返回它 所支持的组件数 。接下来 , 控制面板荐针对每一个组件 向 C lp l( 函数发送 多条 C L N WI Q R PA p t) e P — E N UIE消息, 目 的是取得每个组件对应 的图标 、 名称和提示信息 ,P C L库 可以在处理这条消息时依次初始化各个组件的对话框。 进行到这一步后 , 控制面板显示出所有组件的图标, 并开始接受用户的选择。当用户双击某个组件的图标时, 控制面板就会向该组件所 在 的 C L库 发送 一条 C L P P_
me t i r .A n r l a e p lt ei si a L h vn I e tn i p.I i at l ldsu sh w raea p lt h t la o c t n l p s e o op a e r d n DL a i a x e s n c 1 n t s riewi i s o t cet n a pe a l l w g l o h c l c O t wi l y u∞ s p r x ̄ u tn d c r tpcl u e e i sl em o wa ' . b t sa kl e y i / k g c o n a mo s t n k s tg i t i n o be l k t . r l a d d u l—c c i as i me
Cr a i g Co to n lAp ltwih VC + + e tn n r l Pa e p e t
’ Z HAO i i Z Ja u 一. HU ig mq M n 2 C a gh nC nrl rnh o teP ol’ a ko hn , hn cu 30 1 C ia . hn cu e t ac f h ep S n f iaC a gh n10 5 , n ) aB e B C h
Ke od :o t l a e ; mp n nsa p t A I cl a kf n t n y w r s cn r n lc o e t p h ; P ;a b c c o op o l u i
1 Widw 系统 控 制面板 应用程 序 的工作 原 理 no s
Ab t c : h u hW id ws r v e u e f tn ad cn rlpn l p l s p o l r l we d s a t T o g n o o i san mb r a d r o to a e a pe . e p a ea o d t a d r r p d os t e l O o e u u q i - n st s i o r e u e o t r 0 年
计 算 机 技 术 与 发 展
C P T RT C N L G N E E O ME T OM U E E H O O Y A D D V L P N
V16 。 o1 . N . 6
Jn 2 0 u. 06
来实现定制自己的控制面版。每一个控制面板应用程序实际上是一个扩展名为 cI p的动态链接库( I 组件程序。 D上) 文中 以控制鼠标属性为例 , 详细介绍了甩 V 十十实现控制面板应用程序的原理和具体实现方法 。 C 关键词: 控制面板 ; 组件程序 ;P ; A I回调函数 中田分类号: P 1 . T 311 文献标识码 : A 文章缩号:6 3 6 9 (06 0 —01 —0 17 - 2 X 20 )6 10 3
( .h ncu ntueo p c, ie ca i dP yi , hns cdmyo , i c 。 hr h n 10 3 , hn ; 1 C agh nIsi t f t sFn hnc a hs C i eA a e f c neC a t O i Me sn s c e Se  ̄ u 30 3 C i a
相关文档
最新文档