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

📄 lm1.cpp

📁 软件加密精灵
💻 CPP
字号:

/************************************************************
 *                                                          *
 *   Lock  Manage 6.0                                       *
 *   Copyright (c) 1996 by Software International           *
 *                                                          *
 *   Lock  Manage  source file LM1.CPP                      *
 ************************************************************/

#define Uses_TApplication
#define Uses_TEditWindow
#define Uses_TDeskTop
#define Uses_TRect
#define Uses_TEditor
#define Uses_TFileEditor
#define Uses_TFileDialog
#define Uses_TChDirDialog
#define Uses_TDialog
#define Uses_TStaticText
#define Uses_TButton
#define Uses_TEvent
#define Uses_TWindow
#define Uses_TPalette
#define Uses_TChDirDialog
#define Uses_TRect
#define Uses_MsgBox

#include <tv.h>
#include "lm.h"

#include <process.h>
#include <stdlib.h>
#include <stdarg.h>
#include <strstrea.h>
#include <iomanip.h>

char buff[80];
int  chinese = 0 ;
char title [16];
char openfile [16];
char shellmsg  [48];
char inputword [48];
char lockfile1 [80];
char lockfile2 [80];
char lockdisk1 [80];
char lockdisk2 [80];
char lockdisk3 [80];
char lockdisk4 [80];
char lockdisk5 [80];
char lockdisk6 [80];

TEditWindow *clipWindow;

ushort execDialog( TDialog *d, void *data )
{
    TView *p = TProgram::application->validView( d );
    if( p == 0 )
	return cmCancel;
    else
	{
	if( data != 0 )
	    p->setData( data );
	ushort result = TProgram::deskTop->execView( p );
	if( result != cmCancel && data != 0 )
	    p->getData( data );
	TObject::destroy( p );
	return result;
	}
}


TEditWindow *App::openEditor( const char *fileName, Boolean visible )
{
    TRect r = deskTop->getExtent();
    TView *p = validView( new TEditWindow( r, fileName, wnNoNumber ) );
    if( !visible )
	p->hide();
    deskTop->insert( p );
    return (TEditWindow *)p;
}

App::App() :
    TProgInit( App::initStatusLine,
	       App::initMenuBar,
	       App::initDeskTop
	     ),
    TApplication()
{

    TCommandSet ts;
    ts.enableCmd( cmHDpro );
    ts.enableCmd( cmProHD );
    ts.enableCmd( cmProDD );
    disableCommands( ts );

    TEditor::editorDialog = doEditDialog;
    clipWindow = openEditor( 0, False );
    if( clipWindow != 0 )
	{
	TEditor::clipboard = clipWindow->editor;
	TEditor::clipboard->canUndo = False;
	}
}

void App::fileOpen()
{
    char fileName[MAXPATH];
    strcpy( fileName, "*.*" );

    if( execDialog( new TFileDialog( "*.*", openfile,
	    "~N~ame", fdOpenButton, 100 ), fileName) != cmCancel )
	{
	openEditor( fileName, True );
	}
}

void App::changeDir()
{
    execDialog( new TChDirDialog( cdNormal, 0 ), 0 );
}

void App::dosShell()
{
    suspend();
    system("cls");
    cout << shellmsg;
    system( getenv( "COMSPEC"));
    resume();
    redraw();
}


void App::Openexe()
{
    char fileName[MAXPATH];
    strcpy( fileName, "*.exe" );

    if( execDialog( new TFileDialog( "*.exe", openfile,
	    "~N~ame", fdOpenButton, 100 ), fileName) != cmCancel )
	{
	int choice;
	choice=inputBox (title,inputword,buff,16);
	if (choice==cmCancel) return;
	if (spawnl (P_WAIT, "system\\lock01.ovl","system\\lock01.ovl",fileName, buff, NULL ) !=0)
	   messageBox(lockfile1, mfError | mfOKButton );
	else
	   messageBox(lockfile2, mfConfirmation | mfOKButton );
	redraw();
	}
}


void App::Opencom()
{
    char fileName[MAXPATH];
    strcpy( fileName, "*.com" );

    if( execDialog( new TFileDialog( "*.com", openfile,
	    "~N~ame", fdOpenButton, 100 ), fileName) != cmCancel )
	{
	int choice;
	choice=inputBox (title,inputword,buff,16);
	if (choice==cmCancel) return;
	if (spawnl (P_WAIT, "system\\lock02.ovl","system\\lock02.ovl",fileName,buff, NULL )!=0)
	   messageBox(lockfile1, mfError | mfOKButton );
	else
	   messageBox(lockfile2, mfConfirmation | mfOKButton );
	redraw();
	}
}


void App::Openbat()
{
    char fileName[MAXPATH];
    strcpy( fileName, "*.bat" );

    if( execDialog( new TFileDialog("*.bat", openfile,
	    "~N~ame", fdOpenButton, 100 ), fileName) != cmCancel )
	{
	if (spawnl (P_WAIT, "system\\lock03.ovl","system\\lock03.ovl",fileName, NULL )!=0)
	   messageBox(lockfile1, mfError | mfOKButton );
	else
	   messageBox(lockfile2, mfConfirmation | mfOKButton );
	}
}

void App::Openprg()
{
    char fileName[MAXPATH];
    strcpy( fileName, "*.prg" );

    if( execDialog( new TFileDialog("*.prg", openfile,
	    "~N~ame", fdOpenButton, 100 ), fileName) != cmCancel )
	{
	if (spawnl (P_WAIT, "system\\lock04.ovl","system\\lock04.ovl",fileName, NULL )!=0)
	   messageBox(lockfile1, mfError | mfOKButton );
	else
	   messageBox(lockfile2, mfConfirmation | mfOKButton );
	}
}


void App::HDdiskC()
{
    int choice;
    choice=messageBox( lockdisk5 , mfConfirmation | mfOKCancel );
    if (choice==cmCancel) return;

    if (spawnl (P_WAIT, "system\\lock05.ovl","system\\lock05.ovl", NULL )!=0)
	   messageBox(lockdisk1, mfError | mfOKButton );
    else
	   messageBox(lockdisk2, mfConfirmation | mfOKButton );

}

void App::HDdiskD()
{
    int choice;
    choice=messageBox( lockdisk5 , mfConfirmation | mfOKCancel );
    if (choice==cmCancel) return;

    if (spawnl (P_WAIT, "system\\lock06.ovl","system\\lock06.ovl", NULL )!=0)
	   messageBox(lockdisk1, mfError | mfOKButton );
    else
	   messageBox(lockdisk2, mfConfirmation | mfOKButton );

}

void App::DiskHD()
{
    int choice;
    choice=messageBox( lockdisk6 , mfConfirmation | mfOKCancel );
    if (choice==cmCancel) return;

    if (spawnl (P_WAIT, "system\\lock07.ovl","system\\lock07.ovl", NULL )!=0)
	   messageBox(lockdisk3, mfError | mfOKButton );
    else
	   messageBox(lockdisk2, mfConfirmation | mfOKButton );

}

void App::DiskDD()
{
    int choice;
    choice=messageBox( lockdisk6 , mfConfirmation | mfOKCancel );
    if (choice==cmCancel) return;

    if (spawnl (P_WAIT, "system\\lock08.ovl","system\\lock08.ovl", NULL )!=0)
	   messageBox(lockdisk3, mfError | mfOKButton );
    else
	   messageBox(lockdisk2, mfConfirmation | mfOKButton );

}

void App::HDmark()
{
	int choice;
	choice=inputBox (title,inputword,buff,6);
	if (choice==cmCancel) return;
	if (spawnl (P_WAIT, "system\\lock09.ovl","system\\lock09.ovl",buff, NULL )!=0)
	   messageBox(lockdisk1, mfError | mfOKButton );
	else
	   messageBox(lockdisk2, mfConfirmation | mfOKButton );
	TCommandSet ts;
	ts.enableCmd( cmHDpro );
	enableCommands( ts );
	redraw();
}

void App::HDpro()
{
    char fileName[MAXPATH];
    strcpy( fileName, "*.exe" );

    if( execDialog( new TFileDialog( "*.exe", openfile,
	    "~N~ame", fdOpenButton, 100 ), fileName) != cmCancel )
	{
	if (spawnl (P_WAIT, "system\\lock10.ovl","system\\lock10.ovl",fileName, NULL )!=0)
	   messageBox(lockfile1, mfError | mfOKButton );
	else
	   messageBox(lockfile2, mfConfirmation | mfOKButton );
	}
}


void App::MarkHD()
{
    int choice;
    choice=messageBox( lockdisk6 , mfConfirmation | mfOKCancel );
    if (choice==cmCancel) return;

    if (spawnl (P_WAIT, "system\\lock11.ovl","system\\lock11.ovl", NULL )!=0)
	   messageBox(lockdisk3, mfError | mfOKButton );
    else
	   messageBox(lockdisk2, mfConfirmation | mfOKButton );
    TCommandSet ts;
    ts.enableCmd( cmProHD );
    enableCommands( ts );
}

void App::MarkDD()
{
    int choice;
    choice=messageBox( lockdisk6 , mfConfirmation | mfOKCancel );
    if (choice==cmCancel) return;

    if (spawnl (P_WAIT, "system\\lock12.ovl","system\\lock12.ovl", NULL )!=0)
	   messageBox(lockdisk3, mfError | mfOKButton );
    else
	   messageBox(lockdisk2, mfConfirmation | mfOKButton );
    TCommandSet ts;
    ts.enableCmd( cmProDD );
    enableCommands( ts );
}


void App::ProHD()
{
    char fileName[MAXPATH];
    strcpy( fileName, "*.*" );

    if( execDialog( new TFileDialog( "*.*", openfile,
	    "~N~ame", fdOpenButton, 100 ), fileName) != cmCancel )
	{
	if (spawnl (P_WAIT, "system\\lock13.ovl","system\\lock13.ovl",fileName, buff, NULL ) !=0)
	   messageBox(lockfile1, mfError | mfOKButton );
	else
	   messageBox(lockfile2, mfConfirmation | mfOKButton );
	}
}


