📄 lm2.cpp
字号:
/************************************************************
* *
* Lock Manage 6.0 *
* Copyright (c) 1996 by Software International *
* *
* Lock Manage source file LM2.CPP *
************************************************************/
#define Uses_TApplication
#define Uses_TMenuBar
#define Uses_TRect
#define Uses_TSubMenu
#define Uses_TKeys
#define Uses_TMenuItem
#define Uses_TStatusLine
#define Uses_TStatusItem
#define Uses_TStatusDef
#define Uses_TPoint
#define Uses_TEditor
#define Uses_MsgBox
#define Uses_TFileDialog
#define Uses_TDeskTop
#include <tv.h>
#include "lm.h"
#include <stdarg.h>
#include <strstrea.h>
#include <iomanip.h>
extern int chinese;
extern char title[];
extern char shellmsg[];
extern char openfile[];
extern char inputword[];
extern char lockfile1[];
extern char lockfile2[];
extern char lockdisk1[];
extern char lockdisk2[];
extern char lockdisk3[];
extern char lockdisk4[];
extern char lockdisk5[];
extern char lockdisk6[];
TMenuBar *App::initMenuBar( TRect r )
{
if (chinese) {
strcpy (title,"加密管理员");
strcpy (openfile,"打开文件");
strcpy (shellmsg,"键入 EXIT 重新返回 LOCK MANEGE 5.0 ...");
strcpy (inputword,"请输入密码(至少五个字节)");
strcpy (lockfile1,"不能加密此文件,按任意键退出 .");
strcpy (lockfile2,"文件加密成功,按任意键继续 .");
strcpy (lockdisk1,"不能加锁硬盘,按任意键退出 .");
strcpy (lockdisk2,"硬盘加锁成功,按任意键继续 .");
strcpy (lockdisk3,"不能加锁软盘,按任意键退出 .");
strcpy (lockdisk4,"软盘加锁成功,按任意键继续 .");
strcpy (lockdisk5," 请将恢复程序保存于软盘以便恢复\n \n 按任意键确认");
strcpy (lockdisk6," 请将欲加密磁盘插于A:驱动器\n \n 按任意键确认");
TSubMenu& sub1 = *new TSubMenu( "文件 [~F~]", kbAltF ) +
*new TMenuItem( "阅览文件 [~F~]", cmOpen, kbF3 , hcNoContext, "F3" ) +
newLine() +
*new TMenuItem( "EXE文件口令加锁 [~E~] ...", cmOpenexe, kbNoKey ) +
*new TMenuItem( "COM文件口令加锁 [~C~] ...", cmOpencom, kbNoKey ) +
*new TMenuItem( "批处理文件加密 [~B~] ...", cmOpenbat, kbNoKey ) +
*new TMenuItem( "数据库文件加密 [~A~] ...", cmOpenprg, kbNoKey ) +
newLine() +
*new TMenuItem( "改变路径 [~C~] ...", cmChangeDrct, kbNoKey ) +
*new TMenuItem( "驻留退出 [~D~]", cmDosShell, kbNoKey ) +
*new TMenuItem( "退出 [~X~]", cmQuit, kbAltX, hcNoContext, "Alt-X" );
TSubMenu& sub2 = *new TSubMenu( "磁盘 [~D~]", kbAltD ) +
*new TMenuItem( "硬磁盘加锁 [~C~]", cmHDdiskC, kbNoKey ) +
*new TMenuItem( "硬磁盘分区加锁 [~D~]", cmHDdiskD, kbNoKey ) +
newLine() +
*new TMenuItem( "高密软磁盘加锁 [~H~]", cmDiskHD, kbNoKey ) +
*new TMenuItem( "低密软磁盘加锁 [~F~]", cmDiskDD, kbNoKey ) ;
TSubMenu& sub3 = *new TSubMenu( "反复制 [~P~]", kbAltP ) +
*new TMenuItem( "标记硬磁盘指纹 [~M~]", cmHDmark, kbNoKey ) +
*new TMenuItem( "硬磁盘反拷贝 [~A~] ...", cmHDpro, kbNoKey ) +
newLine() +
*new TMenuItem( "标记高密磁盘软指纹 [~H~]", cmMarkHD, kbNoKey ) +
*new TMenuItem( "高密磁盘反拷贝 [~F~] ...", cmProHD, kbNoKey ) +
*new TMenuItem( "标记低密磁盘软指纹 [~D~]", cmMarkDD, kbNoKey ) +
*new TMenuItem( "低密磁盘反拷贝 [~L~] ...", cmProDD, kbNoKey ) +
newLine() +
*new TMenuItem( "反动态跟踪工具 [~T~] ...", cmDistrace, kbNoKey ) +
*new TMenuItem( "反静态反汇编分析工具 [~U~] ...", cmDisunasm, kbNoKey ) ;
TSubMenu& sub4 = *new TSubMenu( "帮助 [~H~]", kbAltH ) +
*new TMenuItem( "关于加密管理器 [~A~]", cmAbout, kbF1, hcNoContext,"F1" ) +
*new TMenuItem( "关闭窗口 [~C~]", cmClose, kbAltF3, hcNoContext, "Alt-F3" );
r.b.y = r.a.y+1;
return new TMenuBar( r, sub1 + sub2 + sub3 + sub4 );
}
else {
strcpy (title,"Lock Manage");
strcpy (openfile,"Open file");
strcpy (shellmsg,"Tpte EXIT to return to LOCK MANEGE 5.0 ...");
strcpy (inputword,"Input the password (at lease 5 word)");
strcpy (lockfile1," File lock failure\n \n Press any key to return .");
strcpy (lockfile2," File lock successfully\n \n Press any key to continue .");
strcpy (lockdisk1," Hard disk lock failure\n \n Press any key to return .");
strcpy (lockdisk2," Hard disk lock successfully\n \n Press any key to continue .");
strcpy (lockdisk3," Floppy disk lock failure\n \n Press any key to return .");
strcpy (lockdisk4," Floppy disk lock successfully\n \n Press any key to continue .");
strcpy (lockdisk5," Please keep the rescue disk\n \n Press any key to continue");
strcpy (lockdisk6," Please insert disk in drive A:\n \n Press any key to continue");
TSubMenu& sub1 = *new TSubMenu( "~F~ile", kbAltF ) +
*new TMenuItem( "~F~ile View", cmOpen, kbF3 , hcNoContext, "F3" ) +
newLine() +
*new TMenuItem( "~E~XE File Lock ...", cmOpenexe, kbNoKey ) +
*new TMenuItem( "~C~OM File Lock ...", cmOpencom, kbNoKey ) +
*new TMenuItem( "~B~atch File Lock ...", cmOpenbat, kbNoKey ) +
*new TMenuItem( "D~a~ta Base File Lock ...", cmOpenprg, kbNoKey ) +
newLine() +
*new TMenuItem( "~C~hange Dir...", cmChangeDrct, kbNoKey ) +
*new TMenuItem( "~D~OS Shell", cmDosShell, kbNoKey ) +
*new TMenuItem( "E~x~it", cmQuit, kbAltX, hcNoContext, "Alt-X" );
TSubMenu& sub2 = *new TSubMenu( "~D~isk", kbAltD ) +
*new TMenuItem( "Hard Disk ~C~ Lock", cmHDdiskC, kbNoKey ) +
*new TMenuItem( "hard Disk ~D~ Lock", cmHDdiskD, kbNoKey ) +
newLine() +
*new TMenuItem( "Lock Floddy Disk ~H~D", cmDiskHD, kbNoKey ) +
*new TMenuItem( "Lock ~F~loppy Disk DD", cmDiskDD, kbNoKey ) ;
TSubMenu& sub3 = *new TSubMenu( "~P~roCopy", kbAltP ) +
*new TMenuItem( "~M~ark Hard Disk", cmHDmark, kbNoKey ) +
*new TMenuItem( "H~a~rd Disk ProCopy ...", cmHDpro, kbNoKey ) +
newLine() +
*new TMenuItem( "Mark Floppy Disk ~H~D", cmMarkHD, kbNoKey ) +
*new TMenuItem( "ProCopy ~F~loppy Disk HD ...", cmProHD, kbNoKey ) +
*new TMenuItem( "Mark Floppy Disk ~D~D", cmMarkDD, kbNoKey ) +
*new TMenuItem( "ProCopy F~l~oppy Disk DD ...", cmProDD, kbNoKey ) +
newLine() +
*new TMenuItem( "S~t~atic Trace Aniliazed ...", cmDistrace, kbNoKey ) +
*new TMenuItem( "Static ~A~ssembles Aniliazed ...", cmDisunasm, kbNoKey ) ;
TSubMenu& sub4 = *new TSubMenu( "~H~elp", kbAltH ) +
*new TMenuItem( "~A~bout", cmAbout, kbF1, hcNoContext, "F1") +
*new TMenuItem( "~C~lose", cmClose, kbAltF3, hcNoContext, "Alt-F3" );
r.b.y = r.a.y+1;
return new TMenuBar( r, sub1 + sub2 + sub3 + sub4 );
}
}
TStatusLine *App::initStatusLine( TRect r )
{
r.a.y = r.b.y-1;
if (chinese) {
return new TStatusLine( r,
*new TStatusDef( 0, 0xFFFF ) +
*new TStatusItem("~Alt-X~ 退出系统", kbAltX, cmQuit ) +
*new TStatusItem( "~F3~ 打开", kbF3, cmOpen ) +
*new TStatusItem( "~Alt-F3~ 关闭", kbAltF3, cmClose ) +
*new TStatusItem( "~F10~ 主菜单", kbF10, cmMenu ) +
*new TStatusItem( 0, kbCtrlF5, cmResize )
);
}
else {
return new TStatusLine( r,
*new TStatusDef( 0, 0xFFFF ) +
*new TStatusItem("~Alt-X~ Exit", kbF2, cmSave ) +
*new TStatusItem( "~F3~ Open", kbF3, cmOpen ) +
*new TStatusItem( "~Alt-F3~ Close", kbAltF3, cmClose ) +
*new TStatusItem( "~F10~ Menu", kbF10, cmMenu ) +
*new TStatusItem( 0, kbCtrlF5, cmResize )
);
}
}
void App::outOfMemory()
{
messageBox("Not enough memory for this operation.", mfError | mfOKButton );
}
typedef char *_charPtr;
typedef TPoint *PPoint;
#pragma warn -rvl
ushort doEditDialog( int dialog, ... )
{
va_list arg;
char buf[80];
ostrstream os( buf, sizeof( buf ) );
switch( dialog )
{
case edOutOfMemory:
return messageBox( "Not enough memory for this operation",
mfError | mfOKButton );
case edReadError:
{
va_start( arg, dialog );
os << "Error reading file " << va_arg( arg, _charPtr )
<< "." << ends;
va_end( arg );
return messageBox( buf, mfError | mfOKButton );
}
case edWriteError:
{
va_start( arg, dialog );
os << "Error writing file " << va_arg( arg,_charPtr )
<< "." << ends;
va_end( arg );
return messageBox( buf, mfError | mfOKButton );
}
case edCreateError:
{
va_start( arg, dialog );
os << "Error creating file " << va_arg( arg, _charPtr )
<< "." << ends;
va_end( arg );
return messageBox( buf, mfError | mfOKButton );
}
case edSaveUntitled:
return messageBox( "Save untitled file?",
mfInformation | mfYesNoCancel );
}
}
#pragma warn .rvl
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -