一些技巧(1)

简介: 1.添加变量方法在需要添加变量的控件上右击鼠标,类别选择value,即可2.实现拖放使用函数//UINT DragQueryFile(HDROP hDrop,UINT iFile,LPTSTR lpszFile,UINT cch);//hDrop是指向拖动文件结构的句柄//iFile是以0开始的被拖动文件的序号,因为一次可能拖动多个文件。
1.添加变量方法
在需要添加变量的控件上右击鼠标,类别选择value,即可
2.实现拖放使用函数
//UINT DragQueryFile(HDROP hDrop,UINT iFile,LPTSTR lpszFile,UINT cch);
//hDrop是指向拖动文件结构的句柄
//iFile是以0开始的被拖动文件的序号,因为一次可能拖动多个文件。当此参数设置为0xFFFFFFFF,则函数返回拖动文件的数量
//lpszFile是指向文件名的缓冲区
//cch是文件名缓冲区的大小,即文件名的字节数
3.超时错误处理
FD_SET fd={1,m_hSocket};
TIMEVAL tv={nSecs,0};
if(Select(0,NULL,&fd,NULL,&tv)==0)
{
//超时错误处理
}
4.添加自定义的消息
//使用消息常量WM_USER加上一个正整数
#define WM_MYMESSAGE WM_USER+1
//在.cpp文件中消息映射的语句
BEGIN_MESSAGE_MAP(CMyWnd,CMyParentWndClass)
 ON_MESSAGE(WM_MYMESSAGE,OnMyMessage)
END_MESSAGE_MAP()
//然后在.h头文件中加入消息映射函数的原型声明如下
afx_msg LRESULT OnMyMessage(WPARAM,LPARAM);
=====================================================
        HC=::GetWindow(hCurWindow,GW_CHILD);//列表框
        EDIT_1=::GetWindow(HC,GW_HWNDNEXT);//编辑框
        EDIT_2=::GetNextWindow(EDIT_1,GW_HWNDNEXT);
        EDIT_3=::GetNextWindow(EDIT_2,GW_HWNDNEXT);//同胞窗口
        EDIT_4=::GetNextWindow(EDIT_3,GW_HWNDNEXT);//同胞窗口
        EDIT_5=::GetNextWindow(EDIT_4,GW_HWNDNEXT);//同胞窗口
============================
         CStdioFile f1;
         testrs rs1;
    CString filename, value1;
    filename = "E://tt.txt";
    rs1.Open(CRecordset::snapshot,"select * from table1");
       if(f1.Open(filename,CFile::modeCreate|CFile::modeNoTruncate|CFile::modeWrite))
    {
       while( !rs1.IsEOF() )
       {
           rs1.GetFieldValue("mobile",value1);
           f1.WriteString(value1+"/n");
           rs1.MoveNext();
       }
    }
    else MessageBox("File initializtion error","information",MB_OK);
    rs1.Close;
    f1.Close;
===================================================
使用内存文件
CMemFile MyFile;
MyFile.Open("/temp.txt",CFile::modeCreate|CFile::modeWrite);
MyFile.Attach(pAttach,dwFileLength);
===================================================
屏幕保护和能源保护功能的关闭与开启
1.关闭屏幕保护
SystemParametersInfo(SPI_SETSCREENSAVEACTIVE,FALSE,0,SPIF_SENDWININICHANGE);
2.关闭能源保护
SystemParametersInfo(SPI_SETLOWPOWERACTIVE,FALSE,0,SPIF_SENDWININICHANGE);
SystemParametersInfo(SPI_SETPOWEROFFACTIVE,FALSE,0,SPIF_SENDWININICHANGE);
3.打开
将上面中的FALSE改为TRUE即可
===================================================
用默认程序打开mp3文件
ShellExecute(0,"open","a.mp3",NULL,NULL,0);
===================================================
关机 注销
BOOL ExitWindow***(
     UINT uFlags//关机方式
    ,DWORD dwReservde//保留(直接写0即可)
    };
