⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 send_to_hd.c

📁 执行和去除共享软件日期限制的程序
💻 C
📖 第 1 页 / 共 4 页
字号:
      szThisFolder[3]='\0';   	SetCurrentDirectory(szThisFolder);      szThisFolder[2]='\0';   }   else   	SetCurrentDirectory(szThisFolder);   do{	  	AddListview(GetDlgItem(hWnd,IDC_SELECTDEST),szSourceFile,i);      AddFileType(szSourceFile);      i++;	}while(DoCheckCommand());	ListView_SetColumnWidth(GetDlgItem(hWnd,IDC_SELECTDEST),0,LVSCW_AUTOSIZE);   if(szThisFolder[3]=='\0')     	szThisFolder[2]='\0';   FillSend(GetDlgItem(hWnd,IDC_SELECTSEND),NULL);   RestoreCheckCommand();}void RestoreCheckCommand(void){	wsprintf(szRunCommand,szForCheck);}void FillSend(HWND hWnd,LPSTR szFileType){   HANDLE hFile;   WIN32_FIND_DATA wfile;   char s[MAX_PATH];   HIMAGELIST hIList;   LV_FINDINFO lvf;   HICON hicon1;   LV_ITEM lvi;   int i=0;   BOOL bSpac=FALSE;   char temp[80];   ZeroMemory(s,MAX_PATH);   ZeroMemory(&lvf,sizeof(LV_FINDINFO));   lvf.flags=LVFI_STRING;   if(szFileType!=NULL)   {   	if(strcmpi(szFileType,"文件夹")==0 || strcmpi(szFileType,"无扩展名文件")==0)      {      	wsprintf(s,"%s\\*.*",szThisFolder);         bSpac=TRUE;      }      else	   	wsprintf(s,"%s\\%s",szThisFolder,szFileType);   }   else   	wsprintf(s,"%s\\*.*",szThisFolder);   if(szThisFolder[2]=='\0')   {   	szThisFolder[2]='\\';      szThisFolder[3]='\0';   	SetCurrentDirectory(szThisFolder);      szThisFolder[2]='\0';   }   else   	SetCurrentDirectory(szThisFolder);   hIList = ImageList_Create(16,16,ILC_MASK,1,1);//GetSystemMetrics(SM_CXSMICON),GetSystemMetrics(SM_CYSMICON)	hFile=FindFirstFile(s,&wfile);   do   {   	if(stricmp(wfile.cFileName,"..")==0 || stricmp(wfile.cFileName,".")==0)        	continue;      if(bSpac)      	if(strcmpi(szFileType,"文件夹")==0)         {            if(!(wfile.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY))            	continue;         }         else         	if(GetFileTypeName(wfile.cFileName,temp)!=TYPE_NOEXT)			   	continue;      if((wfile.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY))	   {
        	char x[MAX_PATH];
         wsprintf(x," %s",wfile.cFileName);
         lvi.pszText = x;
      }
      else
      	lvi.pszText = wfile.cFileName;//LPSTR_TEXTCALLBACK;      lvf.psz=(LPCTSTR)lvi.pszText;      if(ListView_FindItem(GetDlgItem(hExternWnd,IDC_SELECTDEST),-1,&lvf)!=-1)        	continue;      hicon1=GetFileIcon(wfile.cFileName);      ImageList_AddIcon(hIList,hicon1);      ListView_SetImageList(hWnd,hIList,LVSIL_SMALL);      lvi.mask = LVIF_TEXT | LVIF_IMAGE | LVIF_PARAM | LVIF_STATE;		lvi.state = 0;
		lvi.stateMask = 0;

		lvi.iItem = i;
		lvi.iSubItem = 0;

		lvi.cchTextMax = MAX_PATH;
		lvi.iImage = i;
		lvi.lParam = (LPARAM)&wfile;
      i++;
		ListView_InsertItem(hWnd,&lvi);

      AddFileType(wfile.cFileName);
   }while(FindNextFile(hFile,&wfile));   FindClose(hFile);   ListView_SetColumnWidth(hWnd,0,LVSCW_AUTOSIZE);}#pragma argsusedLRESULT NotifyHandler( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
	POINT pt;
   LPNMHDR lphdr=(LPNMHDR)lParam;
   LV_HITTESTINFO lvhti ;

	switch(lphdr->code)
   {
      case NM_KILLFOCUS:
      	nFocused=-1;
         break;
		case NM_CLICK:
      {
         GetCursorPos( &pt) ;
         ScreenToClient(lphdr->hwndFrom, &pt) ;

         lvhti.pt=pt;
         ListView_HitTest(lphdr->hwndFrom, &lvhti) ;

         if(lvhti.flags & LVHT_ONITEM)
         {
            if((HIBYTE(GetKeyState(VK_SHIFT))&1) && nFocused!=-1)
            {
               int i,j=ListView_GetItemCount(lphdr->hwndFrom);
               BOOL bIn=FALSE;

            	for(i=0;i<j;i++)
               {
               	if(i!=nFocused && i!=lvhti.iItem)
                  {
                  	if(bIn)
                     {
                     	ListView_SetItemState(lphdr->hwndFrom,i,LVIS_DROPHILITED,LVIF_STATE);
                     }
                     else
                     	ListView_SetItemState(lphdr->hwndFrom,i,0,LVIF_STATE);
                  }
                  else
                  {
                  	ListView_SetItemState(lphdr->hwndFrom,i,LVIS_DROPHILITED,LVIF_STATE);
                     bIn=!bIn;
                     if(nFocused==lvhti.iItem)
                     	bIn=FALSE;
                  }
               }
            }
            else
            {
            	if((ListView_GetItemState(lphdr->hwndFrom,lvhti.iItem,LVIF_STATE)&LVIS_DROPHILITED))
	            {
   	          	ListView_SetItemState(lphdr->hwndFrom,lvhti.iItem,0,LVIF_STATE);
      	      }
         	   else
            	{
              		ListView_SetItemState(lphdr->hwndFrom,lvhti.iItem,LVIS_DROPHILITED,LVIF_STATE);
	            }
               nFocused=lvhti.iItem;
            }
         }
      }
      break;
   }
	return 0L;
}void InitCol(HWND hWnd){   LV_COLUMN lvC;	lvC.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;	lvC.fmt = LVCFMT_LEFT;  // 列元左对齐
	lvC.cx = 86;            // 列元的像素宽度
	lvC.pszText = "File";//szText;	// 列元的文字字符串地址

	lvC.iSubItem = 0;
   ListView_InsertColumn(hWnd,0,&lvC);}void AddListview(HWND hWnd,LPSTR szDisplay,int i){   WIN32_FIND_DATA wfile;   HIMAGELIST hIList;   HICON hicon1;   LV_ITEM lvi;   if(szDisplay[0]==' ')   {   	int w=0;      while(szDisplay[w+1]!='\0')      {      	szDisplay[w]=szDisplay[w+1];         w++;      }      szDisplay[w]='\0';   }   FindFirstFile(szDisplay,&wfile);   hIList = ListView_GetImageList(hWnd,LVSIL_SMALL);   if(hIList==NULL)   	hIList=ImageList_Create(16,16,ILC_MASK,1,1);	hicon1=GetFileIcon(szDisplay);//,&dwtemp);//wfile.cFileName,0);   ImageList_AddIcon(hIList,hicon1);   ListView_SetImageList(hWnd,hIList,LVSIL_SMALL);//   DestroyIcon(hicon1);   lvi.mask = LVIF_TEXT | LVIF_IMAGE | LVIF_PARAM | LVIF_STATE;	lvi.state = 0;
	lvi.stateMask = 0;

	lvi.iItem = i;
	lvi.iSubItem = 0;
   if((wfile.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY))
	{
     	char x[MAX_PATH];
      wsprintf(x," %s",wfile.cFileName);
      lvi.pszText = x;
   }
   else
		lvi.pszText = wfile.cFileName;//LPSTR_TEXTCALLBACK;
	lvi.cchTextMax = MAX_PATH;
	lvi.iImage = ImageList_GetImageCount(hIList)-1;
	lvi.lParam = (LPARAM)&wfile;
	ListView_InsertItem(hWnd,&lvi);
	ListView_SetColumnWidth(hWnd,0,LVSCW_AUTOSIZE);}void AddFileType(LPSTR s){	char sztype[80];   int i,j,k=0;
   char str[80];

   if((GetFileAttributes(s)&FILE_ATTRIBUTE_DIRECTORY))
     	wsprintf(sztype,"文件夹");
	else
	   GetFileTypeName(s,sztype);
   if(sztype[0]=='\0')   	wsprintf(sztype,"无扩展名文件");	j=SendMessage(hTypeWnd,CB_GETCOUNT,0,0);   for(i=0;i<j;i++)   {   	SendMessage(hTypeWnd,CB_GETLBTEXT,i,(LPARAM)str);   	if(strcmpi(str,sztype)==0)		{      	k++;         break;      }   }   if(k==0)   	SendMessage(hTypeWnd,CB_ADDSTRING,0,(LPARAM)sztype);}void DoSend(void){   char s[MAX_PATH],d[MAX_PATH];	SHFILEOPSTRUCT shop;   BOOL bnouse=FALSE;   WIN32_FIND_DATA wfile,wdest;   char dst[MAX_PATH];   HANDLE h;//,hFile;   HWND hDest=GetDlgItem(hExternWnd,IDC_SELECTDEST);   int i,k,j=ListView_GetItemCount(hDest),c=0,l;   char szSend[MAX_PATH];   if(j==0)   	return;   shop.hwnd=hMainWnd;   shop.wFunc=dofileop.uOp;   if(dofileop.bNoAsk)	   shop.fFlags=FOF_NOCONFIRMATION;   else   	shop.fFlags=FOF_ALLOWUNDO;   shop.fAnyOperationsAborted=bnouse;   shop.hNameMappings=NULL;   shop.lpszProgressTitle=NULL;   ZeroMemory(d,MAX_PATH);   GetDlgItemText(hExternWnd,IDC_DESTFOLDER,d,MAX_PATH);   if(strlen(d)>0)   	if(d[strlen(d)-1]=='\\')	   	d[strlen(d)-1]='\0';	MkDir(d);   shop.pTo=d;   ZeroMemory(s,MAX_PATH);   for(i=0;i<j;i++)   {      ZeroMemory(szSend,MAX_PATH);		ListView_GetItemText(hDest,i,0,szSend,MAX_PATH);      if(szSend[0]==' ')		{		   for(k=0;k<(int)(strlen(szSend)-1);k++)		   	szSend[k]=szSend[k+1];		   szSend[k]='\0';		}/*   	if(dofileop.bNoFolder)	   {   	   if(GetFileAttributes(szSend)==FILE_ATTRIBUTE_DIRECTORY)      	{        		ZeroMemory(s,MAX_PATH);	         wsprintf(s,"%s\\*.*",szSend);   	      SetCurrentDirectory(szSend);         	hFile=FindFirstFile(s,&wfile);	         while(FindNextFile(hFile,&wfile))   	      {      	      if(stricmp(wfile.cFileName,"..")==0)         	    	continue;            	ZeroMemory(s,MAX_PATH);	            wsprintf(s,"%s\\",szSend);					strcat(s,wfile.cFileName);      	     	shop.pFrom=s;         	   if(dofileop.bUpdate)		      	{		      		wsprintf(dst,"%s\\%s",shop.pTo,wfile.cFileName);	        			if((h=FindFirstFile(dst,&wdest))!=INVALID_HANDLE_VALUE)			         {      	  			  	if(memcmp(&wfile.ftLastWriteTime,&wdest.ftLastWriteTime,sizeof(FILETIME))!=0 ||		   	            wfile.nFileSizeHigh!=wdest.nFileSizeHigh || wfile.nFileSizeLow!=wdest.nFileSizeLow)
        				      SHFileOperation(&shop);
		         	}
	        			else
			         	SHFileOperation(&shop);
      	  			FindClose(h);
		   	   }
		      	else
     					SHFileOperation(&shop);	         }   	      FindClose(hFile);      	   continue;	      }   	}*/      if((strlen(szSend)+c)<MAX_PATH-4)	   {         if(dofileop.bUpdate)	   	{   	   	wsprintf(dst,"%s\\%s",shop.pTo,szSend);	   	   if((h=FindFirstFile(dst,&wdest))!=INVALID_HANDLE_VALUE)   	   	{      	  		if(memcmp(&wfile.ftLastWriteTime,&wdest.ftLastWriteTime,sizeof(FILETIME))==0 &&         	   	wfile.nFileSizeHigh==wdest.nFileSizeHigh && wfile.nFileSizeLow==wdest.nFileSizeLow)
	            {
                  FindClose(h);
               	continue;//SHFileOperation(&shop);
               }
		      }
   		   else
            {
            	FindClose(h);
      		 	continue;
            }
		      FindClose(h);
   		}

         for(l=0;l<(int)strlen(szSend);l++)         {         	s[c]=szSend[l];            c++;         }         s[c]='\0';         c++;         continue;      }		else      {	      s[c]='\0';   	   shop.pFrom=s;			SHFileOperation(&shop);         ZeroMemory(s,MAX_PATH);         c=0;         for(l=0;l<(int)strlen(szSend);l++)         {         	s[c]=szSend[l];            c++;         }         s[c]='\0';         c++;         continue;      }	}   s[c]='\0';   shop.pFrom=s;	SHFileOperation(&shop);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -