1、获取当前系统时间:
SYSTEMTIME systime;
GetLocalTime(&systime);
char str_time_name[MAX_PATH];
sprintf(str_time_name,"%d-%d-%d %d:%d:%d.jpg",systime.wYear,systime.wMonth,systime.wDay,systime.wHour,systime.wMinute,systime.wSecond);
printf("%s",str_time_name);
2、读取文件大小,获取文件长度
UINT read_binary_size(TCHAR file_name[])
{
HANDLE hFile = CreateFile(file_name, GENERIC_READ , 0, NULL,OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
if (hFile==NULL||hFile==INVALID_HANDLE_VALUE)
{
return 0;
}
DWORD dwFileSize= 0;
dwFileSize=GetFileSize(hFile, NULL);
CloseHandle(hFile);
return dwFileSize;
}
3、设置字体颜色
#include <windows.h>
void setColor(unsigned short ForeColor=3,unsigned short BackGroundColor=0)
//给参数默认值
{
HANDLE hCon = GetStdHandle(STD_OUTPUT_HANDLE); //
SetConsoleTextAttribute(hCon,ForeColor|BackGroundColor);
}
void OutPutDebugInfo(char *s,int level=0)
{
switch (level)
{
case 0:
setColor(7,0);//白色
printf("%s",s);
break;
case 1:
setColor(FOREGROUND_GREEN,0);;//绿色
printf("%s",s);
break;
case 2:
setColor(6,0);//黄色
printf("%s",s);
break;
case 3:
setColor(FOREGROUND_RED,0);//红色
printf("%s",s);
break;
default:
setColor(7,0);//白色
printf("%s",s);
break;
}
}
4、字符串交换
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
//字符串交换,string函数自动进行内存泄露管理,不用自己释放指针
void swap(char *p1,char *p2)
{
int max=sizeof(p1)>sizeof(p2)?sizeof(p1):sizeof(p2);
char *temp=(char*)malloc(sizeof(max));
strcpy(temp,p1);
strcpy(p1,p2);
strcpy(p2,temp);
}
void swap2(char *p1,char *p2)
{
char *temp=(char *)malloc(100);
temp=p1;
p1=p2;
p2=temp;
}
void main()
{
char pa[100]="123456789";
char pb[100]="abcdefghijkgsfsg";
printf("pa:%s\npb:%s\n",pa,pb);
swap(pa,pb);
printf("pa:%s\npb:%s\n",pa,pb);
}
5、MFC获取命令行参数
//获取命令行参数
//第一种方法
AfxMessageBox(::GetCommandLine());
//第二种方法
for(int i=0;i<__argc;i++)
{
AfxMessageBox(__argv[i]);
}
//第三种方法
AfxMessageBox(AfxGetApp()->m_lpCmdLine);
//其他方法 如果希望支持MFC应用程序的标准命令行,还可以使用MFC中的CCommandLineInfo类。
6、杀死进程API
DWORD dwProcID;
HANDLE hProcess;
HWND h =(HWND__ *) FindWindow(0, "无标题 - 记事本");
if (h==NULL) {
//ShowMessage("Not found.");
AfxMessageBox("not found!");
return;
}else{
AfxMessageBox("找到窗口,开始关闭它!");
}
GetWindowThreadProcessId(h, &dwProcID);
CString info;
info.Format("进程ID:%d",&dwProcID);
AfxMessageBox(info);
hProcess = OpenProcess(PROCESS_ALL_ACCESS, 0, dwProcID);
TerminateProcess(hProcess, 0);
7、百度查Ip归属地
//百度联网查IP归属地
void CBaiduIPDlg::OnOK()
{
CString m_ReturnStr="";
CString m_ip;
CString straddress("http://www.baidu.com/s?wd=");
GetDlgItem(IDC_EDIT1)->GetWindowText(m_ip);
straddress+=m_ip;
straddress+="&cl=3";
CInternetSession session;
CString strBody=_T("");
session.SetOption(INTERNET_OPTION_CONNECT_TIMEOUT,1000*30); //连接超时设置
session.SetOption(INTERNET_OPTION_CONNECT_BACKOFF,1000); //在重试连接之间的等待的延时值在毫秒级
session.SetOption(INTERNET_OPTION_CONNECT_RETRIES,1);
CHttpFile* httpfile=NULL;
try
{
httpfile=(CHttpFile*)session.OpenURL(straddress,1,INTERNET_FLAG_TRANSFER_ASCII|INTERNET_FLAG_RELOAD,NULL,0);
}
catch(CInternetException* m_pException)
{
httpfile=NULL;
m_pException->Delete();
AfxMessageBox(L"CInternetException");
return ;
}
char cBuf[4096]={0};
UINT nBuf;
if(httpfile)
{
while (nBuf = httpfile->Read(cBuf,4095))
{
cBuf[nBuf]=0;
strBody+=cBuf;
}
}
m_ReturnStr=strBody;
if (httpfile)
{
httpfile->Close();
delete httpfile;
}
session.Close();
//转换编码,
/*
CP_ACP:ANSI字符集;
CP_MACCP:Macintosh代码页;
CP_OEMCP:OEM代码页;
CP_SYMBOL:符号字符集(42);
CP_THREAD_ACP:当前线程ANSI代码页;
CP_UTF7:使用UTF-7转换;
CP_UTF8:使用UTF-8转换。
*/
m_ReturnStr = Convert(m_ReturnStr,CP_ACP,CP_UTF8);
MessageBox(m_ReturnStr,L"提示",0);
m_ReturnStr.Delete(0,m_ReturnStr.Find(L"来自")+6);
CString m_Dlwz=m_ReturnStr.Left(m_ReturnStr.Find(L" "));
MessageBox(m_Dlwz,L"Hello云守护");
}
8、复制
//复制
BOOL CBaiduIPDlg::CopyToClipBoard(CString data)
{
UpdateData(TRUE);
if(!OpenClipboard())
{
MessageBox(_T("剪贴板没有打开"),_T("提示"),MB_OK);
return FALSE;
}
EmptyClipboard();
USES_CONVERSION;
char * pGlobal;
HGLOBAL hGlobal; // 一个句柄,其实就是HANDLE
hGlobal = GlobalAlloc(GHND | GMEM_SHARE, (strlen(T2A(data))+1) * sizeof(TCHAR)); // 这个句柄,指向了一段内存
pGlobal = (char*)GlobalLock(hGlobal); // 把这段内存lock起来使用
strcpy(pGlobal, T2A(data)); // 复制cst到这段内存
GlobalUnlock(hGlobal); // unlock
SetClipboardData(CF_TEXT, hGlobal); // 直接把指向交给函数解决。
CloseClipboard();
MessageBox(_T("成功复制到剪贴板!"),_T("提示"),MB_OK);
return TRUE;
}
9、粘贴
//粘贴
BOOL CBaiduIPDlg::PasteFromClipBoard(CString* data)
{
CString fromClipboard;
if(!OpenClipboard())
{
MessageBox(_T("剪贴板没有打开"),_T("提示"),MB_OK);
return FALSE;
}
HANDLE hData = GetClipboardData(CF_TEXT);
char * buffer = (char*)GlobalLock(hData);
fromClipboard = buffer;
GlobalUnlock(hData);
CloseClipboard();
*data=fromClipboard;
return TRUE;
}
void CBaiduIPDlg::OnButton2()
{
CString data;
PasteFromClipBoard(&data);
AfxMessageBox(data);
GetDlgItem(IDC_EDIT1)->SetWindowText(data);
}
10、弹出对话框并定时关闭
1-》在classwizard中添加WM_TIMER消息,然后再添加一下代码
void CSampleInject::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
if (nIDEvent == 100)
{
KillTimer(nIDEvent);
keybd_event(VK_RETURN,0,0,0);
keybd_event(VK_RETURN,0,KEYEVENTF_KEYUP,0);//模拟 "回车 "命令
}
CDialog::OnTimer(nIDEvent);
}
在需要弹出对话框的地方:
SetTimer(100,1000,NULL);
AfxMessageBox(_T("正在进行绘图"));
这样,在弹出的对话框,一秒种后就关闭了。
http://blog.csdn.net/wangningyu/article/details/4798538#
11、调出关闭计算机对话框
typedef int (CALLBACK *SHUTDOWNDLG)(int); //显示关机对话框函数的指针
HINSTANCE hInstance=LoadLibrary("shell32.dll"); //载入shell32.dll
SHUTDOWNDLG ShutDownDialog; //指向shell32库中显示关机对话框函数的指针
if(hInstance!=NULL)
{
//获得函数的地址并调用之
ShutDownDialog=(SHUTDOWNDLG)GetProcAddress(hInstance,(LPSTR)60);//
(*ShutDownDialog)(0);
}
FreeLibrary(hInstance);
12、vc获取随机数
//然后调用
int GetRand(float MIN, float MAX)
{
float max;
max=RAND_MAX;
return (int)(rand()*(MAX-MIN)/max+MIN);
}
int main()
{
srand( (unsigned)time( NULL ) );//随机数计时开始
cout<<GetRand(0,1200)<<endl;
getchar();
return 0;
}
13、进制转换:
//多进制转换,num=源数据,base进制数,buffer输出数据
void work2(unsigned int num, int base,char* buffer)
{
char str[40] = {0};
int i = 0;
int j=0;
// 判断结果是否为0
if (!num)
{
printf("0\n");
return ;
}
while (num)
{
str[i++] = num % base + '0';
num /= base;
}
--i;
while (i >= 0)
{
buffer[j++]=str[i--];
}
//printf("%s\n",buffer);
}
14、vc exe和dll获取资源和释放资源:
BOOL releaseCustomResource(size_t res_id,CStringW releasePath,CString type)
{
//HMODULE hInstance = ::GetModuleHandle(NULL);//dll路径名
HMODULE hModule=GetCurrentModule();
CString szPath;
GetModuleFileName(hModule,szPath.GetBufferSetLength(MAX_PATH+1),MAX_PATH); //得到的是dll名称路径
DebugW(szPath);
//HMODULE hModule=::GetModuleHandle(szPath);
//HMODULE hModule=AfxGetResourceHandle();
//定位我们的自定义资源,这里因为我们是从本模块定位资源,所以将句柄简单地置为NULL即可
HRSRC hRsrc = ::FindResource(hModule, MAKEINTRESOURCE(res_id), type);
//第一个参数是资源所在的模块句柄,为NULL默认为当前模块(如果你的资源放在加载的DLL中,就要用对应的模块句柄了)。
if (NULL == hRsrc)
{
TCHAR err[1024];
int code=GetLastError();
GetErrString(err,code);
DebugW(L"open error:%d %s",code,err);
return FALSE;
}
//获取资源的大小
DWORD dwSize = SizeofResource(hModule, hRsrc);
if (0 == dwSize)
return FALSE;
//加载资源
HGLOBAL hGlobal = LoadResource(hModule, hRsrc);
if (NULL == hGlobal)
return FALSE;
//锁定资源
LPVOID pBuffer = LockResource(hGlobal);
if (NULL == pBuffer)
return FALSE;
//我们用刚才得到的pBuffer和dwSize来做一些需要的事情。可以直接在内存中使
//用,也可以写入到硬盘文件。这里我们简单的写入到硬盘文件,如果我们的自定
//义资源是作为嵌入DLL来应用,情况可能要复杂一些。
BOOL bRt = FALSE;
FILE* fp = _tfopen(releasePath, _T("wb"));
if (fp != NULL)
{
if (dwSize == fwrite(pBuffer, sizeof(char), dwSize, fp))
bRt = TRUE;
fclose(fp);
}
FreeResource(hGlobal);
return bRt;
}