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云守护"); }
//复制 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; }
//粘贴 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; }