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

📄 send_to_hd.c

📁 执行和去除共享软件日期限制的程序
💻 C
📖 第 1 页 / 共 4 页
字号:
               EndDialog(hWnd,TRUE);               return TRUE;         }         break;      case WM_CLOSE:			EndDialog(hWnd,FALSE);            return FALSE;   }   return FALSE;}void UpdateDestFolder(void){	char s[MAX_PATH];	ZeroMemory(szDestFolder,MAX_PATH);   ZeroMemory(s,MAX_PATH);   DoCheckCommand();   if(szRunCommand[0]=='\0' && (GetFileAttributes(szSourceFile)&FILE_ATTRIBUTE_DIRECTORY))   	wsprintf(szDestFolder,szSourceFile);   else   	GetPathFromFileName(szSourceFile,szDestFolder);   GetOnlyFilename(szDestFolder,s,SZ_LONGNAME);   if(s[1]==':')   	wsprintf(s,"\0");   RestoreCheckCommand();   if((strlen(szFoldername)+strlen(s))>=MAX_PATH)   	s[MAX_PATH-strlen(szFoldername)]='\0';   wsprintf(szDestFolder,szFoldername);   if(szFoldername[3]=='\0')	//like c:\,so cut the "\"   	szDestFolder[2]='\0';   strcat(szDestFolder,"\\");   strcat(szDestFolder,s);}int DelFile(LPSTR szfile){   if((GetFileAttributes(szfile)&FILE_ATTRIBUTE_DIRECTORY))   {   	SHFILEOPSTRUCT shop;		shop.hwnd=hMainWnd;   	shop.wFunc=FO_DELETE;	   shop.pTo=NULL;//szFoldername;   	if(bDelNoAsk)	   	shop.fFlags=FOF_NOCONFIRMATION;	   else   		shop.fFlags=FOF_ALLOWUNDO;	   shop.fAnyOperationsAborted=FALSE;   	shop.hNameMappings=NULL;	   shop.lpszProgressTitle=NULL;	   shop.pFrom=szfile;		SHFileOperation(&shop);      return TRUE;   }	else if(!bDelNoAsk)   {     	char mg[MAX_PATH];      wsprintf(mg,"确实要删除文件\"%s\"吗?",szfile);    	switch(MessageBox(GetFocus(),mg,"删除",MB_YESNOCANCEL | MB_ICONQUESTION))      {        	case IDYES:				SetFileAttributes(szfile,FILE_ATTRIBUTE_NORMAL);           	return DeleteFile(szfile);         case IDNO:           	return FALSE;         case IDCANCEL:           	return DEL_CANCEL;      }   }   SetFileAttributes(szfile,FILE_ATTRIBUTE_NORMAL);   return DeleteFile(szfile);}#pragma argsusedBOOL CALLBACK WINAPI SendProc(HWND hWnd,UINT uMsg,UINT wParam,LONG lParam){   switch(uMsg)   {   	case WM_INITDIALOG:         hExternWnd=hWnd;         hTypeWnd=GetDlgItem(hWnd,IDC_FILETYPE);      	if(dofileop.uOp==FO_MOVE)         	CheckDlgButton(hWnd,IDC_MOVE,BST_CHECKED);         else         	CheckDlgButton(hWnd,IDC_MOVE,BST_UNCHECKED);         if(dofileop.bUpdate)         	CheckDlgButton(hWnd,IDC_UPDATE,BST_CHECKED);         else         	CheckDlgButton(hWnd,IDC_UPDATE,BST_UNCHECKED);         if(dofileop.bNoFolder)         	CheckDlgButton(hWnd,IDC_NOFOLDER,BST_CHECKED);         else         	CheckDlgButton(hWnd,IDC_NOFOLDER,BST_UNCHECKED);         UpdateDestFolder();         if(dofileop.bNoFolder)            SetDlgItemText(hWnd,IDC_DESTFOLDER,szFoldername);         else         	SetDlgItemText(hWnd,IDC_DESTFOLDER,szDestFolder);         PostMessage(hWnd,MYWM_ICON,0,0);         break;      case WM_LBUTTONDOWN:      	if(bInText)         	if(hBaseWnd!=NULL)   	      {               bInText=FALSE;            	SetFocus(hWnd);               SetForegroundWindow(hBaseWnd);            }         break;		case WM_SETCURSOR:      	if(bInText)				SetCursor(LoadCursor(hInst,"IDC_HAND"));         else         	SetCursor(LoadCursor(NULL,IDC_ARROW));         return TRUE;		case WM_MOUSEMOVE:			GetWindowRect(GetDlgItem(hWnd,IDC_CHANGDEST),&CDestRt);         {         	POINT pt;            GetCursorPos(&pt);            if(pt.x>CDestRt.left && pt.x<CDestRt.right && pt.y>CDestRt.top && pt.y<CDestRt.bottom)            {					if(!bInText)               {                  bInText=TRUE;		            SetDlgItemText(hWnd,IDC_CHANGDEST,"目的文件夹:");               }            }            else               if(bInText)               {                  bInText=FALSE;               	SetDlgItemText(hWnd,IDC_CHANGDEST,"目的文件夹:");               }         }			break;		case WM_CTLCOLORSTATIC:      	SetBkColor((HDC)wParam,(COLORREF)(GetSysColor(COLOR_MENU)));         if((HWND)lParam==GetDlgItem(hWnd,IDC_CHANGDEST))				if(!bInText)            	SetTextColor((HDC)wParam,0x00ff0000);            else            	SetTextColor((HDC)wParam,(COLORREF)(GetSysColor(COLOR_HIGHLIGHT)));      	return (BOOL)GetStockObject(NULL_BRUSH);		case MYWM_ICON:	//该消息为临时借用,先显示对话框再完成最后的初始化         while(SendMessage(hTypeWnd,CB_GETCOUNT,0,0)>0)		   	SendMessage(hTypeWnd,CB_DELETESTRING,0,0);      	ListView_DeleteAllItems(GetDlgItem(hWnd,IDC_SELECTSEND));         ImageList_Destroy(ListView_GetImageList(GetDlgItem(hWnd,IDC_SELECTSEND),LVSIL_STATE));         ListView_DeleteAllItems(GetDlgItem(hWnd,IDC_SELECTDEST));         ImageList_Destroy(ListView_GetImageList(GetDlgItem(hWnd,IDC_SELECTDEST),LVSIL_STATE));         FillList(hWnd);         SendMessage(hTypeWnd,CB_ADDSTRING,0,(LPARAM)"*.*");         SendMessage(hTypeWnd,CB_SELECTSTRING,0,(LPARAM)"*.*");         ListView_SetCallbackMask(GetDlgItem(hWnd,IDC_SELECTSEND),LVIS_SELECTED);         ListView_SetCallbackMask(GetDlgItem(hWnd,IDC_SELECTDEST),LVIS_SELECTED);			break;      case WM_NOTIFY:      	return NotifyHandler(hWnd, uMsg, wParam, lParam);
      case WM_COMMAND:
      	switch(LOWORD(wParam))         {         	case IDOK:            	bInText=FALSE;               DoSend();         	   hExternWnd=NULL;            	EndDialog(hWnd,TRUE);               return TRUE;            case IDCANCEL:            	bInText=FALSE;            	hExternWnd=NULL;            	EndDialog(hWnd,FALSE);               return FALSE;            case IDHELP:	//"删除"            {               HWND hDest=GetDlgItem(hWnd,IDC_SELECTDEST);					int i,k,j=ListView_GetItemCount(hDest),c=0,ch;               if(j==0)               	break;            	if(DialogBox(hInst,MAKEINTRESOURCE(IDD_ASKDEL),hWnd,(DLGPROC)AskDelProc))					{         	      char szd[MAX_PATH];            	   for(i=0;i<j;i++)               	{							ListView_GetItemText(hDest,c,0,szd,MAX_PATH);                     if(szd[0]==' ')							{							   for(k=0;k<(int)(strlen(szd)-1);k++)							   	szd[k]=szd[k+1];							   szd[k]='\0';							}							ch=DelFile(szd);                     if(ch==DEL_CANCEL)                     	break;                     else if(ch==FALSE)                     {                     	c++;                        continue;                     }   	               ListView_DeleteItem(hDest,c);         	      }                  ListView_SetColumnWidth(hDest,0,LVSCW_AUTOSIZE);                  SendMessage(hWnd,MYWM_ICON,0,0);                  //SendMessage(hTypeWnd,CB_GETLBTEXT,SendMessage(hTypeWnd,CB_GETCURSEL,0,0),(LPARAM)szd);   	            //ImageList_Destroy(ListView_GetImageList(GetDlgItem(hWnd,IDC_SELECTSEND),LVSIL_STATE));						//FillSend(GetDlgItem(hWnd,IDC_SELECTSEND),szd);            	}            }            	break;            case IDC_ADDSELECT:            case IDC_DELSELECT:            {            	int i,j;               HWND hSel,hDest;               char szd[MAX_PATH];               if(LOWORD(wParam)==IDC_ADDSELECT)               {               	hSel=GetDlgItem(hWnd,IDC_SELECTSEND);                  hDest=GetDlgItem(hWnd,IDC_SELECTDEST);               }               else               {               	hDest=GetDlgItem(hWnd,IDC_SELECTSEND);                  hSel=GetDlgItem(hWnd,IDC_SELECTDEST);               }               j=ListView_GetItemCount(hSel);               for(i=0;i<j;i++)               {						if((ListView_GetItemState(hSel,i,LVIF_STATE)&LVIS_DROPHILITED))                  {               		ListView_GetItemText(hSel,i,0,szd,MAX_PATH);                     AddListview(hDest,szd,ListView_GetItemCount(hDest));                     ListView_DeleteItem(hSel,i);                     ListView_SetColumnWidth(hSel,0,LVSCW_AUTOSIZE);                     j--;                     i--;                  }               }            }            	break;            case IDC_ADDALL:            case IDC_DELALL:            {            	int i,j;               HWND hSel,hDest;               char szd[MAX_PATH];               if(LOWORD(wParam)==IDC_ADDALL)               {               	hSel=GetDlgItem(hWnd,IDC_SELECTSEND);                  hDest=GetDlgItem(hWnd,IDC_SELECTDEST);               }               else               {               	hDest=GetDlgItem(hWnd,IDC_SELECTSEND);                  hSel=GetDlgItem(hWnd,IDC_SELECTDEST);               }               j=ListView_GetItemCount(hSel);               for(i=0;i<j;i++)               {						ListView_GetItemText(hSel,0,0,szd,MAX_PATH);                  AddListview(hDest,szd,ListView_GetItemCount(hDest));                  ListView_DeleteItem(hSel,0);                  ListView_SetColumnWidth(hSel,0,LVSCW_AUTOSIZE);               }            }            	break;            case IDC_MOVE:            	if(IsDlgButtonChecked(hWnd,IDC_MOVE)==BST_CHECKED)            	{               	dofileop.uOp=FO_MOVE;                  if(hBaseWnd!=NULL)                    	CheckDlgButton(hBaseWnd,IDC_MOVE,BST_CHECKED);               }               else               {               	dofileop.uOp=FO_COPY;                  if(hBaseWnd!=NULL)                    	CheckDlgButton(hBaseWnd,IDC_MOVE,BST_UNCHECKED);               }               break;            case IDC_NOFOLDER:            	if(IsDlgButtonChecked(hWnd,IDC_NOFOLDER)==BST_CHECKED)               {            		dofileop.bNoFolder=TRUE;                  if(hBaseWnd!=NULL)                  	CheckDlgButton(hBaseWnd,IDC_NOFOLDER,BST_CHECKED);               }               else               {               	dofileop.bNoFolder=FALSE;                  if(hBaseWnd!=NULL)                    	CheckDlgButton(hBaseWnd,IDC_NOFOLDER,BST_UNCHECKED);               }               ShowWindow(GetDlgItem(hWnd,IDC_DESTFOLDER),SW_HIDE);					SendMessage(hWnd,WM_COMMAND,MAKELONG((WORD)IDC_NEWFOLDER,(WORD)EN_CHANGE),0);               ShowWindow(GetDlgItem(hWnd,IDC_DESTFOLDER),SW_SHOW);               break;            case IDC_UPDATE:               if(IsDlgButtonChecked(hWnd,IDC_UPDATE)==BST_CHECKED)               {                 	dofileop.bUpdate=TRUE;                  if(hBaseWnd!=NULL)                    	CheckDlgButton(hBaseWnd,IDC_UPDATE,BST_CHECKED);               }               else               {                 	dofileop.bUpdate=FALSE;                  if(hBaseWnd!=NULL)                    	CheckDlgButton(hBaseWnd,IDC_UPDATE,BST_UNCHECKED);                  break;               }               if(!bNoMsg)               	if(!DialogBox(hInst,MAKEINTRESOURCE(IDD_MSG),hWnd,(DLGPROC)MsgProc))                  {                  	CheckDlgButton(hWnd,IDC_UPDATE,BST_UNCHECKED);                     if(hBaseWnd!=NULL)  	                  	CheckDlgButton(hBaseWnd,IDC_UPDATE,BST_UNCHECKED);                     dofileop.bUpdate=FALSE;                  }               break;         }         switch(HIWORD(wParam))         {         	case CBN_SELCHANGE:            {            	char ext[80];               SendMessage(hTypeWnd,CB_GETLBTEXT,SendMessage(hTypeWnd,CB_GETCURSEL,0,0),(LPARAM)ext);               ListView_DeleteAllItems(GetDlgItem(hWnd,IDC_SELECTSEND));               ImageList_Destroy(ListView_GetImageList(GetDlgItem(hWnd,IDC_SELECTSEND),LVSIL_STATE));					FillSend(GetDlgItem(hWnd,IDC_SELECTSEND),ext);            }            break;            case EN_CHANGE:            	if((int)LOWORD(wParam)==IDC_NEWFOLDER)               {                  char s[80];                  int i;               	ZeroMemory(szShowDest,MAX_PATH);                  ZeroMemory(s,80);                  GetDlgItemText(hWnd,IDC_NEWFOLDER,s,80);                  for(i=0;i<80;i++)                  	if(s[i]=='*' || s[i]=='?' || s[i]==':' || s[i]=='/' || s[i]=='"' || s[i]=='<' || s[i]=='>')                     {                     	Errmsg("非法字符串");                        s[i]='\0';								SetDlgItemText(hWnd,IDC_NEWFOLDER,s);                        break;                     }                  if(dofileop.bNoFolder)			         {                     if((strlen(szFoldername)+strlen(s))>=MAX_PATH)   							s[MAX_PATH-strlen(szFoldername)]='\0';                     wsprintf(szShowDest,"%s\\%s",szFoldername,s);                  }         			else                  {                     if((strlen(szDestFolder)+strlen(s))>=MAX_PATH)   							s[MAX_PATH-strlen(szDestFolder)]='\0';                     wsprintf(szShowDest,"%s\\%s",szDestFolder,s);                  }                  SetDlgItemText(hWnd,IDC_DESTFOLDER,szShowDest);               }               break;         }         break;      case WM_CLOSE:      	bInText=FALSE;      	hExternWnd=NULL;         EndDialog(hWnd,FALSE);         return FALSE;   }   return FALSE;}void FillList(HWND hWnd){   int i=0;   DoCheckCommand();   InitCol(GetDlgItem(hWnd,IDC_SELECTSEND));	//init listview column   InitCol(GetDlgItem(hWnd,IDC_SELECTDEST));   ZeroMemory(szThisFolder,MAX_PATH);   if(szRunCommand[0]=='\0')	//仅一个目录或文件	{      if((GetFileAttributes(szSourceFile)&FILE_ATTRIBUTE_DIRECTORY))      {      	wsprintf(szThisFolder,szSourceFile);         if(szThisFolder[3]=='\0')         	szThisFolder[2]='\0';        	FillSend(GetDlgItem(hWnd,IDC_SELECTSEND),NULL);         wsprintf(szRunCommand,szForCheck);         SetCurrentDirectory(szSourceFile);         return;      }   }   GetPathFromFileName(szSourceFile,szThisFolder);   if(szThisFolder[2]=='\0')   {   	szThisFolder[2]='\\';

⌨️ 快捷键说明

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