参数uFlags指定关机方式
EWX_LOGOFF      //终止所有进程,然后注销
EWX_POWEROFF    //关闭系统切断电源。但调用该函数的进程必须要有SE_SHUTDOWN_NAME特权
EWX_REBOOT      //关闭系统并重新启动。必须有SE_SHUTDOWN_NAME特权
EWX_SHUTDOWN    //关闭系统到并提示用户可以安全关机,文件缓冲区内容保存到磁盘,所有进程终止。必须有SE_SHUTDOWN_NAME特权
EWX_FORCE       //强制进程终止,而且系统不会发WM——QUERYENDSESSION和WM_ENDSESSION消息,这种方式会使应用程序丢失数据,应慎重使用
参数dwReservde是保留字,可以随意设置成一个数,比如1
注:
1.Windows 2000下,必须调用AdjustTokenPrivileges函数来使用SE_SHUTDOWN_NAME特权。
2.GetTokenInformation()该函数能显示那些特权是可用的,大部分特权是禁止的
3.在进行特权操作前,必须在存权令牌内使能必要的特权。可先调用OpenThreadToken函数得到存取令牌句柄,然后调用AdjustTokenPrivileges函数来使用该特权。在进行响应的操作之后,再调用一次AdjustTokenPrivileges函数来禁止一个标志的特权。
4.为了获取对应某个字符串的当前LUID,要调用LookupPrivilegeValue函数,函数LookupPrivilegeName把一个LUID值转换为相应的字符串常量。
5.特权是以字符串形式定义在WinNt.h中。当需要显示某个用户的某个特权描述时,可以使用函数LookupPrivilegeDisplayName来获得描述字符串。
=====================================================
连接远程计算机的注册表
MachineName="////"+MachineName;
LPTSTR p=MachineName.GetBuffer(MachineName.GetLength());
LONG lRet=::RegConnectRegistry(p,HKEY_PERFORMANCE_DATA,&key);
==========================================================
让应用程序从IE中获取键入的网址 
HWND hwnd=::FindWindow(_T("IEFrame"),NULL);
if(hwnd)
{
    HWND hwnd2=::FindWindowEx(hwnd,NULL,_T("Edit"),NULL);
   char sz[255];
  ::SendMessage(hwnd2,WM_GETTEXT,255,(LPARAM)sz);
  AfxMessageBox(sz);
}
结果发现不能得到正确的结果,从SPY上看,类名也全部是正确的,为什么不能得到正确的结果呢?看了他的代码后,我进行了如下改动,就可以得到正确的结果了:
HWND hwnd=::FindWindow(_T("IEFrame"),NULL);
 if(hwnd)
 {
  HWND hwnd2=::FindWindowEx(hwnd,NULL,_T("WorkerW"),NULL);
  HWND hwnd3=::FindWindowEx(hwnd2,NULL,_T("ReBarWindow32"),NULL);
  HWND hwnd4=::FindWindowEx(hwnd3,NULL,_T("ComboBoxEx32"),NULL);
  HWND hwnd5=::FindWindowEx(hwnd4,NULL,_T("ComboBox"),NULL);
  HWND hwnd6=::FindWindowEx(hwnd5,NULL,_T("Edit"),NULL);
   char sz[255];
  ::SendMessage(hwnd6,WM_GETTEXT,255,(LPARAM)sz);
  AfxMessageBox(sz);
 }
}
  以上的代码不用我解释了吧,这个问题不是什么大问题,难度也不大,但是可能会让初学者不明白为什么得不到程序某一控件的HANDLE,其实对VC来说,没有什么办不到的事情,只是需要你仔细的分析一下而已  
