Null braucht Hilfe

mgeb

Grünschnabel
Hallo Leute,

leider habe ich von Programmierung überhaupt keine Ahnung, was mich aber nicht davon abhält, folgendes Problem zu haben:

Es gibt eine Open-Source Software namens "NT-Syslog" (Download des Programms und des Source-Codes hier).

Die Software speichert einige Einstellungen in der Registry, unter anderem auch einen Wert unter dem Regkey "LastRun". Das Programm müßte so umgebaut werden, daß dieser Wert künftig nicht mehr in die Registry, sondern in eine Ini-Datei im Programmordner geschrieben wird.

Ich habe die Sources schon mal durchgeschaut und in der eventlog.c die folgende Stelle gefunden:

Code:
/*-------------------------[ eventlog_read_lastrun ]---------------------------
 *  Reads last run times
 *
 *	Returns:
 *		success		(0)
 *		error		(-1)	
 *----------------------------------------------------------------------------*/
static int eventlog_read_lastrun(uint32 *lastrun)
{
    char        buffer[REG_BUFFER_LEN];
    HKEY        hReg;
	int32		size = sizeof(*lastrun);
    int32       rc, rv;

	if (lastrun == NULL)
		return(-1);

    _snprintf0(buffer, REG_BUFFER_LEN, "SOFTWARE\\%s\\Syslog", DEV_NAME);
    rc = RegOpenKeyEx(HKEY_LOCAL_MACHINE, buffer, 0, KEY_READ, &hReg);
    if (rc != ERROR_SUCCESS)
            return(-1);

    rv  = RegQueryValueEx(hReg, LAST_RUN_REG, NULL, NULL, (unsigned char*)lastrun, &size);
    RegCloseKey(hReg);

    if ( (rv != ERROR_SUCCESS) || (*lastrun <0) )
	{
		*lastrun = 0;
	}	

	return(0);
}


/*--------------------------[ eventlog_write_lastrun ]-----------------------
 *  Writes last run time
 *
 *	Returns:
 *		success		(0)
 *		error		(-1)	
 *----------------------------------------------------------------------------*/
static int eventlog_write_lastrun(uint32 *lastrun)
{
    char        buffer[REG_BUFFER_LEN];
    HKEY        hReg;
	int32		size = sizeof(*lastrun);
    int32       rc, rv;

	if (lastrun == NULL)
		return(-1);

    _snprintf0(buffer, REG_BUFFER_LEN, "SOFTWARE\\%s\\Syslog", DEV_NAME);
    rc = RegOpenKeyEx(HKEY_LOCAL_MACHINE, buffer, 0, KEY_SET_VALUE, &hReg);
    if (rc != ERROR_SUCCESS)
            return(-1);

    rv  = RegSetValueEx(hReg, LAST_RUN_REG, 0, REG_DWORD, (unsigned char*)lastrun, size);
    RegCloseKey(hReg);

    if (rv != ERROR_SUCCESS)
		ntsl_die(NTSL_ERROR_TIME_DATA_WRITE, LAST_RUN_REG);

	return(0);
}

Ich nehme an, daß das der Code ist, der umgeschrieben werden müßte.

Ich weiß ja nicht, wie aufwendig das ist aber wenn es kein zu großer act ist, würde das einer der hier anwesenden Koryphäen tun? :)

Zum Dank könnte ich ja demjenigen z. B. seine Ama*on-Wunschliste verkürzen...

Markus
 
Zurück