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

📄 sharewareluncher.c

📁 执行和去除共享软件日期限制的程序
💻 C
📖 第 1 页 / 共 3 页
字号:
   si.cb = sizeof(si);
   si.dwFlags=STARTF_USESHOWWINDOW;
   si.wShowWindow=SW_HIDE;

   flag=CreateProcess(
                0,                          // lpszImageName
                szCommandLine,					//SzCmdLine,
                0,                          // lpsaProcess
                0,                          // lpsaThread
                FALSE,                      // fInheritHandles
                CREATE_DEFAULT_ERROR_MODE,//DEBUG_ONLY_THIS_PROCESS,    // fdwCreate
                0,                          // lpvEnvironment
                NULL,                          // lpszCurDir
                &si,//tartupInfo,               // lpsiStartupInfo
                &PInfo			        // lppiProcInfo
                );
	if(!flag)
   	Errmsg("由于操作系统的限制,不能虚拟软驱。");
   else
   	if(!IsVRHD)
   	{
      	RegCancelSubst();
         IsVRHD=TRUE;
      }
   return flag;
}void RegCancelSubst(void){	REGVALINFO ri;   char sztemp[MAX_PATH];   ri.szValName=NULL;	ri.dwType=REG_SZ;
	ri.lpData=(LPBYTE)"取消虚拟软驱";
	ri.cbData=15;   RegSetGroupVal(HKEY_CLASSES_ROOT,"Drive\\shell\\sharewareluncher.cancelvrhd",1,&ri);   wsprintf(sztemp,cmd);   strcat(sztemp," -novrhd %1");   ri.szValName=NULL;   ri.dwType=REG_SZ;
   ri.lpData=(LPBYTE)sztemp;
   ri.cbData=MAX_PATH;   RegSetGroupVal(HKEY_CLASSES_ROOT,"Drive\\shell\\sharewareluncher.cancelvrhd\\command",1,&ri);	IsVRHD=TRUE;}BOOL CancelSubst(void){   STARTUPINFO si;   BOOL flag;
   PROCESS_INFORMATION PInfo;   char szCommandLine[MAX_PATH];	if(GetDriveType("a:")!=DRIVE_REMOVABLE)   {
   	wsprintf(szCommandLine,"subst a: /d");

	   memset(&si, 0, sizeof(si));
   	si.cb = sizeof(si);
	   si.dwFlags=STARTF_USESHOWWINDOW;
   	si.wShowWindow=SW_HIDE;

	   flag=CreateProcess(
                0,                          // lpszImageName
                szCommandLine,					//SzCmdLine,
                0,                          // lpsaProcess
                0,                          // lpsaThread
                FALSE,                      // fInheritHandles
                CREATE_DEFAULT_ERROR_MODE,//DEBUG_ONLY_THIS_PROCESS,    // fdwCreate
                0,                          // lpvEnvironment
                NULL,                          // lpszCurDir
                &si,//tartupInfo,               // lpsiStartupInfo
                &PInfo			        // lppiProcInfo
                );
   }   IsVRHD=FALSE;   RegDeleteKey(HKEY_CLASSES_ROOT,"Drive\\shell\\sharewareluncher.cancelvrhd");   return flag;}int Runit(BOOL flag){	int i;	for(i=0;i<nAppNum;i++)   {     	if(strcmpi(szRunCommand,aiAppInfo[i].szAppCmd)==0)      {         if(flag)        		Lunch(hMainWnd,i);         return i;//TRUE;      }   }   return -1;//FALSE;}void MakeShortcut(void){   int x;	if((x=Runit(FALSE))!=-1)   {     	char szTarget[300];      char szStartCmd[1000];      GetWindowsDirectory(szTarget,300);      strcat(szTarget,"\\desktop\\");      strcat(szTarget,aiAppInfo[x].szAppName);      strcat(szTarget,".lnk");      wsprintf(szStartCmd,"-run %s",szRunCommand);     	CreateShortcut(cmd,szStartCmd,NULL,szTarget,aiAppInfo[x].szAppName);   }   else   {      if(!bCreateLink)      	return;     	//bCreateLink=TRUE;      if(!bDlgRuned && !bSheet)     		SendMessage(hMainWnd,WM_COMMAND,CM_ADD,0);     	else     	{        	PropSheet_SetCurSel(hSheetWnd,NULL,1);     		SendMessage(hListAppWnd,WM_COMMAND,(WPARAM)IDOK,0);     	}   }}void Uninstall(BOOL bSysOnly){	HKEY  hKey1;
  	DWORD  dwDisposition;

   if(!bSysOnly)
   {
   	RegCreateKeyEx(HKEY_LOCAL_MACHINE,"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",0, NULL, REG_OPTION_NON_VOLATILE,
                           KEY_ALL_ACCESS,NULL,&hKey1,&dwDisposition);

   	RegDeleteValue(hKey1,"Sharewareluncher");

   	RegDeleteKey(HKEY_CLASSES_ROOT,"exefile\\shell\\ShortcutfromLuncher");
   	RegDeleteKey(HKEY_CLASSES_ROOT,"exefile\\shell\\AddtoLuncher");
      RegDeleteKey(HKEY_CLASSES_ROOT,"scrfile\\shell\\ShortcutfromLuncher");
   	RegDeleteKey(HKEY_CLASSES_ROOT,"scrfile\\shell\\AddtoLuncher");
   	RegDeleteKey(HKEY_LOCAL_MACHINE,"SOFTWARE\\phonix\\sharewareluncher");
      RegDeleteKey(HKEY_CLASSES_ROOT,"Directory\\shell\\sharewareluncher.vrhd");
      RegDeleteKey(HKEY_CLASSES_ROOT,"Drive\\shell\\sharewareluncher.cancelvrhd");

      MakeUninstallLnk(FALSE);
      DelShortcut();
   }
   else
   {
   	MakeUninstallLnk(FALSE);
      MakeUninstallLnk(TRUE);
   }
}void MakeUninstallLnk(BOOL flag){   char szPath[MAX_PATH];   char szT[300],szS[300],szWinPath[MAX_PATH];   GetCurrentDirectory(MAX_PATH,szPath);   GetWindowsDirectory(szWinPath,MAX_PATH);   if(OSType()==NT)   {   	wsprintf(szS,"%s\\profiles\\all users\\「开始」菜单\\程序",szWinPath);      if(GetFileAttributes(szS)==0xffffffff)         wsprintf(szS,"%s\\profiles\\all users\\start menu\\programs",szWinPath);      strcat(szS,"\\共享软件程序发射器");   }   else	   wsprintf(szS,"%s\\Start Menu\\Programs\\共享软件程序发射器",szWinPath);   if(flag)   {   	MkDir(szS);   	wsprintf(szT,"%s\\共享软件程序发射器.lnk",szS);      CreateShortcut(cmd,NULL,szPath,szT,"共享软件程序发射器");   	wsprintf(szT,"%s\\清除发射器设置.lnk",szS);      CreateShortcut(cmd,"/u",szPath,szT,"清除发射器设置");      wsprintf(szT,"%s\\sendto\\共享软件程序发射器.lnk",szWinPath);   	CreateShortcut(cmd,NULL,szPath,szT,"共享软件程序发射器");   }   else   {   	wsprintf(szT,"%s\\共享软件程序发射器.lnk",szS);      DeleteFile(szT);      wsprintf(szT,"%s\\清除发射器设置.lnk",szS);      DeleteFile(szT);      RemoveDirectory(szS);      wsprintf(szS,"%s\\sendto\\共享软件程序发射器.lnk",szWinPath);	   DeleteFile(szS);   }}void Getcmd(void){   LPSTR xCmdLine;   int i;   xCmdLine=GetCommandLine();
	if(xCmdLine[0]=='"')      for(i=0;i<(int)strlen(xCmdLine)-2;i++)		{
      	if(xCmdLine[i+1]!='"')
   			cmd[i]=xCmdLine[i+1];
	      else
   	   {
      	  	cmd[i]='\0';
   	   	break;
		   }
		}   else      for(i=0;i<(int)strlen(xCmdLine)-2;i++)		{
      	if(xCmdLine[i]!=' ' && xCmdLine[i+1]!='-' && xCmdLine[i+1]!='/')
   			cmd[i]=xCmdLine[i];
	      else
   	   {
      	  	cmd[i]='\0';
   	   	break;
		   }
		}}#pragma argsusedBOOL CALLBACK APIENTRY QuitProc(HWND hWnd,UINT uMsg,UINT wParam,LONG lParam){	switch(uMsg)   {   	case WM_INITDIALOG:         hQuitWnd=hWnd;      	CheckRadioButton(hWnd,IDC_QUIT,IDC_FORCEQUIT,IDC_QUIT);         if(OSType()==NT)         {         	HWND hw;            hw=GetDlgItem(hWnd,IDHELP);            EnableWindow(hw,FALSE);            hw=GetDlgItem(hWnd,IDC_QUIT);            EnableWindow(hw,FALSE);            hw=GetDlgItem(hWnd,IDC_RESTART);            EnableWindow(hw,FALSE);            hw=GetDlgItem(hWnd,IDC_FORCEQUIT);            EnableWindow(hw,FALSE);            hw=GetDlgItem(hWnd,IDC_QUITSEL);            EnableWindow(hw,FALSE);         }      	break;      case WM_COMMAND:      	switch(LOWORD(wParam))         {         	case IDOK:            	EndDialog(hWnd,TRUE);               return TRUE;            case IDCANCEL:               hQuitWnd=NULL;            	EndDialog(hWnd,FALSE);               return FALSE;            case IDHELP:	//shut down               EndDialog(hWnd,TRUE);            	if(IsDlgButtonChecked(hWnd,IDC_QUIT)==BST_CHECKED)               	ExitWindowsEx(EWX_SHUTDOWN,0);               else if(IsDlgButtonChecked(hWnd,IDC_RESTART)==BST_CHECKED)               	ExitWindowsEx(EWX_REBOOT,0);               else if(IsDlgButtonChecked(hWnd,IDC_FORCEQUIT)==BST_CHECKED)               	ExitWindowsEx(EWX_FORCE|EWX_SHUTDOWN,0);               return TRUE;         }         break;      case WM_CLOSE:      	hQuitWnd=NULL;      	EndDialog(hWnd,FALSE);         return FALSE;   }   return FALSE;}void RemapMenu(void){
	int nItem;
   MENUITEMINFO mi;

   ZeroMemory(&mi,sizeof(mi));

   mi.cbSize=sizeof(mi);
   mi.fMask=MIIM_DATA | MIIM_ID | MIIM_STATE | MIIM_TYPE;	nItem = nAppNum;//GetMenuItemCount(hmenuTrackPopup);

	while ((--nItem)>=0)
	{
		GetMenuItemInfo(hmenuTrackPopup,nItem,TRUE,&mi);

      if (mi.wID != 0)
		{
      	if (!(mi.fState&MF_OWNERDRAW) && !(mi.fState&MF_BITMAP))
         {
            ci[nItem].idx=mi.wID-11000;
				ModifyMenu(hmenuTrackPopup,nItem,MF_BYPOSITION|MF_OWNERDRAW|mi.fState, mi.wID, (LPCTSTR)&ci[nItem]);
			}
      }
	}
}void MeasureItem(LONG lParam){   LPMEASUREITEMSTRUCT lpm;   //LPCOOLITEM lpci;   lpm=(LPMEASUREITEMSTRUCT)lParam;	if(lpm->CtlType == ODT_MENU)	{
   	lpm->itemWidth=200;
    	lpm->itemHeight=20;
    	//lpci=(LPCOOLITEM)lpm->itemData;
	}
}

void DrawItem(LPDRAWITEMSTRUCT lp)
{
   LPCOOLITEM pItem;

	if (lp->CtlType == ODT_MENU)
	{
      UINT id = lp->itemID;
      dis=*lp;		pItem = (LPCOOLITEM) lp->itemData;
		if (pItem)
		{
         HDC hDC = lp->hDC;
			RECT rc=lp->rcItem,rrc;
//         HFONT hfnt, hOldFont;

         if(id==(UINT)nSel)//wParam)
         {
         	rrc=rc;
         	rrc.right=rrc.left+20;

				if(id>=11000 && id<11050)
	            DrawIconEx(hDC,2,rrc.top+2,hicon[pItem->idx],16,16,0,NULL,DI_NORMAL);

         	DrawEdge(hDC,&rrc,BDR_RAISEDINNER,BF_RECT);
            SetTextColor(hDC,(COLORREF)(GetSysColor(COLOR_HIGHLIGHTTEXT)));
            SetBkColor(hDC,(COLORREF)(GetSysColor(COLOR_HIGHLIGHT)));
            rc.left+=22;
            FillRect(hDC,&rc,(HBRUSH)(COLOR_HIGHLIGHT+1));

//            hfnt = GetStockObject(DEFAULT_GUI_FONT);
//            hOldFont = SelectObject(hDC, hfnt);
//			   if(hOldFont)
//            {
//               TextOut(hDC,rc.left,rc.top,aiAppInfo[pItem->idx].szAppName,strlen(aiAppInfo[pItem->idx].szAppName));
            	DrawText(hDC,aiAppInfo[pItem->idx].szAppName,-1,&rc,DT_LEFT|DT_VCENTER|DT_SINGLELINE);
//			      SelectObject(hDC, hOldFont);
//			   }
         }
         else if(id<11050)
         {
         	rrc=rc;
         	rrc.right=rrc.left+20;

         	FillRect(hDC,&rrc,(HBRUSH)(COLOR_MENU+1));
            if(id>=11000 && id<11050)
	            DrawIconEx(hDC,2,rrc.top+2,hicon[pItem->idx],16,16,0,NULL,DI_NORMAL);

	         rc.left+=22;
            FillRect(hDC,&rc,(HBRUSH)(COLOR_MENU+1));
            SetBkColor(hDC,(COLORREF)(GetSysColor(COLOR_MENU)));
   	      DrawText(hDC,aiAppInfo[pItem->idx].szAppName,-1,&rc,DT_LEFT|DT_VCENTER);
         }
      }
   }
}void GetAllIcon(void){	int i;   WORD w=0;   for(i=0;i<nAppNum;i++)   {		CutCmdLine(aiAppInfo[i].szAppCmd);      hicon[i]=ExtractAssociatedIcon(hInst,szErr,&w);   }}/*BOOL ViewHTM(LPSTR szHtmFileName){		STARTUPINFO si={0};  		PROCESS_INFORMATION pi ;  		char szSysPath[MAX_PATH];//,szTemp[100];  		si.cb = sizeof( STARTUPINFO) ;		si.lpReserved = NULL ;
		si.lpDesktop = NULL ;
  		si.lpTitle = NULL ;
		si.dwX = 0 ;
  		si.dwY = 0 ;
  		si.dwXSize = 0 ;
  		si.dwYSize = 0 ;
  		si.dwXCountChars = 0 ;
  		si.dwYCountChars = 0 ;
  		si.dwFillAttribute = 0 ;
  		si.dwFlags = STARTF_USESHOWWINDOW;
  		si.wShowWindow = SW_SHOW ;
  		si.cbReserved2 = 0 ;
  		si.lpReserved2 = NULL ;
  		si.hStdInput = NULL;
  		si.hStdOutput = NULL;
  		si.hStdError = NULL;
   		//GetWindowsDirectory(szWinPath,MAX_PATH);
  		SetCurrentDirectory("c:\\Program Files\\Internet Explorer");//\\Iexplore.exe");//szWinPath);

  		//GetSystemDirectory(szTemp,MAX_PATH);
  		wsprintf(szSysPath,"c:\\temp\\web\\001.htm");//control.exe %s\\%s",szTemp,szCplName);

  		if( !CreateProcess(	NULL,//"Iexplore.exe",//szWinPath,
								"Iexplore.exe c:\\temp\\web\\001.htm",//szSysPath,//"control.exe c:pwin97systemtimedate.cpl",//szSysPath,
   	                  (LPSECURITY_ATTRIBUTES)NULL,
                        (LPSECURITY_ATTRIBUTES)NULL,
                        FALSE,
                        NORMAL_PRIORITY_CLASS,
                        NULL,
                        "c:\\Program Files\\Internet Explorer",//NULL,
                        &si,
                        &pi))
  		{  			return FALSE;//Errmsg("fail to open 001.htm");  		}      return TRUE;} */

⌨️ 快捷键说明

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