1.查看安全策略 secpol.msc

2.使用cl 批量编译时,把不需改变的先生成obj
然后把需要改变的单独生成obj(如果是.h文件,则把所有包含.h文件的*.cpp全部使用cl生成obj)
然后使用link把.obj文件链接起来

3.2008R2无法打补丁的解决方法
C:\Windows\System32\catroot2
目录权限应用到所有子目录及文件上.(里面有一个关键的权限是CrytSvc用户要用全部的权限.)

4.windows 命令行下查询当前用户:whoami|query user

5.如何拷贝一个工程的对话框资源到另一个工程中?
 有两种方法可以实现:
 
 1)你可以直接拷贝resource,用VC++以文本的方式或者直接用文本编辑器打开.rc文件,将有关的片段从
一个工程拷贝到另一个工程.你可以通过查找如下字样的片段(此片段用来定义对话框资源)来拷贝你要
的部分:
 
 IDD_MYDIALOG_ID DIALOG DISCARDABLE 0, 0, 235, 55
 
 这里的IDD_MYDIALOG_ID是你的对话框的ID,将到此片段结尾的部分全拷下来,通常你还要给新的工程
加一个ID(通过DevStudio的工具或者直接修改resource.h文件).
 2)可以通过DevStudio的copy/paste功能.首先,在编辑器以"auto"模式打开.rc文件,这时resource
正确的显示出来.然后,选中要拷贝的对话框的ID,在Edit菜单里选Copy或者按住Ctrl+C.然后打开目标
resource文件,在Edit菜单里选Paste或者按住Ctrl+V.

6.消息映射
有对话框A,B
从A中发消息给B然后B处理。
准备工作,先定义消息,如下
#define WM_B_NOTIFY WM_USER + 300
首先,必须将B的对话框句柄传送给A,暂时叫m_hWndB;
在A的发送消息的地方这样写:
::SendMessage( m_hWndB,WM_B_NOTIFY,TRUE,NULL );
这样A中的处理就完了,下面说B 中的
首先定义消息处理函数,如下
void B::ModiNotify( WPARAM wParam, LPARAM lParam )
{
  MessageBox("小样,我就不信,搞不定你!");
}
然后加消息隐射,如下:
BEGIN_MESSAGE_MAP(CB, CDialog)
  //{{AFX_MSG_MAP(CRPServerDlg)
  ON_MESSAGE( WM_B_NOTIFY,ModiNotify )
  //}}AFX_MSG_MAP
END_MESSAGE_MAP()

7.hosts本地绑定域名
管理员权限的CMD下:
notepad %windir%\system32\drivers\etc\hosts

8.word2007去掉回车
单击“word”左上角的“圆”→word选项→显示→把“段落标记”前的勾去掉→确定