网络编程
目录
相关文章
|
8天前
|
Kubernetes 安全 Devops
【云效流水线 Flow 测评】驾驭云海:五大场景下的云效Flow实战部署评测
云效是一款企业级持续集成和持续交付工具,提供免费、高可用的服务,集成阿里云多种服务,支持蓝绿、分批、金丝雀等发布策略。其亮点包括快速定位问题、节省维护成本、丰富的企业级特性及与团队协作的契合。基础版和高级版分别针对小型企业和大规模团队,提供不同功能和服务。此外,云效对比Jenkins在集成阿里云服务和易用性上有优势。通过实战演示了云效在ECS和K8s上的快速部署流程,以及代码质量检测和AI智能排查功能,展示了其在DevOps流程中的高效和便捷,适合不同规模的企业使用。本文撰写用时5小时,请各位看官帮忙多多支持,如有建议也请一并给出,您的建议能帮助我下一篇更加出色。
136062 12
|
15天前
|
设计模式 前端开发 JavaScript
卓越工程布道:掌握条件判断的模式
本文是普适性的经验分享,并非按规范局限在 JavaScript 前端视角 做出的总结,除JavaScript外还深入结合了ActionScript 3.0、PHP、C / C++、Basic非纯粹OOP领域语言的经验。
241491 0
|
8天前
|
存储 SQL Apache
阿里云数据库内核 Apache Doris 基于 Workload Group 的负载隔离能力解读
阿里云数据库内核 Apache Doris 基于 Workload Group 的负载隔离能力解读
阿里云数据库内核 Apache Doris 基于 Workload Group 的负载隔离能力解读
|
13天前
|
机器学习/深度学习 数据采集 人工智能
人类生产力的解放?揭晓从大模型到AIGC的新魔法
本文从介绍大模型的概念延伸到大模型的革命意义。作者讲述了通过大模型的加持,让AIGC有了更多的可能性。
126793 6
|
13天前
|
人工智能 弹性计算 算法
一文解读:阿里云AI基础设施的演进与挑战
对于如何更好地释放云上性能助力AIGC应用创新?“阿里云弹性计算为云上客户提供了ECS GPU DeepGPU增强工具包,帮助用户在云上高效地构建AI训练和AI推理基础设施,从而提高算力利用效率。”李鹏介绍到。目前,阿里云ECS DeepGPU已经帮助众多客户实现性能的大幅提升。其中,LLM微调训练场景下性能最高可提升80%,Stable Difussion推理场景下性能最高可提升60%。
|
15天前
|
Kubernetes Cloud Native 容灾
OpenKruise v1.6 版本解读:增强多域管理能力
OpenKruise 在 2024.3 发布了最新的 v1.6 版本(ChangeLog),本文对新版本的核心特性做整体介绍。
164329 4
|
14天前
|
机器人 Linux API
基于Ollama+AnythingLLM轻松打造本地大模型知识库
Ollama是开源工具,简化了在本地运行大型语言模型(ile优化模型运行,支持GPU使用和热加载。它轻量、易用,可在Mac和Linux上通过Docker快速部署。AnythingLLM是Mintplex Labs的文档聊天机器人,支持多用户、多种文档格式,提供对话和查询模式,内置向量数据库,可高效管理大模型和文档。它也是开源的,能与Ollama结合使用,提供安全、低成本的LLM体验。这两款工具旨在促进本地高效利用和管理LLMs。
139907 28
|
15天前
|
消息中间件 安全 API
Apache RocketMQ ACL 2.0 全新升级
RocketMQ ACL 2.0 不管是在模型设计、可扩展性方面,还是安全性和性能方面都进行了全新的升级。旨在能够为用户提供精细化的访问控制,同时,简化权限的配置流程。欢迎大家尝试体验新版本,并应用在生产环境中。
105597 2
|
18天前
|
物联网 PyTorch 测试技术
手把手教你捏一个自己的Agent
Modelscope AgentFabric是一个基于ModelScope-Agent的交互式智能体应用,用于方便地创建针对各种现实应用量身定制智能体,目前已经在生产级别落地。
|
20天前
|
NoSQL Cloud Native Redis
Redis核心开发者的新征程:阿里云与Valkey社区的技术融合与创新
阿里云瑶池数据库团队后续将持续参与Valkey社区,如过往在Redis社区一样耕耘,为开源社区作出持续贡献。
Redis核心开发者的新征程:阿里云与Valkey社区的技术融合与创新