一些东西

窗体的扩展样式GWL_EXSTYLE: 用于SetWindowLong  SetWindowLong(Handle, GWL_EXSTYLE, GetWindowLong(Handle, GWL_EXSTYLE) or                                                                   WS_EX_TRANSPARENT or                                         阅读详情

由于自己不是专业的程序员,对C、C++、VC等也还基本属于门外汉的水平,更主要的是,自己仅仅是在心血来潮的时候才编写、阅读一些程序,很多时候以前学会的东西,过一段时间后又忘得一干二净了,以前用过的一些现成的代码又不知哪里找了。因此,在这里将这些自己在各个时候用到的一些能简单直接拿来使用的代码做一下记录,方便自己查找。【不定期更新】

【备注】:下面的代码都没有注明需要包含哪些头文件,可能某些代码需要额外包含某些头文件,自己试试看了。

目录:
1、通过PC喇叭演奏音乐    2、向指定窗口发送文本内容    3、锁闭、解锁光驱面板上的按钮

4、设置窗口透明度            5、设置窗口置顶                    6、设置鼠标穿透

7、VC用字符串截取字符串的函数(比AfxExtractSubString更好)    8、读取整型内存数据

9、关机函数, 适用9X和NT   10、将16进制字符串转换为10进制数值    11、在CTreeCtrl中使用32位色的图标

=========================================================================
=========================================================================

1、通过PC喇叭演奏音乐                                                                  (返回顶部)

// 通过PC喇叭演奏音乐
void  beep_music(DWORD frequency[], DWORD delay[], int  n)
//  DWORD frequency[]:所演奏音乐的频率表
//  DWORD delay[]:所演奏音乐的延时表
//  int n:频率表和延时表数组的长度,两表长度应该一致
{
    
int circle;
    
for(circle=0;circle<n;circle++)
    
{
        Beep(frequency[circle],delay[circle]);
    }

}

C/C++中的音乐频率对应列表

音频/音亮

C(1)

D(2)

E(3)

F(4)

G(5)

A(6)

B(7)

低音

131

147

165

175

196

220

247

中音

262

296

330

349

392

440

494

高音

523

587

659

698

784

880

988

高二度

1047

1175

1319

1397

1568

1760

1976

音乐节拍

一个节拍延时:2400    分为 1/2节拍…………1/8节拍 依次除以2即可

例:
void  main() /*用PC喇叭演奏“生日快乐”*/
{
    unsigned frequency[]
={392,392,440,392,523,494,
        
392,392,440,392,587,523,
        
392,392,784,659,523,494,440,
        
698,698,659,523,587,523}
;/*这个是频率表*/
    unsigned delay[]
={375,125,500,500,500,1000,
        
375,125,500,500,500,1000,
        
375,125,500,500,500,500,1000,
        
375,125,500,500,500,1000,}
;/*这个是节拍表*/
    beep_music(frequency, delay,
25);
}


2、向指定窗口发送文本内容                                                                (返回顶部)
【我将其用于网游的自动喊话中】

// 向指定窗口发送文本内容,非Unicode版本
void  SendStringA(HWND hWnd, char   *  str, int  len)
{
    
int i;
    BYTE ch;
    
if(hWnd)
    
{
        
for(i=0;i<len;)
        
{
            ch
=(BYTE)str[i];
            
if(IsDBCSLeadByte(ch))
            
{
                i
++;
                SendMessageA(hWnd,WM_IME_CHAR,MAKEWORD((BYTE)str[i],ch),
0);
                i
++;
            }

            
else
            
{
                SendMessageA(hWnd, WM_IME_CHAR, (WORD)ch, 
0);
                i
++;
            }
            
        }

        PostMessage(hWnd, WM_KEYDOWN, VK_RETURN, 
0); //发送回车键
    }

}

// 向指定窗口发送文本内容,Unicode版本
void  SendStringW(HWND hWnd,WCHAR  *  str, int  len)
{
    
int i;
    
if(hWnd)
    
{
        
for(i=0;i<len;i++)
        
{
            SendMessageW(hWnd, WM_IME_CHAR, str[i], 
0);
        }

        PostMessage(hWnd, WM_KEYDOWN, VK_RETURN, 
0); //发送回车键
    }

}

3、锁闭、解锁光驱面板上的按钮                                                        (返回顶部)
// 锁闭、解锁光驱面板上的按钮
BOOL LockCD( char   * DriveLetter,BOOL Lock)
//  char *DriveLetter:待锁闭、解锁的光驱盘符
//  BOOL Lock:TURE表示锁闭,FALSE表示解锁
{
    
char szDevice[10];
    ::sprintf_s( szDevice,
"//./%c:", DriveLetter[0] );
    HANDLE m_handle;
    m_handle
=CreateFileA(szDevice,GENERIC_READ|GENERIC_WRITE,
        FILE_SHARE_READ
|FILE_SHARE_WRITE,NULL,OPEN_EXISTING,NULL,NULL);
    DWORD   dw;
    PREVENT_MEDIA_REMOVAL   rPMR;
    rPMR.PreventMediaRemoval
=Lock;
    
if(m_handle==NULL)
        
return FALSE;
    BOOL fResult
=DeviceIoControl(m_handle,IOCTL_STORAGE_MEDIA_REMOVAL,&rPMR,sizeof(rPMR),NULL,0,&dw,NULL);
    
//IOCTL_STORAGE_MEDIA_REMOVAL:Enables or disables the media eject mechanism. 
    CloseHandle(m_handle);
    
return fResult;
}

4、设置窗口透明度                                                                   (返回顶部)
// 设置窗口透明度
void  SetTransparence(HWND hWnd,BYTE Pos)
{
    SetWindowLong(hWnd,GWL_EXSTYLE,GetWindowLong(hWnd,GWL_EXSTYLE) 
| WS_EX_LAYERED);
    SetLayeredWindowAttributes(hWnd,
0,Pos,LWA_ALPHA);
}

5、设置窗口置顶                                                                        (返回顶部)
// 设置窗口置顶
BOOL SetWindowTopmost(HWND hWnd,BOOL top)
{
    
if(top)
        
return SetWindowPos(hWnd,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE | SWP_NOSIZE);
    
else
        
return SetWindowPos(hWnd,HWND_NOTOPMOST,0,0,0,0,SWP_NOMOVE | SWP_NOSIZE);
}

6、设置鼠标穿透                                                                         (返回顶部)
// 设置鼠标穿透
void  SetShuBiaoChuanTou(HWND hWnd,BOOL Status)
{
    
if(Status)
    
{
        
//鼠标穿透
        LONG dwNewLong = GetWindowLong(hWnd, GWL_EXSTYLE);
        dwNewLong 
|= WS_EX_TRANSPARENT | WS_EX_LAYERED;
        SetWindowLong(hWnd, GWL_EXSTYLE, dwNewLong);
    }

    
else
    
{    //取消穿透
        LONG dwNewLong = GetWindowLong(hWnd, GWL_EXSTYLE);
        dwNewLong 
&= ~WS_EX_TRANSPARENT;
        SetWindowLong(hWnd, GWL_EXSTYLE, dwNewLong);
    }

}

7、VC用字符串截取字符串的函数(比AfxExtractSubString更好)

8、读取整型内存数据                                                                      (返回顶部)
// 读取整型内存数据
int  ReadIntMemory(HWND hWnd,DWORD offset)
{
    
int *lpBuffer=NULL;
    SIZE_T nSize
=sizeof(int);
    DWORD IdThread;
    MEMORY_BASIC_INFORMATION mbi;
    BYTE baseAddress 
= 0;
    
int IntValue=0;
    ::GetWindowThreadProcessId(hWnd,
&IdThread);
    HANDLE hProcess 
= OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ,FALSE,IdThread);
    ::VirtualQueryEx(hProcess,
&baseAddress, &mbi, sizeof(mbi));
    ::ReadProcessMemory(hProcess,(LPCVOID)(baseAddress
+offset),(PVOID)&IntValue,nSize,NULL);
    
if(lpBuffer)
        
*lpBuffer=IntValue;
    ::CloseHandle(hProcess);
    
return IntValue;
}

9、关机函数, 适用9X和NT                                                                    (返回顶部)
// 提升进程权限以便可以使用ExitWindowsEx函数进行关机操作
void  EnableDebugPriv()
{
    HANDLE   hToken;
    LUID   sedebugnameValue;
    TOKEN_PRIVILEGES   tkp;  


    
if   (   !   OpenProcessToken(   GetCurrentProcess(),   
        TOKEN_ADJUST_PRIVILEGES   
|   TOKEN_QUERY,   &hToken   )   )   
        
return;   
    
if   (   !   LookupPrivilegeValue(   NULL,   SE_DEBUG_NAME,   &sedebugnameValue   )   )   
    
{   
        CloseHandle(   hToken   );   
        
return;   
    }
   
    tkp.PrivilegeCount   
=   1;   
    tkp.Privileges[
0].Luid   =   sedebugnameValue;   
    tkp.Privileges[
0].Attributes   =   SE_PRIVILEGE_ENABLED;   
    
if   (   !   AdjustTokenPrivileges(   hToken,   FALSE,   &tkp,   sizeof   tkp,   NULL,   NULL   )   )   
        CloseHandle(   hToken   );   
}

// 判断当前操作系统是否为NT系统,是则返回真,否(即是win9x系统)则返回否
BOOL IsWin2000()
{
    OSVERSIONINFO winInfo;
    winInfo.dwOSVersionInfoSize 
= sizeof(OSVERSIONINFO);
    GetVersionEx(
&winInfo);

    
if (winInfo.dwMajorVersion == 5)    //win2000 or winXP
        return TRUE;
    
else 
        
return FALSE;
}

// 关机函数, 适用9X和NT
void  ShutDownSys()
{
    EnableDebugPriv();
    
    
if (IsWin2000())
        WinExec(
"ShutDown -s -f -t 0 -c "    WINDOWS将在上面的时间内关机,请做好保存工作!"", SW_SHOW);
    
else
        ExitWindowsEx(EWX_SHUTDOWN 
| EWX_FORCE | EWX_POWEROFF,NULL); 
    
//ExitWindowsEx(EWX_SHUTDOWN   |   EWX_FORCE,   0);
}

10、将16进制字符串转换为10进制数值                                            (返回顶部)
// 将16进制字符串转换为10进制数值
long   int  String16ToInt10( CString str16 )
{
    
long int temp=0;
    
//CString strKeyValue = chKey;
    
//str16[1];
    for(int i = 0;  i< str16.GetLength();  i++)
    
{
        
int nDecNum;
        
switch(str16[i])
        
{
        
case 'a':
        
case 'A':    nDecNum = 10;    break;
        
case 'b':
        
case 'B':    nDecNum = 11;    break;
        
case 'c':
        
case 'C':   nDecNum = 12;   break;
        
case 'd':
        
case 'D':   nDecNum = 13;   break;
        
case 'e':
        
case 'E':   nDecNum = 14;   break;
        
case 'f':
        
case 'F':   nDecNum = 15;   break;
        
case '0':
        
case '1':
        
case '2':
        
case '3':
        
case '4':
        
case '5':
        
case '6':
        
case '7':
        
case '8':
        
case '9':    nDecNum = str16[i] - '0';     break;
        
default:     return temp;            
        }

        temp 
+= nDecNum * (int)pow((double)16,str16.GetLength()-i -1);
    }

    
return temp;
}

 

11、在CTreeCtrl中使用32位色的图标                                            (返回顶部)

原文见http://www.codeproject.com/KB/tree/TreeHighIcon.aspx

In your dialog class header, just add two attributes:
CImageList m_imageList; //image list used by the tree
CBitmap m_bitmap; //bitmap witch loads 32bits bitmap

At the end of InitDialog
// Create a 32bits ImageList
m_imageList.Create (16, 16, ILC_COLOR32 , 1,1);

//Add the bitmap to the ImageList
m_bitmap.LoadBitmap(IDB_BITMAP_HIGHCOLOR);
m_imageList.Add(&m_bitmap, RGB(255,0,255));

//Manage your tree items......
m_tree.SetImageList (&m_imageList, TVSIL_NORMAL);
m_tree.InsertItem("RootItem",0,0,TVI_ROOT);

奇迹按键精灵挂机脚本_奇迹挂机捡东西脚本 首先声明:本人属于菜鸟级别,纯手动自己编写,大神可给出简化思路.玩奇迹多年,一直盯着屏幕看东西太累了,做个简单脚本让角色自己捡东西,定点刷怪(捡东西后回定点坐标),误捡物品自动扔出,脚本比较啰嗦,希望对新人能有帮助。我是使用的大漠插件,识别奇迹里的坐标及掉物品名称,字库附后,游戏分辨率800*600有兴趣的可以留言讨论。字库文件要放到E:\damo2\[hide]Set dm = createob... 阅读详情

相关推荐

C++两万字总结Windows系统中的Layered分层窗口技术(附源码)

在开发Windows应用程序时,我们会时常使用Layered分层窗口实现特殊的视觉效果。在Windows系统中,操作Layered分层窗口的API函数分别是SetLayeredWindowAttributes和UpdateLayeredWindow,其中SetLayeredWindowAttributes可以设置窗口的透明度,UpdateLayeredWindow则能实现各种特殊效果的异形窗口。 今天就来详细介绍一下如何使用这两个函数去实现指定效果的Layered分层窗口,以...

dvlinker的技术专栏 1万+

WS_EX_TRANSPARENT - 它实际上做了什么?

MSDN是这样说的,在窗口下方(由同一个线程创建)的兄弟姐妹被绘制之前,不应该对窗口进行绘制。窗口显示为透明,因为底层兄弟窗口的位已经被绘制。 要在没有这些限制的情况下实现透明度,请使用SetWindowRgn函数。 根据我的理解就是, 透明使你的事件(如鼠标单击)从窗口 穿过。而不透明度只是一个单独的概念,它指示窗口管理器在绘制表单时应用alphabLending。这两件事没有关系,...

qq_39529180的博客 5674

记录一些东西

NULL 博文链接:https://celerity.iteye.com/blog/339376

minigui 按钮点击弹窗外部 弹窗消失功能 WS_EX_TRANSPARENT

创建对话框的时候添加WS_EX_TRANSPARENT属性,窗口事件穿透到底层窗口。 WS_EX_TRANSPARENT属性是对鼠标点击事件的透明,也就是说,鼠标点在一个具有透明属性的窗口上,鼠标消息将传递给其下面不具有透明属性的窗口。 转载于:https://www.cnblogs.com/hanrp/p/11177528.html...

weixin_30656145的博客 511

国产Flash替代方案:手把手教你用XSCT烧写ZYNQ7045的BOOT.BIN(附完整命令解析)

本文详细介绍了国产Flash替代方案在ZYNQ7045上的应用,通过XSCT工具链实现BOOT.BIN的精准烧写。内容涵盖国产Flash兼容性检查、PetaLinux环境搭建、XSCT烧写全流程及故障排查,帮助开发者高效完成国产化替代,提升硬件开发效率。

weixin_33670786的博客 427

永不消逝的电波 -GSM空口信号的接收与解码

一开始接触软件无线电应该是从很早之前对RFID洗衣卡的解密开始的,后来接触人员定位,慢慢的打开了这样一扇大门。。。。 翻到之前做的GSM信号的接收解码,今天就对其过程做一个记录,也不是什么新颖的内容,权当是记录和回忆了。 对于GSM网络的相关内容,不是非常的熟悉,如有不正确的,欢迎批评指正。

Jack.Xu 专栏 1万+

Windows 窗口透明知识点

1。透明窗口要求: 窗口不能是Child类型 要使使窗体拥有透明效果,首先要有WS_EX_LAYERED扩展属性,方法可以在CreateWindowEx时指定,也可以SetWindowLong动态设置。如下代码可设置分层窗口: LONG style = GetWindowLong(m_hWnd, GWL_EXSTYLE); style |= WS_EX_LAYERED; SetWindowLo...

smartDMer的专栏 3655

facebook协议

支持同时登录多个Facebook账号,按照关键词采集小组地址,群发小组,批量添加推荐人,群发推 荐人消息,采集个人Facebook用户,群发用户私信,群发主页评论。通过客服台管理功能,和粉丝互动聊天,通过话术快捷回复,自动翻译聊天记录。通过FaceBook小组采集小组成员id,或者通过FaceBook个人主页,采集主页上粉丝批量操作已FaceBook账号添加推荐热,可以指定添加某个国家的推荐人,可以设置每个账号添加推荐人个数去重模式:所有的FaceBook账号不添加重复的推荐人。

2503_90751938的博客 958

好东西啊好东西啊

好东西啊好东西啊好东西啊好东西啊好东西啊好东西啊好东西啊好东西啊好东西啊好东西啊好东西啊好东西啊好东西啊好东西啊好东西啊好东西啊好东西啊好东西啊好东西啊好东西啊好东西啊好东西啊...

liaomin789的博客 160

SpringBoot整合oceanbase,实现oracle无缝切换到oceanbase

随着去“IOE”化的潮流,近些年来,许多与国家相关的项目不约而同到地往”国产化“方向靠拢,不可避免地,一些项目可能需要进行数据库迁移。

4623

9.9华为OD机试真题 新系统 - 受限任务分配 (Java/Py/C/C++/Js/Go)

华为OD机试真题 新系统【受限任务分配】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题 【受限任务分配】多语言题解。

qq_45776114的博客 729

好东西

好东西当然是好。(也许有人把最后一个看成女子) 但坏东西,也不一定是好东西, 也不一定是坏东西。

iteye_1509的博客 114

SpringBoot实战教程-springboot概论

Spring Boot 是一个快速开发框架,能够快速的整合第三方框架,简化XML配置,全部采用注解形式,以及自动配置。内置web容器,帮助开发者能够实现快速开发,简化了应用系统的初始搭建以及开发过程。

鸟哥哥的专栏 4155

扔东西的五个标准

做很多事情需要自己做抉择,但是如何让自己做好抉择呢,也就是有个自己做一些事的标准,仍东西也有相应的标准, 这篇文章主要总结了扔东西的五个标准;在整理东西的时候,会遇到各种情况,有这么一套标准,就不会让自己难以做决策!

qq_41286360的博客 436

069_死区效应对输出电压畸变的补偿思路

死区效应导致逆变器输出电压在过零点出现台阶畸变,引发THD升高。其本质是死区期间续流二极管钳位造成的非线性误差,与电流方向、负载大小、母线电压耦合。补偿需结合前馈(基于电流方向自适应调整偏置)与反馈(抑制残余谐波),关键在于准确判断电流方向(采用滞环滤波避免跳变)、合理设置补偿量(随负载动态调整),并注意补偿位置、极性及限幅防漂移。调试应通过差分探头、FFT频谱等手段验证效果,最终实现全负载范围内的低畸变输出。

2401_88858637的博客 21

计算机视觉:AI生成内容(AIGC)对视觉领域的冲击

计算机视觉:AI生成内容(AIGC)对视觉领域的冲击​ 人工智能,计算机视觉,大模型,AI,在信息技术日新月异的当下,计算机视觉作为人工智能领域的关键分支,已经深度融入了我们生活与工作的各个层面。从安防监控系统里精准的人脸识别,助力维护公共安全;到工业生产线上高效的产品质量检测,保障产品品质;再到医疗影像分析中为疾病诊断提供有力支持,计算机视觉技术凭借其对视觉信息的强大处理与理解能力,不断推动着各行业的发展与变革。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 17万+

这是个好东西啊

<br />这是个好东西啊

zhoutao1111的专栏 248

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

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

天才小毒妃 > 第943章 小东西很努力

这个空间里的毒物长得千奇百怪的,就像是海里的水母一样,像是植物又像是动物,小东西也吧知道它们是什么玩意,只知道它们身上散发粗的恶臭味比腐烂掉的尸体还可怕。这些气味熏得小东西都吐了好几回,待的时间久了,才慢慢适应。 小东西把这个可怕的空间称作黑空间。 虽然这个空间看起来不太像储毒空间,天才小...

chengkuyan2338的博客 2782

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Istio 东西向流量管理

Istio 东西向流量管理引言术语流量拆分与导向基于比例的流量拆分创建容器组和一个服务创建DestinationRule创建VirtualService基于请求内容的流量导向创建VirtualService 引言 作为开源的服务网格,Istio可在部规模逐步扩大的过程中帮助开发人员简化流量管理。 南北向流量管理:使用Ingress将Kubernetes中的应用暴露成对外提供的服务,针对这个对外暴露的服务可以实现灰度发布、A/B测试、全量发布、流量管理等。我们把这种流量管理称为南北向流量管理,也就是入口请求

Doub1's Blog 2312

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

为什么我们说“买东西”,而不说“买南北”?

1、五行说:中国人自古就喜欢把五行和各种事物之间建立联系,比如方位、五脏、颜色、季节、生辰、刑罚等等。宇宙万物几乎就没有扯不到金木水火土上的。直到今天也如此。有一段传统相声叫《五红图》,这段相声的笑料,都源于逗哏把捧哏列举出的事物与阴阳五行强行联系在一起而产生。有兴趣可以翻翻,我在之前”四海龙王之间的亲戚关系”那篇文里提到过的,“木火金水”分别对应“东南西北”,你能买木器买金属器,但...

测试 709

明天要看的东西

明天要看的东西

常用网址:http://www.w3school.com.cn 209

这里面好多有用的东西

<br />这里面好多有用的东西。我会经常来的。

rikie的专栏 318

南北流量和东西流量——它们是什么意思?

在Service Mesh微服务架构中,我们常常会听到东西流量和南北流量两个术语。 南北流量(NORTH-SOUTH traffic)和东西流量(EAST-WEST traffic)是数据中心环境中的网络流量模式。下面我们通过一个例子来理解这两个术语。 假设我们尝试通过浏览器访问某些Web应用。Web应用部署在位于某个数据中心的应用服务器中。在多层体系结构中,典型的数据中心不仅包含应用服务器,还包含其他服务器,如负载均衡器、数据库等,以及路由器和交换机等网络组件。假设应用服务器是负载均衡器的前端。 当

L693335的博客 2363

关注我,有好东西额

关注我,有好东西额

javaTXWD123的博客 228

这个东西用着还行

这个东西用着还行这个东西用着还行这个东西用着还行这个东西用着还行这个东西用着还行

96

哈哈,可以在这里发表东西了

哈哈,可以在这里发表东西了

stepman的专栏 717
上一篇: VC用字符串截取字符串的函数(比AfxExtractSubString更好)——更正版
下一篇: 关于在DLL中获取主调用窗口的句柄
gnuljf
博客等级 码龄26年 35粉丝 66原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值