9.win快捷键
osk------------打开屏幕键盘
eventvwr-------事件查看器
secpol.msc-----本地安全策略
clip(win7)-----------剪贴板查看器 clipbrd(xp)
 

  1. int CGdiWndDlg::InternetGetFile (HWND hWnd,CString szUrl,CString szFileName) 
  2. {       
  3.     DWORD dwFlags;      
  4.     InternetGetConnectedState(&dwFlags, 0);     //获取当前网络连接信息       
  5.     CHAR strAgent[64];       
  6.     sprintf(strAgent, "Agent%ld", timeGetTime()); //timeGetTime用以获取系统启动后的时间     
  7.     HINTERNET hOpen;      
  8.     if(!(dwFlags & INTERNET_CONNECTION_PROXY))         
  9.         hOpen = InternetOpenA(strAgent, INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY, NULL, NULL, 0);    
  10.     else             
  11.         hOpen = InternetOpenA(strAgent, INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);     
  12.     if(!hOpen)      
  13.     {            
  14.         AfxMessageBox("Internet连接错误!");          
  15.         return -1;     
  16.     }        
  17.     DWORD dwSize;        //CHAR   szHead[] = "Accept: **/r/nAccept-Language: zh-cn/r/nAccept-Encoding: gzip, deflate/r/nUser-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; MyIE2; .NET CLR 1.1.4322)");     
  18.     VOID* szTemp[16384];      
  19.     HINTERNET  hConnect;    
  20.     CFile file;      
  21.     if ( !(hConnect = InternetOpenUrlA ( hOpen, szUrl, szHead,          
  22.         lstrlenA (szHead), INTERNET_FLAG_DONT_CACHE | INTERNET_FLAG_PRAGMA_NOCACHE | INTERNET_FLAG_RELOAD, 0)))     
  23.     {         
  24.         AfxMessageBox("不能打开该URL!");       
  25.         return -1;    
  26.     }        
  27.     if  (file.Open(szFileName,CFile::modeWrite|CFile::modeCreate)==FALSE )      
  28.     {        
  29.         AfxMessageBox("不能打开本地的文件!");        
  30.         return -1;      
  31.     }        
  32.     DWORD dwByteToRead = 0;       
  33.     DWORD dwSizeOfRq = 4;     
  34.     DWORD dwBytes = 0;    
  35.     if (!HttpQueryInfo(hConnect, HTTP_QUERY_CONTENT_LENGTH | HTTP_QUERY_FLAG_NUMBER,      
  36.         (LPVOID)&dwByteToRead, &dwSizeOfRq, NULL))     
  37.     {             
  38.         dwByteToRead = 0;      
  39.     }     
  40.     DWORD start;   //记录时间       
  41.     DWORD end;       
  42.     DWORD time;    
  43.     int nPos;     
  44.     CString tempstring;      
  45.     time = 10;       
  46.     start = timeGetTime();      
  47.     do      
  48.     {            
  49.         if (!InternetReadFile (hConnect, szTemp, 16384,  &dwSize))  
  50.         {                
  51.             AfxMessageBox("读文件出错!");         
  52.             file.Close();                  
  53.             return -1;           
  54.         }            
  55.         if (dwSize==0)     
  56.             break;           
  57.         else                   
  58.             file.Write(szTemp,dwSize);       
  59.         dwBytes+=dwSize;             
  60.         if(dwByteToRead)          
  61.         {                    
  62.             tempstring.Format("%d%%",(dwBytes*100)/dwByteToRead);  
  63.             nPos=(dwBytes*100)/dwByteToRead; //              
  64.             SetDlgItemText(IDC_PERCENT_TEXT,tempstring);          
  65.         }            
  66.         float fSpeed = 0;    //计算速度         
  67.         fSpeed = (float)dwBytes;          
  68.         fSpeed /= (float)((float)time/(float)1000);      
  69.         fSpeed /= (float)1024;               // 
  70.         tempstring.Format("%4.2fKB/S",fSpeed);             
  71.         TRACE(tempstring);   //下面的代码我将作出解释,请看下文 
  72.         SHOWINFO* pShowInfo=new SHOWINFO;             
  73.         pShowInfo->strSpeed.Format("%4.1f KB/秒",fSpeed);          
  74.         pShowInfo->nPos=nPos; ::PostMessage(hWnd,MSG_PROGRESS,0,(LPARAM)pShowInfo);  
  75.         end = timeGetTime();            
  76.         time = end - start;         
  77.         if(time == 0)            
  78.             time = 10;      
  79.     }while (TRUE);        
  80.     file.Close();      
  81.     InternetCloseHandle(hOpen);   //关闭句柄     
  82.     return 0; 
  83. //这个函数的后半段代码我解释一下。SHOWINFO是一个自定义的结构体,用其把当前速度和进度传递给界面进度条。定义如下: 
  84. struct SHOWINFO {        
  85.     CString strSpeed;     
  86.     int nPos; 
  87. }; //传递信息给界面的方式是用PostMessage,这里,它的第二个参数就用SHOWINFO的对象了。注意使用时强制转化为LPARAM。MSG_PROGRESS是个自定义消息,它的响应函数为OnStep,在其中处理进度条的显示。代码如下: 
  88. LRESULT CDownloadProgressDlg::OnStep(WPARAM wParam, LPARAM lParam) 
  89. {       
  90.     CString strSpeed=((SHOWINFO*)lParam)->strSpeed;     
  91.     int nPos=((SHOWINFO*)lParam)->nPos;     
  92.     delete (SHOWINFO*)lParam;       
  93.     CString strPercent;        
  94.     strPercent.Format("%d%%",nPos);  
  95.     SetDlgItemText(IDC_SPEED_TEXT,strSpeed);     
  96.     SetDlgItemText(IDC_PERCENT_TEXT,strPercent);     
  97.     m_progress.SetPos(nPos);      
  98.     if(nPos==100)       
  99.     {             
  100.         GetDlgItem(IDC_DOWNLOAD)->EnableWindow(TRUE);         
  101.         GetDlgItem(IDOK)->EnableWindow(TRUE);      
  102.         MessageBox("文件下载完成!","OK",MB_ICONINFORMATION);  
  103.     }      
  104.     return TRUE; 
  105. //函数InternetGetFile在单独的线程中调用,起新线程的动作在“下载”按钮点击事件中进行,代码如下: 
  106. void CDownloadProgressDlg::OnDownload() {  
  107.     // TODO: Add your control notification handler code here     
  108.     CString url,filename;       
  109.     GetDlgItemText(IDC_FILE_URL,url);   
  110.     GetDlgItemText(IDC_LOCAL_DIRECTORY,filename);   
  111.     if(url.IsEmpty())     
  112.     {             
  113.         AfxMessageBox("请输入Internet文件的URL!");       
  114.         return;    
  115.     }      
  116.     if(filename.IsEmpty())    
  117.     {             
  118.         AfxMessageBox("请输入需要保存的文件路径!");    
  119.         return;    
  120.     }     
  121.     DOWNINFO* pDownInfo=new DOWNINFO;    
  122.     pDownInfo->hWnd=m_hWnd;       
  123.     pDownInfo->url=url;      
  124.     pDownInfo->filename=filename;    
  125.     // 
  126.  
  127.     // 
  128.     GetDlgItem(IDOK)->EnableWindow(FALSE);    
  129.     AfxBeginThread(DownProc,(LPVOID)pDownInfo); 
  130. //上面函数中的DOWNINFO也是一个自定义结构体,用以向新线程传递句柄、URL和文件名。定义如下: 
  131. struct DOWNINFO {     
  132.     HWND hWnd;       
  133.     CString url;    
  134.     CString filename; 
  135. }; //DownProc是个回调函数,它的函数结构和参数表系统已经为我们定义好。函数内容如下: 
  136. UINT CDownloadProgressDlg::DownProc(LPVOID pDownInfo) 
  137. {       
  138.     HWND hWnd=((DOWNINFO*)pDownInfo)->hWnd;     
  139.     CString url,filename;       
  140.     url=((DOWNINFO*)pDownInfo)->url;   
  141.     filename=((DOWNINFO*)pDownInfo)->filename;   
  142.     if(InternetGetFile(hWnd,url,filename)==0)    
  143.     {           
  144.         // 
  145.         AfxMessageBox("下载成功!");               // 
  146.         g_nAbort=TRUE;          
  147.         return 1;      
  148.     }    
  149.     else     
  150.     {      
  151.         AfxMessageBox("下载失败!"); 
  152.         return 0;      
  153.     }