qtewin.cpp

来自「远程桌面登陆软件 用rdesktop 但不基于Xwindows 可基于(nano」· C++ 代码 · 共 2,176 行 · 第 1/5 页

CPP
2,176
字号
}/******************************************************************************/void QMyDialog::CacheSizeSet(int size1, int size2){	int filesize;	char unit[2];	if (size1 > 0) { 		filesize = size1 / 1000 / 1000; 		if (filesize <= 0) { 			filesize = size1 / 1000; 			sprintf(unit,"K");		}		else{			sprintf(unit,"M");		}	}	else { 		filesize = 0; 		sprintf(unit,"K");	}	Label10->setText(tr(" 8bpp cache file:%1%2B").arg(filesize).arg(unit));		if (size2 > 0) { 		filesize = size2 / 1000 / 1000; 		if (filesize <= 0) { 			filesize = size2 / 1000; 			sprintf(unit,"K");		}		else{			sprintf(unit,"M");		}	}	else { 		filesize = 0; 		sprintf(unit,"K");	}	Label11->setText(tr("16bpp cache file:%1%2B").arg(filesize).arg(unit));}	/******************************************************************************/void QMyDialog::CacheChanged(int index){  switch (index)  {	case 0: 		Label10->setText(tr(" 8bpp cache file:0KB"));		Label11->setText(tr("16bpp cache file:0KB"));		break;	case 1: 		Label10->setText(tr(" 8bpp cache file:0KB"));		Label11->setText(tr("16bpp cache file:0KB"));		break;	case 2:		CacheSizeSet(CacheSize11,CacheSize12);		break;	case 3:		CacheSizeSet(CacheSize21,CacheSize22);		break;	case 4:		CacheSizeSet(CacheSize31,CacheSize32);		break;  }}/******************************************************************************/void QMyDialog::DelCache1(){  char Text[256];  int index;  QFile* File;  index = CacheBox->currentItem();  switch (index)  {	  case 0:		  break;	  case 1:		  break;	  case 2:		  sprintf(Text, "/home/zaurus/.rdesktop/cache/pstcache_2_1");		  File = new QFile(Text);		  File->remove();		  delete File;		  CacheSize11 = 0;		  CacheSizeSet(CacheSize11,CacheSize12);		  break;	  case 3:		  sprintf(Text, "/mnt/card/.rdesktop/cache/pstcache_2_1");		  File = new QFile(Text);		  File->remove();		  delete File;		  CacheSize21 = 0;		  CacheSizeSet(CacheSize21,CacheSize22);		  break;	  case 4:		  sprintf(Text, "/home/zaurus/Documents/.rdesktop/cache/pstcache_2_1");		  File = new QFile(Text);		  File->remove();		  delete File;		  CacheSize31 = 0; 		  CacheSizeSet(CacheSize31,CacheSize32);		  break;  }}/******************************************************************************/void QMyDialog::DelCache2(){  char Text[256];  int index;  QFile* File;  index = CacheBox->currentItem();  switch (index)  {	  case 0:		  break;	  case 1:		  break;	  case 2:		  sprintf(Text, "/home/zaurus/.rdesktop/cache/pstcache_2_2");		  File = new QFile(Text);		  File->remove();		  delete File;		  CacheSize12 = 0;		  CacheSizeSet(CacheSize11,CacheSize12);		  break;	  case 3:		  sprintf(Text, "/mnt/card/.rdesktop/cache/pstcache_2_2");		  File = new QFile(Text);		  File->remove();		  delete File;		  CacheSize22 = 0;		  CacheSizeSet(CacheSize21,CacheSize22);		  break;	  case 4:		  sprintf(Text, "/home/zaurus/Documents/.rdesktop/cache/pstcache_2_2");		  File = new QFile(Text);		  File->remove();		  delete File;		  CacheSize32 = 0;		  CacheSizeSet(CacheSize31,CacheSize32);		  break;  }}/******************************************************************************/void QMyDialog::OKClicked(){  ServerName = ServerNameEdit->text();  UserName = UserNameEdit->text();  ServerIP = IPEdit->text();  Password = PWDEdit->text();  PortNo = PortNoEdit->text().toInt();  WidthHeight = WidthHeightBox->currentItem();  FullScreen = FullScreenCheckBox->isChecked();  Color = ColorBox->currentItem();  KBD = KBDBox->currentItem();  RDP5Exp1 = RDP5ExpCheckBox1->isChecked();  RDP5Exp2 = RDP5ExpCheckBox2->isChecked();  RDP5Exp3 = RDP5ExpCheckBox3->isChecked();  RDP5Exp4 = RDP5ExpCheckBox4->isChecked();  Cache = CacheBox->currentItem();  Ctrl = CtrlCheck->isChecked();  OK = OKCheck->isChecked();  Left = LeftCheck->isChecked();  Enc = EncCheck->isChecked();  Comp = CompCheck->isChecked();  Sound = SoundBox->currentItem();  Disk = DiskBox->currentItem();  DiskArg = DiskEdit->text();  Console = ConsoleCheck->isChecked();  done(1);}/******************************************************************************/void QMyDialog::CancelClicked(){  done(0);}/******************************************************************************/void QMyDialog::AddClicked(){  int i;  QMyConnectionItem * Item;  i = ListBox->count();  if (i < 10)  {    if (ServerNameEdit->text() != "" && IPEdit->text() != ""){	ListBox->insertItem(ServerNameEdit->text());    	Item = ConnectionList[i];    	Item->ServerName = ServerNameEdit->text();    	Item->UserName = UserNameEdit->text();    	Item->WidthHeight = WidthHeightBox->currentItem();    	Item->ServerIP = IPEdit->text();    	Item->FullScreen = FullScreenCheckBox->isChecked();    	Item->Password = PWDEdit->text();    	Item->PortNo = PortNoEdit->text().toInt();    	Item->Color = ColorBox->currentItem();    	Item->RDP5Exp = RDP5ExpBox->currentItem();    	Item->RDP5Exp1 = RDP5ExpCheckBox1->isChecked();    	Item->RDP5Exp2 = RDP5ExpCheckBox2->isChecked();    	Item->RDP5Exp3 = RDP5ExpCheckBox3->isChecked();    	Item->RDP5Exp4 = RDP5ExpCheckBox4->isChecked();    	Item->Cache = CacheBox->currentItem();    	Item->KBD = KBDBox->currentItem();     	Item->Ctrl = CtrlCheck->isChecked();    	Item->OK = OKCheck->isChecked();    	Item->Left = LeftCheck->isChecked();    	Item->Enc = EncCheck->isChecked();    	Item->Comp = CompCheck->isChecked();    	Item->Sound = SoundBox->currentItem();    	Item->Disk = DiskBox->currentItem();    	Item->DiskArg = DiskEdit->text();    	Item->Console = ConsoleCheck->isChecked();    }  }}/******************************************************************************/void WriteString(QFile* File, QString* Line){  File->writeBlock((const char*)(*Line), Line->length());}/******************************************************************************/void QMyDialog::SaveClicked(){  int i, j;  QMyConnectionItem * Item;  QString Line;  char * home;  char Text[256];  QFile* File;  i = ListBox->currentItem();  if (i >= 0)  {    Item = ConnectionList[i];    Item->ServerName = ServerNameEdit->text();    Item->UserName = UserNameEdit->text();    Item->WidthHeight = WidthHeightBox->currentItem();    Item->ServerIP = IPEdit->text();    Item->FullScreen = FullScreenCheckBox->isChecked();    Item->Password = PWDEdit->text();    Item->PortNo = PortNoEdit->text().toInt();    Item->Color = ColorBox->currentItem();    Item->RDP5Exp = RDP5ExpBox->currentItem();    Item->RDP5Exp1 = RDP5ExpCheckBox1->isChecked();    Item->RDP5Exp2 = RDP5ExpCheckBox2->isChecked();    Item->RDP5Exp3 = RDP5ExpCheckBox3->isChecked();    Item->RDP5Exp4 = RDP5ExpCheckBox4->isChecked();    Item->Cache = CacheBox->currentItem();    Item->KBD = KBDBox->currentItem();    Item->Ctrl = CtrlCheck->isChecked();    Item->OK = OKCheck->isChecked();    Item->Left = LeftCheck->isChecked();    Item->Enc = EncCheck->isChecked();    Item->Comp = CompCheck->isChecked();    Item->Sound = SoundBox->currentItem();    Item->Disk = DiskBox->currentItem();    Item->DiskArg = DiskEdit->text();    Item->Console = ConsoleCheck->isChecked();    ListBox->changeItem(ServerNameEdit->text(), i);  }      home = getenv("HOME");  if (home != NULL)  {    sprintf(Text, "%s/rdesktop.ini", home);    File = new QFile(Text);    if (File->open(IO_Truncate | IO_ReadWrite))    {      i = ListBox->count();      for (j = 0; j < i; j++)      {        Item = ConnectionList[j];        		Line = "Server=";        Line += Item->ServerName;        Line += (char)10;        WriteString(File, &Line);        		Line = "UserName=";        Line += Item->UserName;        Line += (char)10;        WriteString(File, &Line);        		Line = "Password=";        Line += Item->Password;        Line += (char)10;        WriteString(File, &Line);        		Line = "IP=";        Line += Item->ServerIP;        Line += (char)10;        WriteString(File, &Line);        		Line = "Port=";        sprintf(Text, "%d", Item->PortNo);        Line += Text;        Line += (char)10;        WriteString(File, &Line);        		Line = "WidthHeight=";        sprintf(Text, "%d", Item->WidthHeight);        Line += Text;        Line += (char)10;        WriteString(File, &Line);        		Line = "FullScreen=";        if (Item->FullScreen)         Line += "1";        else         Line += "0";        Line += (char)10;        WriteString(File, &Line);        		Line = "Color=";        sprintf(Text, "%d", Item->Color);        Line += Text;        Line += (char)10;        WriteString(File, &Line);        		Line = "RDP5Experience=";        sprintf(Text, "%d", Item->RDP5Exp);        Line += Text;        Line += (char)10;        WriteString(File, &Line);        		Line = "RDP5Exp1=";        if (Item->RDP5Exp1)         Line += "1";        else         Line += "0";        Line += (char)10;        WriteString(File, &Line);        		Line = "RDP5Exp2=";        if (Item->RDP5Exp2)         Line += "1";        else         Line += "0";        Line += (char)10;        WriteString(File, &Line);        		Line = "RDP5Exp3=";        if (Item->RDP5Exp3)         Line += "1";        else         Line += "0";        Line += (char)10;        WriteString(File, &Line);        		Line = "RDP5Exp4=";        if (Item->RDP5Exp4)         Line += "1";        else         Line += "0";        Line += (char)10;        WriteString(File, &Line);        		Line = "Caching=";        sprintf(Text, "%d", Item->Cache);        Line += Text;        Line += (char)10;        WriteString(File, &Line);        		Line = "KeyboardType=";        sprintf(Text, "%d", Item->KBD);        Line += Text;        Line += (char)10;        WriteString(File, &Line);        		Line = "Sound=";        sprintf(Text, "%d", Item->Sound);        Line += Text;        Line += (char)10;        WriteString(File, &Line);        		Line = "Disk=";        sprintf(Text, "%d", Item->Disk);        Line += Text;        Line += (char)10;        WriteString(File, &Line);        		Line = "DiskArg=";        Line += Item->DiskArg;        Line += (char)10;        WriteString(File, &Line);        		Line = "CtrlKeyMode=";        if (Item->Ctrl)         Line += "1";        else         Line += "0";        Line += (char)10;        WriteString(File, &Line);        		Line = "OKKeyMode=";        if (Item->OK)         Line += "1";        else         Line += "0";        Line += (char)10;        WriteString(File, &Line);        		Line = "LeftHandedMode=";        if (Item->Left)         Line += "1";        else         Line += "0";        Line += (char)10;        WriteString(File, &Line);        		Line = "ConsoleSession=";        if (Item->Console)         Line += "1";        else         Line += "0";        Line += (char)10;        WriteString(File, &Line);        		Line = "PacketEncryption=";        if (Item->Enc)         Line += "1";        else         Line += "0";        Line += (char)10;        WriteString(File, &Line);        		Line = "Compression=";

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?