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

📄 sail2000.bak

📁 winsail v2.0是用于DOS下的图形界面空间系统
💻 BAK
📖 第 1 页 / 共 2 页
字号:
    //往桌面加入一个图标,图标文件是"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 + -