?? 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 + -