📄 lm1.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 + -