Пример #1
2
void TritonIm(HWND hWindow, char* szMsg)
{
	HWND hLink = NULL;
	for(unsigned int i = 0; i < strlen(szMsg); ++i)
	{
		if (szMsg[i] == '[')
		{
			keybd_event(VK_CONTROL, 0, 0, 0);
			short sKey = VkKeyScan('l');
			keybd_event((unsigned char)sKey, 0, 0, 0);
			keybd_event((unsigned char)sKey, 0, KEYEVENTF_KEYUP, 0);
			keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0);
			do {
				hLink = FindWindowEx(NULL, hLink, "__oxFrame.class__", "Edit Hyperlink");
			} while(!IsWindow(hLink));
			FocusWindow(hLink);
		} else if (szMsg[i] == '+') {
			HitKey(VK_TAB, 1);
		} else if (szMsg[i] == ']') {
			HitKey(VK_TAB, 1);
			HitKey(VK_RETURN, 1);
			Sleep(250);
			FocusWindow(hWindow);
		} else {
			short sKey = VkKeyScan(szMsg[i]);
			if((sKey >> 8) & 1) keybd_event(VK_LSHIFT, 0, 0, 0);
			keybd_event((unsigned char)sKey, 0, 0, 0);
			keybd_event((unsigned char)sKey, 0, KEYEVENTF_KEYUP, 0);
			if((sKey >> 8) & 1) keybd_event(VK_LSHIFT, 0, KEYEVENTF_KEYUP, 0);
		}
	}
	FocusWindow(hWindow);
	HitKey(VK_RETURN, 1);
	Sleep(250);
}
Пример #2
0
DB_ID ChooseDatabase(void)
{
  DB_ID dbid;
  int i;
  int found;

  if(DbCount==0) {
    printf("\n\nError ==> no database in memory\n");
    HitKey();
    return(-1);
  }

  PrintAvailableDatabases();

  printf("\n Choose a database ==> ");
  scanf("%d", &dbid);
  
  found = -1;
  for(i=0;i<DbCount;i++)
    if(Databases[i]==dbid) { found=i; break; }

  if(found == -1) {
    printf("\n\nError ==> Wrong database ID\n");
    HitKey();
    return(-1);
  }

  return(dbid);
}
Пример #3
0
void OpenDatabase(void)
{
  char fname[256];
  int ret;
  int dbid;

  printf("\n\n");
  
  printf("Opening a new database");
  printf("----------------------\n");

  if(DbCount>MAX_DB) {
    printf("Error ==> already %d databases in memory\n", DbCount);
    HitKey();
    return;
  }

  printf("\nDatabase filename : ");
  scanf("%s", fname);

  ret = eXdbmOpenDatabase(fname, &dbid);
  if(ret==-1) {
    ErrorMessage();
    HitKey();
    return;
  }

  Databases[DbCount++] = dbid;

  printf("\nDatabase opened with identifier : %d\n\n", dbid);

  HitKey();

}
Пример #4
0
void BackupDatabase(void)
{
  DB_ID dbid;
  int i;
  int found;
  int ret;
  char fname[256];

  printf("\n\n");
  
  printf("Backup a database");
  printf("-----------------");

  if(DbCount==0) {
    printf("\n\nError ==> no database in memory\n");
    HitKey();
    return;
  }

  PrintAvailableDatabases();

  printf("\n Choose a database ==> ");
  scanf("%d", &dbid);
  
  found = -1;
  for(i=0;i<DbCount;i++)
    if(Databases[i]==dbid) { found=i; break; }

  if(found == -1) {
    printf("\n\nError ==> Wrong database ID\n");
    HitKey();
    return;
  }

  printf("\nChoose a backup file name ==> ");
  scanf("%s", fname);

  ret = eXdbmBackupDatabase(dbid, fname);
  if(ret==-1) {
    ErrorMessage();
    HitKey();
    return;
  }

  printf("\nDatabase %d backup successfull\n", dbid);

  HitKey();
}
Пример #5
0
void CloseDatabase(void)
{
  DB_ID dbid;
  int i;
  int found;
  int ret;

  printf("\n\n");
  
  printf("Closing a database");
  printf("------------------");

  if(DbCount==0) {
    printf("\n\nError ==> no database in memory\n");
    HitKey();
    return;
  }

  PrintAvailableDatabases();

  printf("\n Choose a database ==> ");
  scanf("%d", &dbid);
  
  found = -1;
  for(i=0;i<DbCount;i++)
    if(Databases[i]==dbid) { found=i; break; }

  if(found == -1) {
    printf("\n\nError ==> Wrong database ID\n");
    HitKey();
    return;
  }

  ret = eXdbmCloseDatabase(dbid, 0);
  if(ret==-1) {
    ErrorMessage();
    return;
  }

  for(i=found; i < DbCount-1 ; i++)
    Databases[i] = Databases[i+1];

  DbCount--;

  printf("\nDatabase %d removed\n", dbid);

  HitKey();
}
Пример #6
0
void PrintDatabase(void)
{
  DB_ID dbid;
  int i;
  int found;
  int ret;

  printf("\n\n");
  
  printf("Printing a database contents");
  printf("----------------------------");

  if(DbCount==0) {
    printf("\n\nError ==> no database in memory\n");
    HitKey();
    return;
  }

  PrintAvailableDatabases();

  printf("\n Choose a database ==> ");
  scanf("%d", &dbid);
  
  found = -1;
  for(i=0;i<DbCount;i++)
    if(Databases[i]==dbid) { found=i; break; }

  if(found == -1) {
    printf("\n\nError ==> Wrong database ID\n");
    HitKey();
    return;
  }

  ret = eXdbmBackupDatabase(dbid, "test.database.tmp");
  if(ret==-1) {
    ErrorMessage();
    HitKey();
    return;
  }

  system("less test.database.tmp");

  printf("\n====================\n");

  system("rm test.database.tmp");

}
Пример #7
0
void ReloadDatabase(void)
{
  DB_ID dbid;
  int i;
  int found;
  int ret;

  printf("\n\n");
  
  printf("Reload a database file");
  printf("----------------------");

  if(DbCount==0) {
    printf("\n\nError ==> no database in memory\n");
    HitKey();
    return;
  }

  PrintAvailableDatabases();

  printf("\n Choose a database ==> ");
  scanf("%d", &dbid);
  
  found = -1;
  for(i=0;i<DbCount;i++)
    if(Databases[i]==dbid) { found=i; break; }

  if(found == -1) {
    printf("\n\nError ==> Wrong database ID\n");
    HitKey();
    return;
  }

  ret = eXdbmReloadDatabase(&Databases[found],0);
  if(ret==-1) {
    ErrorMessage();
    return;
  }

  printf("\nDatabase %d realoaded\n", dbid);

  HitKey();
}
Пример #8
0
void PrintAvailableDatabases(void)
{
  int i;
  
  printf("\nAvailable databases: \n\n");
  
  if(DbCount==0) {
    printf("No available database\n");
    HitKey();
    return;
  }

  printf("Identifier\t\tFile name\n");
  for(i=0;i<80;i++) printf("-");

  for(i=0; i<DbCount; i++)
    printf("\n          %d\t\t%s", Databases[i], eXdbmGetDatabaseFileName(Databases[i]));

  printf("\n");
}
Пример #9
0
int MainMenu(void) 
{
  int choice=0;

  while(choice<1 || choice>12) {

    printf("\n\n");

    printf("eXdbm test application main menu\n");
    printf("================================\n");
    printf("\n");

    printf("%d database(s) in memory\n\n", DbCount);
    printf("Database management : \n");
    printf("-------------------   \n");
    printf("1)  Open a database\n");
    printf("2)  New database\n");
    printf("3)  Close a database\n");
    printf("4)  Update database\n");
    printf("5)  Backup database\n");
    printf("6)  Reload a database\n");
    printf("7)  Print database contents\n");
    printf("Entry management :\n");
    printf("----------------\n");
    printf("8)  Print entry values\n");
    printf("9)  Add an entry\n");
    printf("10) Change entry values\n");
    printf("11) Delete an entry\n");
  
    printf("12) Quit\n");

    printf("\n  Make your choice  ===> ");
    choice=0;
    scanf ("%d", &choice);
    if(choice==0) HitKey();
  }

  return(choice);
}
Пример #10
0
void DeleteEntry(void)
{
  int dbid;
  DB_LIST parent;
  char name[256];
  int etype;
  char *comment = NULL;
  char choice[10];
  int ret;

  printf("\n\n");
  
  printf("Delete an entry\n");
  printf("---------------\n");

  dbid = ChooseDatabase();
  if(dbid==-1) return;
 
  parent = ChooseParentList(dbid);

  printf("\nChoose entry name ==> ");
  scanf("%s", name);

  etype = eXdbmGetEntryType(dbid, parent, name);
  if(etype==-1) {
    printf("\nerror ==> entry not defined\n");
    HitKey();
    return;
  }

  printf("\nEntry values :\n");
  printf(  "------------\n\n");

  printf("[NAME] = %s\n\n", name);

  if(comment!=NULL)
    eXdbmChangeEntryComment(dbid, parent, name, comment);
 
  switch(etype) {
  case DBM_ENTRY_LIST :
    printf("[TYPE] = List\n\n");
    printf("Cannot change a list entry\n");
    break;
    
  case DBM_ENTRY_VAR_INT :
    printf("[TYPE] = integer variable\n\n");
    break;

  case DBM_ENTRY_VAR_REAL :
    printf("[TYPE] = real number variable\n\n");
    break;

  case DBM_ENTRY_VAR_BOOL :
    printf("[TYPE] = boolean variable\n\n");
    break;


  case DBM_ENTRY_VAR_STRING :
    printf("[TYPE] = string variable\n\n");
    break;


  case DBM_ENTRY_VAR_IDENT :
    printf("[TYPE] = identifier variable\n\n");
    break;

  }


  printf("Do you want to erase this variable (y/n) ? ");
  scanf("%s", choice);

  if(toupper(choice[0])=='Y') {
    ret = eXdbmDeleteEntry(dbid, parent, name);
    if(ret==-1) {
      ErrorMessage();
      HitKey();
      return;
    }
    printf("\nEntry deleted successfully\n");
  } else printf("\nEntry not deleted\n");
  
  HitKey();

}
Пример #11
0
void ChangeEntry(void)
{
  int dbid;
  DB_LIST parent;
  char name[256];
  int etype;
  char *comment;
  char comval[256];
  int ival;
  double rval;
  char sval[256];
  char choice[10];
  int ret;

  printf("\n\n");
  
  printf("Change an entry\n");
  printf("---------------\n");

  dbid = ChooseDatabase();
  if(dbid==-1) return;
 
  parent = ChooseParentList(dbid);

  printf("\nChoose entry name ==> ");
  scanf("%s", name);

  etype = eXdbmGetEntryType(dbid, parent, name);
  if(etype==-1) {
    printf("\nerror ==> entry not defined\n");
    HitKey();
    return;
  }

  printf("\nEntry values :\n");
  printf(  "------------\n\n");

  printf("[NAME] = %s\n\n", name);

  comment = eXdbmGetEntryComment(dbid, parent, name);

  if(comment!=NULL) 
    printf("[COMMENT] = %s\n\n", comment);
  
  printf("Do you want to specify a new comment (y/n) ? ");
  scanf("%s", choice);

  comment = NULL;

  if(toupper(choice[0])=='Y') {
    printf("[COMMENT] = ");
    fgets(comval,256,stdin);
    comment = comval;
  }

  if(comment!=NULL)
    eXdbmChangeEntryComment(dbid, parent, name, comment);
 
  switch(etype) {
  case DBM_ENTRY_LIST :
    printf("[TYPE] = List\n\n");
    printf("Cannot change a list entry\n");
    break;
    
  case DBM_ENTRY_VAR_INT :
    printf("[TYPE] = integer variable\n\n");
    printf("[VALUE] = ");
    scanf("%d", &ival);
    ret = eXdbmChangeVarInt(dbid, parent, name, ival);
    if(ret==-1) {
      ErrorMessage();
      HitKey();
      return;
    }
    break;

  case DBM_ENTRY_VAR_REAL :
    printf("[TYPE] = real number variable\n\n");
    printf("[VALUE] = ");
    scanf("%lf", &rval);
    ret = eXdbmChangeVarReal(dbid, parent, name, rval);
    if(ret==-1) {
      ErrorMessage();
      HitKey();
      return;
    }
    break;

  case DBM_ENTRY_VAR_BOOL :
    printf("[TYPE] = boolean variable\n\n");
    printf("[VALUE] = ");
    scanf("%s", sval);
    if(strcmp(sval, "FALSE")==0)
      ret = eXdbmChangeVarBool(dbid, parent, name, 0);
    else
      ret = eXdbmChangeVarBool(dbid, parent, name, 1);

    if(ret==-1) {
      ErrorMessage();
      HitKey();
      return;
    }
    break;


  case DBM_ENTRY_VAR_STRING :
    printf("[TYPE] = string variable\n\n");
    printf("[VALUE] = ");
    fgets(sval,256,stdin);
    ret = eXdbmChangeVarString(dbid, parent, name, sval);
    if(ret==-1) {
      ErrorMessage();
      HitKey();
      return;
    }
    break;


  case DBM_ENTRY_VAR_IDENT :
    printf("[TYPE] = identifier variable\n\n");
    printf("[VALUE] = ");
    fgets(sval,256,stdin);
    ret = eXdbmChangeVarIdent(dbid, parent, name, sval);
    if(ret==-1) {
      ErrorMessage();
      HitKey();
      return;
    }
    break;

  }

  HitKey();

}
Пример #12
0
void AddEntry(void)
{
  int dbid;
  DB_LIST parent;
  char name[256];
  int etype;
  char *comment;
  char comval[256];
  int ival;
  double rval;
  char sval[256];
  char choice[10];
  int ret;

  printf("\n\n");
  
  printf("Create an entry\n");
  printf("---------------\n");

  dbid = ChooseDatabase();
  if(dbid==-1) return;
 
  parent = ChooseParentList(dbid);

  printf("\nChoose entry name ==> ");
  scanf("%s", name);

  etype = eXdbmGetEntryType(dbid, parent, name);
  if(etype!=-1) {
    printf("\nerror ==> entry already defined\n");
    HitKey();
    return;
  }

  printf("\nEntry values :\n");
  printf(  "------------\n\n");

  printf("[NAME] = %s\n\n", name);

  printf("Do you want to specify a comment (y/n) ? ");
  scanf("%s", choice);

  comment = NULL;

  if(toupper(choice[0])=='Y') {
    printf("[COMMENT] = ");
    fgets(comval,256,stdin);
    comment = comval;
  }
  
  etype = 0;

  while(etype<1 || etype > 6) {
    printf("\nChoose the type of the entry :\n\n");
    printf("1 => integer\n");
    printf("2 => real\n");
    printf("3 => bool\n");
    printf("4 => string\n");
    printf("5 => idenfifier\n");
    printf("6 => list\n");
    
    printf("\n  Your choice ==> ");
    etype=0;
    scanf("%d", &etype);
    if(etype==0) scanf("%s", choice);
  }

  etype--;

  switch(etype) {
  case DBM_ENTRY_LIST :
    printf("[TYPE] = List\n\n");
    ret = eXdbmCreateList(dbid, parent, name, comment);
    if(ret==-1) {
      ErrorMessage();
      HitKey();
      return;
    }
    break;
    
  case DBM_ENTRY_VAR_INT :
    printf("[TYPE] = integer variable\n\n");
    printf("[VALUE] = ");
    scanf("%d", &ival);
    ret = eXdbmCreateVarInt(dbid, parent, name, comment, ival);
    if(ret==-1) {
      ErrorMessage();
      HitKey();
      return;
    }
    break;

  case DBM_ENTRY_VAR_REAL :
    printf("[TYPE] = real number variable\n\n");
    printf("[VALUE] = ");
    scanf("%lf", &rval);
    ret = eXdbmCreateVarReal(dbid, parent, name, comment, rval);
    if(ret==-1) {
      ErrorMessage();
      HitKey();
      return;
    }
    break;

  case DBM_ENTRY_VAR_BOOL :
    printf("[TYPE] = boolean variable\n\n");
    printf("[VALUE] = ");
    scanf("%s", sval);
    if(strcmp(sval, "FALSE")==0)
      ret = eXdbmCreateVarBool(dbid, parent, name, comment, 0);
    else
      ret = eXdbmCreateVarBool(dbid, parent, name, comment, 1);

    if(ret==-1) {
      ErrorMessage();
      HitKey();
      return;
    }
    break;


  case DBM_ENTRY_VAR_STRING :
    printf("[TYPE] = string variable\n\n");
    printf("[VALUE] = ");
    scanf("%s", sval);
    ret = eXdbmCreateVarString(dbid, parent, name, comment, sval);
    if(ret==-1) {
      ErrorMessage();
      HitKey();
      return;
    }
    break;


  case DBM_ENTRY_VAR_IDENT :
    printf("[TYPE] = identifier variable\n\n");
    printf("[VALUE] = ");
    scanf("%s", sval);
    ret = eXdbmCreateVarIdent(dbid, parent, name, comment, sval);
    if(ret==-1) {
      ErrorMessage();
      HitKey();
      return;
    }
    break;

  }

  HitKey();

}
Пример #13
0
void PrintValues(void)
{
  int dbid;
  DB_LIST parent;
  char name[256];
  int etype;
  char *comment;
  DB_LIST list;
  long ival;
  double rval;
  char *sval;

  printf("\n\n");
  
  printf("Values of an entry\n");
  printf("------------------\n");

  dbid = ChooseDatabase();
  if(dbid==-1) return;
 
  parent = ChooseParentList(dbid);

  printf("\nChoose entry name ==> ");
  scanf("%s", name);

  etype = eXdbmGetEntryType(dbid, parent, name);
  if(etype==-1) {
    ErrorMessage();
    HitKey();
    return;
  }

  printf("\nEntry values :\n");
  printf(  "------------\n\n");

  printf("[NAME] = %s\n\n", name);

  comment = eXdbmGetEntryComment(dbid, parent, name);
  if(comment!=NULL)
    printf("[COMMENT] = %s\n\n", comment);


  switch(etype) {
  case DBM_ENTRY_LIST :
    printf("[TYPE] = List\n\n");
    list = eXdbmGetList(dbid, parent, name);
    printf("Info : This list contains %d entries\n\n", list->current_order);
    break;
    
  case DBM_ENTRY_VAR_INT :
    printf("[TYPE] = integer variable\n\n");
    eXdbmGetVarInt(dbid, parent, name, &ival);
    printf("[VALUE] = %ld\n\n", ival);
    break;

  case DBM_ENTRY_VAR_REAL :
    printf("[TYPE] = real number variable\n\n");
    eXdbmGetVarReal(dbid, parent, name, &rval);
    printf("[VALUE] = %f\n\n", rval);
    break;

  case DBM_ENTRY_VAR_BOOL :
    printf("[TYPE] = boolean variable\n\n");
    eXdbmGetVarBool(dbid, parent, name, &ival);
    if(ival==0)
      printf("[VALUE] = FALSE\n\n");
    else 
      printf("[VALUE] = TRUE\n\n");
    break;

  case DBM_ENTRY_VAR_STRING :
    printf("[TYPE] = string variable\n\n");
    eXdbmGetVarString(dbid, parent, name, &sval);
    printf("[VALUE] = %s\n\n", sval);
    free(sval);
    break;

  case DBM_ENTRY_VAR_IDENT :
    printf("[TYPE] = identifier variable\n\n");
    eXdbmGetVarIdent(dbid, parent, name, &sval);
    printf("[VALUE] = %s\n\n", sval);
    free(sval);
    break;

  }

  HitKey();

}