📄 sail2000.bak
字号:
//往桌面加入一个图标,图标文件是"Bmp\BookS02.Ico",文字是"回收站",单击时调用函数DesktopFun2
pDesktop->AddLink("Bmp\\BookS02.Ico","回收站",DesktopFun2);
//往桌面加入一个图标,图标文件是"Bmp\Net.Ico",文字是"网上领居",单击时调用函数DesktopFun3
pDesktop->AddLink("Bmp\\Net.Ico","网上邻居",DesktopFun3);
//往桌面加入一个图标,图标文件是"Bmp\BookS03.Ico",文字是"四大刚",单击时调用函数DesktopFun4
pDesktop->AddLink("Bmp\\BookS03.Ico","四大金刚",DesktopFun4);
//往桌面加入一个图标,图标文件是"Bmp\BookS04.Ico",文字是"东方快车",单击时调用函数DesktopFun5
pDesktop->AddLink("Bmp\\BookS04.Ico","东方快车",DesktopFun5);
//往桌面加入一个图标,图标文件是"Bmp\BookS05.Ico",文字是"金山词霸",单击时调用函数DesktopFun6
pDesktop->AddLink("Bmp\\BookS05.Ico","金山词霸",DesktopFun6);
pDesktop->AddLink("Bmp\\BookS06.Ico","网络设置",(void far (*)(CObject*))NetcardSetting);
pDesktop->AddLink("Bmp\\BookS07.Ico","向导属性演示",(void far (*)(CObject*))DemoWizard);
pDesktop->AddLink("Bmp\\BookS07.Ico","滑块进度条演示",(void far (*)(CObject*))DemoSliderAndProcess);
pDesktop->AddLink("Bmp\\BookS08.Ico","多行编缉框演示",(void far (*)(CObject*))DemoMultiEditDialog);
pDesktop->AddLink("Bmp\\BookS09.Ico","文件打开框演示",(void far (*)(CObject*))DemoFileOpenDialog);
pDesktop->AddLink("Bmp\\BookS10.Ico","窗口菜单演示",(void far (*)(CObject*))MenuInstance);
pDesktop->AddLink("Bmp\\BookS11.Ico","触摸屏输入演示",(void far (*)(CObject*))VirtualKeyboardDemo);
pDesktop->AddLink("Bmp\\BookS12.Ico","表盘制作演示",(void far (*)(CObject*))DialDemoDialog);
pDesktop->AddLink("Bmp\\BookS01.Ico","示波器演示",(void far (*)(CObject*))GraphDemoDialog);
pDesktop->AddLink("Bmp\\BookS02.Ico","Arp高速缓冲表",(void far (*)(CObject*))ArpDialog);
pDesktop->AddLink("Bmp\\BookS03.Ico","条码演示",(void far (*)(CObject*))BarCodeDemo);
pDesktop->AddLink("Bmp\\BookS04.Ico","LED演示",(void far (*)(CObject*))LedDemoDialog);
pDesktop->AddLink("Bmp\\BookS04.Ico","数字键盘演示",(void far (*)(CObject*))Demo_NumberKeyboard);
//分配"开始"菜单的普通按钮的一个实例
CButton *pButton1 = new CButton(pAfxWindow);
//建立"开始"按钮
pButton1->CreateObject(0,30+(GetMaxY() + 1 -27),90,16+7,"※开始※");
//设置"按钮"与"ClickMenuButton_FrameWindow"函数关联
pButton1->SetFc(ClickMenuButton_FrameWindow);
//设置按钮的快捷键
pButton1->SetShortcutKey(VK_ALT_F);
//设置按钮的"ID号"是"2001"
pButton1->SetID(2001);
//分配工具条实例
CToolsBar *pToolsBar = new CToolsBar(pAfxWindow);
//建立工具条
pToolsBar->CreateObject(3 + 90 , 30 + (GetMaxY() + 1-27), (16 + 6)*3 , 16 + 8,NULL);
//工具条的背景色不需要显示,因为在"显示窗口回调函数"中有"状态条"在同一位置上显示了。
pToolsBar->SetBackColorDisplay(FALSE);
//往工具条上增加一个按钮,图标文件是"BookS01.Ico",单击按钮时调用ToolsFun1
pToolsBar->AddButton("Bmp\\BookS01.Ico",(void (*)(CObject*, WORD))ToolsFun1);
//往工具条上增加一个按钮,图标文件是"BookS02.Ico",单击按钮时调用ToolsFun2
pToolsBar->AddButton("Bmp\\BookS02.Ico",(void (*)(CObject*, WORD))ToolsFun2);
//往工具条上增加一个按钮,图标文件是"BookS03.Ico",单击按钮时调用ToolsFun3
pToolsBar->AddButton("Bmp\\BookS03.Ico",(void (*)(CObject*, WORD))ToolsFun3);
return(TRUE);
}
BOOL bAfxExitThread = FALSE;
int TaskFun1(DWORD dwParam)
{
while (!bAfxExitThread)
{
//asm sti
INTERRUPT_CLI
/*
::SetColor(WHITE);
::SetFillStyle(1, dwParam);
int nX = ::random(GetMaxX());
int nY = ::random(GetMaxY());
if (nX >100 && nX < 500 && nY > 100 && nY < 300)
{
::FillEllipse(nX, nY, 25, 25);
}
*/
//int nDelay = ::random(1000);
INTERRUPT_STI
::KernelDelay(20);
for (long i = 0; i < 30000L; i++)
{
double dbA = 3.5;
double dbB = 7.3 + dbA;
double dbC = 3.5 + dbA + 4.5 + dbB;
double dbD = 3.5 + dbB + 4.5 + dbC;
double dbE = 3.5 + dbC + 4.5 + dbD;
double dbF = 3.5 + dbD + 4.5 + dbE;
}
//AfxSwapProcess();
}
return(0);
}
extern WAVE_PROCESS_TCB msAfxWaveProcess[MAX_PROCESS_COUNT];
//#include "abc3.cpp"
double GetR1(double dbR1, double dbR2)
{
return(dbR1* dbR2/(dbR1 + dbR2));
}
double GetR2(double dbR1, double dbR2)
{
return(dbR1* dbR2/(dbR1 - dbR2));
}
//#define ABC3_DEBUG
#ifdef ABC3_DEBUG
#include "Abc3.Cpp"
#endif
void DisplayData(void* pByte, DWORD dwData)
{
static int i = 0;
char buf[100];
sprintf(buf, "%04X:%04X-->%08lX",
(WORD)SAIL_HIWORD((DWORD)pByte),
(WORD)SAIL_LOWORD((DWORD)pByte),
dwData);
ChPrintf(0,(i++) * 16, WHITE,BLACK, 1, 0, buf);
}
void DisplayVideo()
{
BYTE* pbyData;
//Mode
pbyData = (BYTE *)MK_FP(0x40,0x49);
DisplayData(pbyData, *pbyData);
//Col
pbyData++;
DisplayData(pbyData, *((WORD *)pbyData));
//Len
pbyData+=2;
DisplayData(pbyData, *((WORD *)pbyData));
//Start
pbyData+=2;
DisplayData(pbyData, *((WORD *)pbyData));
//Page 1 ~8
for (int p = 0; p < 8; p++)
{
pbyData+=2;
DisplayData(pbyData, *((WORD *)pbyData));
}
//Cursor Style
pbyData+=2;
DisplayData(pbyData, *((WORD *)pbyData));
//Visible Page
pbyData+=2;
DisplayData(pbyData, *((BYTE *)pbyData));
//Crt Base
pbyData+=1;
DisplayData(pbyData, *((WORD *)pbyData));
//3*8
pbyData+=2;
DisplayData(pbyData, *((BYTE *)pbyData));
//3*9
pbyData+=1;
DisplayData(pbyData, *((BYTE *)pbyData));
//=========================================
//Row-1
pbyData = (BYTE *)MK_FP(0x40,0x84);
DisplayData(pbyData, *((BYTE *)pbyData));
//Character Length
pbyData+=1;
DisplayData(pbyData, *((WORD *)pbyData));
//Control
pbyData+=2;
DisplayData(pbyData, *((BYTE *)pbyData));
//Control
pbyData+=1;
DisplayData(pbyData, *((BYTE *)pbyData));
//Reserve
pbyData+=1;
DisplayData(pbyData, *((BYTE *)pbyData));
//Reserve
pbyData+=1;
DisplayData(pbyData, *((BYTE *)pbyData));
getch();
}
//#define WINSAIL_NETCARD_USER
#ifdef WINSAIL_NETCARD_USER
BOOL RemoteContorlClient(int nSeek);
BOOL User_EthernetEntry(BOOL bSingle, BOOL bSend, BOOL bIcmp)
{
::EthernetEntry(bSingle, bSend, bIcmp);
::RemoteContorlClient(1);
return(TRUE);
}
#endif
//#define ABC3_DEBUG
#ifdef ABC3_DEBUG
#include "abc3.cpp"
#endif
//main函数
int main(int argc,char **argv)
{
#ifdef ABC3_DEBUG
return(main3(argc, argv));
#endif
#ifdef WINSAIL_NETCARD_USER
::AfxRegisterNetcardEntry(::GlobalInitSocket,
::GlobalCloseSocket, ::EthernetEntry);
#endif
::AfxRegisterIme(::GlobalImeManager);
//为函数的"重入"作准备
BOOL bEntryAgain = FALSE;
if (argc == 2)
{
WORD wFormat = *((WORD *)(argv[1]));
if (wFormat == ::GetEntryAgainFormat())
{
bEntryAgain = TRUE;
}
}
//::SetWindowCenterEnable(FALSE);
char* pByte = "现在可安全关闭计算机了!";
//初始化WinSail系统内核
if( !::InitSystem(argc,argv))
{
::CloseSystem();
::printf("\nSystem Source Not Enough!");
return(0);
}
#ifdef WINSAIL_NETCARD_USER
::AfxRegisterNetcardEntry(::GlobalInitSocket,
::GlobalCloseSocket, ::User_EthernetEntry);
::RemoteContorlClient(0);
#endif
::SetActivePage(0);
::SetVisualPage(0);
::AfxClearScreen(CYAN);
::SetFillStyle(1, DARKGRAY);
::Bar(0, GetMaxY() - 16 + 1, GetMaxX(),GetMaxY());
ChPrintf(40, GetMaxY()- 16 * 1 + 1, WHITE, DARKGRAY, 1, 1,
"*********温馨提示********* "
"用户名--- super 密 码--- ( 空 )");
//DisplayVideo();
//如果是函数"重入"或直接进入"监控界面",则读入以前登陆的"用户名"
if (bEntryAgain || bAfxGotoMonitor)
{
CRegister *pRegister = new CRegister("Sys\\Manager.Sys");
::_fstrcpy(AfxGetSystemUserName() , pRegister->GetProfileString("Priviledge","User","Super"));
DELETE(pRegister);
PASSWORD *pPassword = ::GetPassword(AfxGetSystemUserName());
::_fstrcpy(AfxGetSystemUserName(),pPassword->strUser);
::_fstrcpy(AfxGetSystemPassword(),pPassword->strPassword);
::AfxSetSystemManager((BOOL)pPassword->wPriviledge);
}
//即不是函数"重入",与不是直接进入"监控界面",则需要显示"密码框"
else if (!ShowAdvertistment(0))
{
//若在"Config.Sys"文件中的Switch=On,则显示"现在可安全关闭计算机了"的文字
if (::AfxGetSystemSwitch())
{
DELETE(pAfxWindow);
::CloseMouse();
::ClearViewPort();
::ChPrintf((GetMaxX()-3*strlen(pByte)*8)/2,GetMaxY()/2-30,RED,0,3,0,pByte);
//进入死循环,直至按下"CTRL+F1"键
while(!kbhit()||bioskey(0)!=0x5E00)
{
}
}
::CloseSystem();
return(0);
}
//初始化窗口
if (!::InitFrameWindow())
{
::CloseSystem();
::printf("\nCan't Build Frame!");
::exit(1);
}
//直接进入"监控程序","监控程序"是"某一应用系统"桌面的第一个"图标"
if(!bEntryAgain && bAfxGotoMonitor)
{
asm cli
::ClearKeyboard();//清键盘缓冲区
::AddKeyboard(VK_DOWN);//仿真按下了"DOWN"方向键
::AddKeyboard(VK_ENTER); //仿真按下了"ENTER"回车键
asm sti
}
//将窗口重新置成可显示
pAfxWindow->SetVisible(TRUE);
//显示主窗口
pAfxWindow->ShowWindow(0);
//进入主窗口消息循环
pAfxWindow->PurseMessage();
//显示"现在可关闭计算机了"
if (!::GetAgain() && ::AfxGetSystemSwitch())
{
if (pAfxWindow != NULL)
{
DELETE(pAfxWindow);
}
::CloseMouse();
::ClearViewPort();
::ChPrintf((GetMaxX()-3*strlen(pByte)*8)/2,GetMaxY()/2-30,RED,0,3,0,pByte);
//进入死循环,直至按下"CTRL+F1"键
while (!kbhit() || bioskey(0) != 0x5E00)
{
}
}
#ifdef WINSAIL_NETCARD_USER
::RemoteContorlClient(2);
#endif
//关闭WinSail系统内核
::CloseSystem();
return(1);
}
//log2
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -