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

📄 sharewareluncher.c

📁 执行和去除共享软件日期限制的程序
💻 C
📖 第 1 页 / 共 3 页
字号:
#include <user\dlg.h>#include <cpl.h>#include <dde.h>#include "resource.h"#include "sharewareluncher.h"#include "time1.h"#include "tab.h"#define MYWM_EXEACT	(WM_USER+112)#define RUN_MIN			0#define RUN_UNINSTALL	1#define RUN_CLOSE			2#define RUN_EXE			3typedef struct tagcool{	int		idx;
}COOLITEM,*LPCOOLITEM;HDDEDATA CALLBACK DdeCallBack(UINT uType,UINT uFmt,HCONV hConv,HSZ hsz1,HSZ hsz2,HDDEDATA hData,DWORD dwData1,DWORD dwData2);void ExeAction(LPSTR);int Runit(BOOL);void MakeShortcut(void);void Uninstall(BOOL bSysOnly);void MakeUninstallLnk(BOOL);void Getcmd(void);BOOL CALLBACK APIENTRY QuitProc(HWND hWnd,UINT uMsg,UINT wParam,LONG lParam);BOOL VRHD(void);void RegCancelSubst(void);BOOL CancelSubst(void);extern int CutCmdLine(LPSTR s);HINSTANCE hInst;HBITMAP hbmMain,hbmSysButton,hbmAct,hbmClock,hbmBkg;RECT Size;BUTTONPOS bsSys[]={{0,206,8,16,14,0,0,TRUE},{1,240,8,16,14,16,0,TRUE}};BUTTONPOS bsSysOrg[]={{0,206,8,16,14,206,8,TRUE},{1,240,8,16,14,240,8,TRUE}};BUTTONPOS bsAct[]={{0,24,209,45,21,0,0,TRUE},{1,88,209,45,21,0,21,TRUE},{2,154,209,45,21,0,42,TRUE}};BUTTONPOS bsActPushed[]={{0,24,209,45,21,45,0,TRUE},{1,88,209,45,21,45,21,TRUE},{2,154,209,45,21,45,42,TRUE}};BUTTONPOS bsActOrg[]={{0,24,209,45,21,24,209,TRUE},{1,88,209,45,21,88,209,TRUE},{2,154,209,45,21,154,209,TRUE}};char szErrr[300];extern char szErr[256];BOOL bInTarget=FALSE,bHold=FALSE,bHoldInAct=FALSE,InReady=TRUE,bInAct=FALSE;int i,iSysNo=-1,nActNo=-1,iActNo=-1;HMENU hmenu;HMENU hmenuTrackPopup;BOOL bSetAuto=FALSE,bRunMin=FALSE;DWORD dwThreadId=0,dwKlockId=1;extern APPINFO aiAppInfo[50];HWND hMainWnd;BOOL bMined=FALSE,bQuit=FALSE,bDlgRuned=FALSE;TIMERINFO ti[10];extern int nAlarmEveryHour,nDlgflag;extern int nAppNum;extern BOOL bSheet;extern HWND hSheetWnd;extern HBITMAP hbmHHour[3],hbmLHour[10],hbmHMin[6],hbmLMin[10];extern HBITMAP hbmHSec[6],hbmLSec[10],hbmClockBkg;HANDLE hTimeSecWnd;BOOL bHelp=FALSE,bVerChanged=FALSE;/////////flag of vrhd////////BOOL IsVRHD=FALSE;	//=true,drive a: is virtual floppy disk/////DDE diclare///////////DWORD idInst=0;char szDdeTitle[]="sharewareluncher";HSZ hszAppName;HCONV hConv;char szCommand[300];int nRunflag;//////////////////////////extern HWND hBaseWnd;extern HWND hListAppWnd,hAddWnd;char szRunCommand[300];BOOL bAddExe=FALSE,bCreateLink=FALSE;char cmd[MAX_PATH];///////cool menu//////////DRAWITEMSTRUCT dis;COOLITEM ci[50];int nOldSel=-1,nSel=-1;HICON hicon[50];HWND hQuitWnd=NULL;	//标记“退出”对话框已显示,不能显示多个相同对话框BOOL InitApplication(HINSTANCE hInstance){	WNDCLASS  wc;	wc.style = CS_HREDRAW | CS_VREDRAW;	wc.lpfnWndProc = (long (FAR PASCAL*)())MainWndProc;	wc.cbClsExtra = 0;	wc.cbWndExtra = 0;	wc.hInstance = hInstance;	wc.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_APPICON));	wc.hCursor = LoadCursor(NULL, IDC_ARROW);	wc.hbrBackground = GetStockObject(WHITE_BRUSH);	wc.lpszMenuName = NULL;//"NINJA";  // Name of menu resource in .RC file.	wc.lpszClassName = "MyApp"; // Name used in call to CreateWindow.	return (RegisterClass(&wc));}BOOL InitInstance(HINSTANCE hInstance, int nCmdShow){	HWND  hWnd;	hWnd = CreateWindowEx(   	0,//WS_EX_TOOLWINDOW,		"MyApp",		"共享软件程序发射器",		WS_POPUP,//|WS_SIZEBOX,		(Size.right-265)/2,		(Size.bottom-240)/2,		265,// Default width.		240,// Default height.		NULL,		NULL,// Use the window class menu.		hInstance,		NULL		);	if (!hWnd)		return (FALSE);   //ShowOwnedPopups(hWnd,TRUE);   if(bRunMin)   	ShowWindow(hWnd,SW_MINIMIZE);   else		ShowWindow(hWnd, nCmdShow);	UpdateWindow(hWnd);	return (TRUE);}#pragma argsusedint APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hNull,LPSTR lpCmdLine, int nCmdShow){   MSG msg;	hInst=hInstance;   if(strcmp(lpCmdLine,"\0")==0)     	nRunflag=RUN_CLOSE;	else if(strcmp(lpCmdLine,"/u")==0)     	nRunflag=RUN_UNINSTALL;   else   {   	if(strcmp(lpCmdLine,"/s")==0)   	{   		bRunMin=TRUE;      	nRunflag=RUN_MIN;   	}   	else   	{      	bRunMin=FALSE;   		nRunflag=RUN_EXE;      }   }   GetWindowRect(GetDesktopWindow(),&Size);	if (!InitApplication(hInstance))		return (FALSE);   if(DdeInitialize(&idInst,(PFNCALLBACK)DdeCallBack,   		APPCMD_FILTERINITS|CBF_SKIP_CONNECT_CONFIRMS|CBF_FAIL_SELFCONNECTIONS|CBF_FAIL_POKES,0))   	return (FALSE);   hszAppName=DdeCreateStringHandle(idInst,szDdeTitle,0);   DdeNameService(idInst,hszAppName,0,DNS_REGISTER);   hConv=DdeConnect(idInst,hszAppName,hszAppName,NULL);   if(hConv!=NULL)   {   	switch(nRunflag)      {      	case RUN_CLOSE:         	wsprintf(szCommand,"Restore");            break;         case RUN_UNINSTALL:            if(MessageBox(GetFocus(),"即将删除本软件在注册表中登记的内容,你以前的设置均会无用,继续吗?",			   	"清除发射器设置",MB_YESNO | MB_ICONWARNING)==IDNO)				{            	nRunflag=RUN_CLOSE;               wsprintf(szCommand,"Restore");            }            else         		wsprintf(szCommand,"Uninstall");            break;         case RUN_EXE:         	wsprintf(szCommand,lpCmdLine);            break;         default:         	wsprintf(szCommand,"\0");      }      if(nRunflag==RUN_UNINSTALL)      {         if(DdeClientTransaction((LPBYTE)szCommand,strlen(szCommand)+1,hConv,0,0,XTYP_EXECUTE,TIMEOUT_ASYNC,NULL))      		//if(DdeGetLastError(idInst)==DMLERR_SERVER_DIED)            {               DdeNameService(idInst,hszAppName,0,DNS_UNREGISTER);      			DdeUninitialize(idInst);            	Uninstall(FALSE);               return 0L;            }      }      if(!DdeClientTransaction((LPBYTE)szCommand,strlen(szCommand)+1,hConv,0,0,XTYP_EXECUTE,6000,NULL))      {      	switch(DdeGetLastError(idInst))         {            case DMLERR_BUSY:            	DdeClientTransaction((LPBYTE)szCommand,strlen(szCommand)+1,hConv,0,0,XTYP_EXECUTE,6000,NULL);               break;         }      }      DdeNameService(idInst,hszAppName,0,DNS_UNREGISTER);      DdeUninitialize(idInst);      return 0L;//(FALSE);   }   else   {   	if(nRunflag==RUN_UNINSTALL)      {      	if(MessageBox(GetFocus(),"即将删除本软件在注册表中登记的内容,你以前的设置均会无用,继续吗?",			   	"清除发射器设置",MB_YESNO | MB_ICONWARNING)==IDYES)         {         	Uninstall(FALSE);            return 0L;         }      }   	if(nRunflag==RUN_CLOSE)      	bRunMin=FALSE;      else      	bRunMin=TRUE;   	wsprintf(szRunCommand,lpCmdLine);	}   hbmMain=LoadBitmap(hInst,MAKEINTRESOURCE(IDB_MAIN));   hbmSysButton=LoadBitmap(hInst,MAKEINTRESOURCE(IDB_SYSBUTTON));   hbmAct=LoadBitmap(hInst,MAKEINTRESOURCE(IDB_ACT));   hbmClock=LoadBitmap(hInst,MAKEINTRESOURCE(IDB_NUM));   hbmBkg=LoadBitmap(hInst,MAKEINTRESOURCE(IDB_BKG));	if (!InitInstance(hInstance, nCmdShow))	{//   	DdeUninitialize(idInst);   	return (FALSE);   }   if( NOERROR != OleInitialize(NULL))        return FALSE;	while (GetMessage(&msg,NULL,0,0))	{		TranslateMessage(&msg);		DispatchMessage(&msg);	}   OleUninitialize() ;	return (msg.wParam);}#pragma argsusedLRESULT APIENTRY MainWndProc(HWND hWnd,UINT uMsg,UINT wParam,LONG lParam){   HDC hDC,hMemDC;   PAINTSTRUCT ps;   hMainWnd=hWnd;	switch(uMsg)	{      case WM_CREATE://         SetCursor(LoadCursor(hInst,IDC_ARROW));         {         	int i;            for(i=0;i<10;i++)            {            	ti[i].wHour=0;               ti[i].wMinute=0;               ti[i].nflag=0;               wsprintf(ti[i].szInfo,"\0");            }         }      	hDC=GetDC(hWnd);         hMemDC=CreateCompatibleDC(hDC);         SelectObject(hMemDC,hbmMain);         BitBlt(hDC,0,0,265,240,hMemDC,0,0,SRCCOPY);         DeleteDC(hMemDC);         ReleaseDC(hWnd,hDC);         PutToTaskBar(hWnd,0,LoadIcon(hInst,MAKEINTRESOURCE(IDI_APPICON)),"共享软件程序发射器");         InitTimeBmp(hWnd);         hmenu = LoadMenu(hInst, MAKEINTRESOURCE(IDM_POPUP));         if (hmenu)
           	hmenuTrackPopup = GetSubMenu(hmenu, 0);

         CheckReg();			Getcmd();         if(bSetAuto)         {            REGVALINFO ri;            char sztemp[MAX_PATH];            ri.szValName=NULL;			   ri.dwType=REG_SZ;
			   ri.lpData=(LPBYTE)"通过发射器创建快捷方式";
			   ri.cbData=30;            RegSetGroupVal(HKEY_CLASSES_ROOT,"exefile\\shell\\ShortcutfromLuncher",1,&ri);            RegSetGroupVal(HKEY_CLASSES_ROOT,"scrfile\\shell\\ShortcutfromLuncher",1,&ri);         	ri.szValName=NULL;//"DisplayName";			   ri.dwType=REG_SZ;
			   ri.lpData=(LPBYTE)"通过发射器启动";
			   ri.cbData=20;

   			RegSetGroupVal(HKEY_CLASSES_ROOT,"exefile\\shell\\AddtoLuncher",1,&ri);            RegSetGroupVal(HKEY_CLASSES_ROOT,"scrfile\\shell\\AddtoLuncher",1,&ri);            ri.szValName=NULL;			   ri.dwType=REG_SZ;
			   ri.lpData=(LPBYTE)"虚拟软驱";
			   ri.cbData=10;            RegSetGroupVal(HKEY_CLASSES_ROOT,"Directory\\shell\\sharewareluncher.vrhd",1,&ri);            wsprintf(sztemp,cmd);            strcat(sztemp," -create %1");            ri.szValName=NULL;			   ri.dwType=REG_SZ;
			   ri.lpData=(LPBYTE)sztemp;
			   ri.cbData=MAX_PATH;            RegSetGroupVal(HKEY_CLASSES_ROOT,"exefile\\shell\\ShortcutfromLuncher\\command",1,&ri);            RegSetGroupVal(HKEY_CLASSES_ROOT,"scrfile\\shell\\ShortcutfromLuncher\\command",1,&ri);            wsprintf(sztemp,cmd);            strcat(sztemp," -add %1");            ri.szValName=NULL;//"DisplayName";			   ri.dwType=REG_SZ;
			   ri.lpData=(LPBYTE)sztemp;
			   ri.cbData=MAX_PATH;

   			RegSetGroupVal(HKEY_CLASSES_ROOT,"exefile\\shell\\AddtoLuncher\\command",1,&ri);            RegSetGroupVal(HKEY_CLASSES_ROOT,"scrfile\\shell\\AddtoLuncher\\command",1,&ri);            wsprintf(sztemp,cmd);            strcat(sztemp," -vrhd %1");            ri.szValName=NULL;			   ri.dwType=REG_SZ;
			   ri.lpData=(LPBYTE)sztemp;
			   ri.cbData=MAX_PATH;            RegSetGroupVal(HKEY_CLASSES_ROOT,"Directory\\shell\\sharewareluncher.vrhd\\command",1,&ri);         	SetAutoRun("Sharewareluncher","/s",TRUE);            MakeUninstallLnk(TRUE);            ChangeShortcut();         }         if(bVerChanged)         {            bVerChanged=FALSE;         	SetAutoRun("Sharewareluncher","/s",TRUE);            Uninstall(TRUE);         }         hTimeSecWnd=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)TimeThread,0,0,&dwThreadId);         CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)KlockThread,0,0,&dwKlockId);         RemapMenu();         GetAllIcon();         if(nRunflag==RUN_EXE)           	ExeAction(szRunCommand);			break;      case WM_MEASUREITEM:      	MeasureItem(lParam);         break;      case WM_DRAWITEM:         DrawItem((LPDRAWITEMSTRUCT)lParam);      	break;      case WM_MENUSELECT:      	if(LOWORD(wParam)!=0)	      {   	      nOldSel=nSel;				nSel=LOWORD(wParam);            SendMessage(hWnd,WM_DRAWITEM,nSel,(LPARAM)&dis);            nSel=-1;			}			return 0;		case WM_PAINT:         hDC=BeginPaint(hWnd,&ps);         hMemDC=CreateCompatibleDC(hDC);         SelectObject(hMemDC,hbmMain);         BitBlt(hDC,0,0,265,240,hMemDC,0,0,SRCCOPY);         DeleteDC(hMemDC);         EndPaint(hWnd,&ps);         ShowTime(hWnd);         break;      case MYWM_TIMEUP:      	TimeUp(hWnd,(int)wParam);         break;      case MYWM_EXEACT:			ExeAction((LPSTR)lParam);         break;      case MYWM_ICON:         switch(lParam)         {         	case WM_LBUTTONDOWN:            	ShowWindow(hWnd,SW_RESTORE);               SetForegroundWindow(hWnd);               break;            case WM_RBUTTONUP:            {            	POINT pt;

               SetForegroundWindow(hWnd);
               SetActiveWindow(hWnd);

               GetCursorPos(&pt);

        			TrackPopupMenuEx(hmenuTrackPopup,
                         TPM_LEFTALIGN | TPM_TOPALIGN |     // default values
                         TPM_HORIZONTAL | TPM_LEFTBUTTON | // equivalent to 0
                         TPM_RIGHTBUTTON,                   // Right selection
                         pt.x, pt.y,
                         hWnd,
                         NULL);

        			//DestroyMenu(hmenu);
    			}    			break;         }         break;      case WM_SIZE:      	if(wParam==SIZE_MINIMIZED)         {            bMined=TRUE;

⌨️ 快捷键说明

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