C++ 随笔 知识点 Sendmessage,FindWindow,keybd_event
2015-07-05 19:37
696 查看
1、OnOK()或OnCancel()//只对对话框有用 2、PostQuitMessage(0);//最常用 PostMessage(WM_QUIT,0,0);//最常用 ::SendMessage(AfxGetMainWnd()->m_hWnd,WM_CLOSE,0,0);//最常用 ::PostMessage(AfxGetMainWnd()->m_hWnd,WM_CLOSE,0,0);//最常用 3、ExitProcess(0);注意使用时先释放分配的内存,以免造成内存泄露 4、exit(0)正常终止程序;exit(非0)非正常终止程序 5、OnClose(); voidCMainFrame::OnClose() { //TODO:Addyourmessagehandlercodehereand/orcalldefault if(MessageBox("确定要退出吗?","提示",MB_YESNO|MB_DEFBUTTON2)==IDYES) { CFrameWnd::OnClose(); } } 6、向主窗口发送WM_CLOSE消息 SendMessage(WM_CLOSE); 如果要在其它类关闭应用程序,则 AfxGetMainWnd->SendMessage(WM_CLOSE) Windows提供了一个模拟键盘API函数Keybd_event(),使用该函数可以相应的屏蔽键盘的动作。Keybd_event()函数能触发一个按键事件,也就是说会产生一个WM_KEYDOWN或WM_KEYUP消息。 该函数原型如下: VOIDkeybd_event( BYTEbVk,//virtual-keycode BYTEbScan,//hardwarescancode DWORDdwFlags,//flagsspecifyingvariousfunctionoptions DWORDdwExtraInfo//additionaldataassociatedwithkeystroke ); 从原型可以看出,Keybd_event()共有四个参数: 第一个为按键的虚拟键值,如回车键为vk_return,tab键为vk_tab(其他具体的参见附录:常用模拟键的键值对照表); 第二个参数为扫描码,一般不用设置,用0代替就行; 第三个参数为选项标志,如果为keydown则置0即可,如果为keyup则设成"KEYEVENTF_KEYUP"; 第四个参数一般也是置0即可。 例子1:模拟按下'A'键 keybd_event(65,0,0,0); keybd_event(65,0,KEYEVENTF_KEYUP,0); 例子2:模拟按下'ALT+F4'键 keybd_event(18,0,0,0); keybd_event(115,0,0,0); keybd_event(115,0,KEYEVENTF_KEYUP,0); keybd_event(18,0,KEYEVENTF_KEYUP,0);
VC中退出应用程序-几种很有用的方法
HWNDnpWnd,childWnd;
npWnd=FindWindow("notepad",NULL);
childWnd=FindWindowEx(npWnd,NULL,"Edit",NULL);
SendMessage(childWnd,(UINT)WM_SETTEXT,NULL,(LPARAM)"hello!");
发键盘消息 SendMessage(hwnd,WM_KENDOWN,wParam,lParam);//hwnd是记事本窗口句柄 SendMessage(hwnd,WM_KENUP,wParam,lParam); 模拟键盘按下,放开
C语言可以调用所有dos命令。
通过system()函数调用。
不要新的黑窗加start
system("start/Bnotepadabc.txt");
启动notepad,编abc.txt。
start的选择很多,例如:
/B--不开新窗
/min--窗最小化
C语言调用dos命令的问题
假如在我的电脑上有一个a.exe的程序,存在D盘,现在要用C语言写一段代码,用上dos的at命令,让程序在每天的中午12点调用a.exe。
#include<stdio.h>
#include<stdlib.h>
voidmain()
{
char*comStr1="at12:00/interactive/every:M,T,W,Th,F,S,Sud:\a.exe";//每天12点自动执行,弹出a.exe界面
char*comStr2="at12:00/every:M,T,W,Th,F,S,Sud:\a.exe";//每天12点自动执行,不弹出a.exe界面,后台执行
char*comDel="at/delete/yes";//删除计划
charc;
printf("执行时是否弹出界面(y/n):\n");
scanf("%c",&c);
c=tolower(c);
if(c=='y')//需要弹出界面进行交互
system(comStr1);
elseif(c=='n')//后台运行
system(comStr2);
else
printf("输入错误!\n");
//下面是取消计划的功能,如果你不想有取消功能,就删除下面的代码
printf("是否要删除所有计划(y/n):\n");
getchar();//清空刚提示输入时输入的回车符
scanf("%c",&c);
c=tolower(c);
if(c=='y')//此时删除所有计划
{
system(comDel);
printf("已删除所有计划!\n");
}
getchar();
}
C++如何移动文件
MoveFile();加头文件<windows.h>
MoveFile(TEXT("C:\\1.JPG"),TEXT("D:\\1.JPG"));
相关文章推荐
- C语言-输出彩色字体
- C++ 函数对象
- c++ primer读书笔记-第八章 标准IO库
- 【学习笔记】【C语言】static和extern对变量的作用
- 【学习笔记】【C语言】static和extern对函数的作用
- C++基于该模型模板包括节目外实例
- C语言中的位操作
- C语言学习笔记:14_内部函数和外部函数
- C++知识点随笔(一):this指针、拷贝构造函数、初始化列表
- 从C语言角度看OC编程里类、类对象
- C语言学习笔记:13_变量和函数的声明与定义
- C语言学习笔记:12_变量的存储方式和生存期
- 【C语言】printf函数和scanf函数典型例子
- C语言-共用体
- C++11初探
- 【C++】通用单链表
- c++ const 类型转化初始化
- 【C/C++学习笔记】memmove()、memcpy()、memccpy()、strcpy()函数整理
- C++一些注意事项
- C语言程序的gcc翻译步骤