void App::ProDD()
{
    char fileName[MAXPATH];
    strcpy( fileName, "*.*" );

    if( execDialog( new TFileDialog( "*.*", openfile,
	    "~N~ame", fdOpenButton, 100 ), fileName) != cmCancel )
	{
	if (spawnl (P_WAIT, "system\\lock14.ovl","system\\lock14.ovl",fileName, buff, NULL ) !=0)
	   messageBox(lockfile1, mfError | mfOKButton );
	else
	   messageBox(lockfile2, mfConfirmation | mfOKButton );
	}
}

void App::Distrace()
{
    char fileName[MAXPATH];
    strcpy( fileName, "*.*" );

    if( execDialog( new TFileDialog( "*.*", openfile,
	    "~N~ame", fdOpenButton, 100 ), fileName) != cmCancel )
	{
	if (spawnl (P_WAIT, "system\\lock15.ovl","system\\lock15.ovl",fileName, buff, NULL ) !=0)
	   messageBox(lockfile1, mfError | mfOKButton );
	else
	   messageBox(lockfile2, mfConfirmation | mfOKButton );
	}
}

void App::Disunasm()
{
    char fileName[MAXPATH];
    strcpy( fileName, "*.*" );

    if( execDialog( new TFileDialog( "*.*", openfile,
	    "~N~ame", fdOpenButton, 100 ), fileName) != cmCancel )
	{
	if (spawnl (P_WAIT, "system\\lock16.ovl","system\\lock16.ovl",fileName, buff, NULL ) !=0)
	   messageBox(lockfile1, mfError | mfOKButton );
	else
	   messageBox(lockfile2, mfConfirmation | mfOKButton );
	}
}

void App::about()
{
    TDialog *aboutBox = new TDialog(TRect(0, 0, 39, 13), "About");

    if (chinese)  {
    aboutBox->insert(
      new TStaticText(TRect(9, 2, 30, 9),
	"\003多功能加密工具箱\n\003\n"    // These strings will be
	"\003之5.00版\n\003\n"            // concatenated by the compiler.
	"\003龙云亮于1996年\n\003\n"      // The Ctrl-C centers the line.
	"\003真诚奉献 不取分文"
	)
      );
    aboutBox->insert(
      new TButton(TRect(14, 10, 25, 12), " 确认", cmOK, bfDefault)
      );
    }
    else  {
    aboutBox->insert(
      new TStaticText(TRect(9, 2, 30, 9),
	"\003Lock Manage Utility\n\003\n"   // These strings will be
	"\003Version 5.00\n\003\n"          // concatenated by the compiler.
	"\003Copyright (c) 1996\n\003\n"    // The Ctrl-C centers the line.
	"\003By Long YunLiang"
	)
      );
    aboutBox->insert(
      new TButton(TRect(14, 10, 25, 12), " OK", cmOK, bfDefault)
      );
    }

    aboutBox->options |= ofCentered;

    deskTop->execView(aboutBox);

    destroy( aboutBox );
}

void App::showClip()
{
    clipWindow->select();
    clipWindow->show();
}

void App::tile()
{
    deskTop->tile( deskTop->getExtent() );
}

void App::cascade()
{
    deskTop->cascade( deskTop->getExtent() );
}

void App::handleEvent( TEvent& event )
{
    TApplication::handleEvent( event );
    if( event.what != evCommand )
	return;
    else
	switch( event.message.command )
	    {
	    case cmOpen:
		fileOpen();
		break;

	    case cmChangeDrct:
		changeDir();
		break;

	    case cmDosShell:
		dosShell();
		break;

	    case cmOpenexe:
		Openexe();
		break;

	    case cmOpencom:
		Opencom();
		break;


	    case cmOpenbat:
		Openbat();
		break;


	    case cmOpenprg:
		Openprg();
		break;

	    case cmHDdiskC:
		HDdiskC();
		break;

	    case cmHDdiskD:
		HDdiskD();
		break;

	    case cmDiskHD:
		DiskHD();
		break;

	    case cmDiskDD:
		DiskDD();
		break;

	    case cmHDmark:
		HDmark();
		break;

	    case cmHDpro:
		HDpro();
		break;

	    case cmProHD:
		ProHD();
		break;

	    case cmProDD:
		ProDD();
		break;

	    case cmMarkHD:
		MarkHD();
		break;

	    case cmMarkDD:
		MarkDD();
		break;

	    case cmDistrace:
		Distrace();
		break;

	    case cmDisunasm:
		Disunasm();
		break;

	    case cmAbout:
		about();
		break;

	    default:
		return ;
	    }
    clearEvent( event );
}

#include <dos.h>

int testchinese (void)
{
    union REGS r;
    r.h.ah=0x35;
    r.h.al=0x16;
    int86 (0x21,&r,&r);
    if (r.x.bx==0xe82e)
       chinese=0;
    else
       chinese=1;
    return chinese;
}

int main()
{
    testchinese();
    App myApp;
    myApp.run();
    return 0;
}

⌨️ 快捷键说明

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