paketit:diet32
Erot
Tämä näyttää erot valitun ja nykyisen version kesken tästä sivusta.
Seuraava revisio | Edellinen revisio | ||
paketit:diet32 [2006/03/29 12:00] – external edit 127.0.0.1 | paketit:diet32 [2014/11/20 15:01] (nykyinen) – ulkoinen muokkaus 127.0.0.1 | ||
---|---|---|---|
Rivi 1: | Rivi 1: | ||
- | ====== Aivo Diet32 | + | ====== |
+ | |||
+ | |||
+ | |||
+ | AivoDiet on yksinkertainen ohjelma, jolla luodaan ja seurataan ruokavaliodieettejä | ||
+ | |||
+ | |||
+ | Uusin testattu versio 2.0.2.0 | ||
+ | |||
+ | ===== AivoDiet 2.x ===== | ||
+ | |||
+ | Ohjelman siirryttyä versioon 2.x se alkoi tukea myös SQL Serveriä tietokantansa säilytyspaikaksi. Tämä helpottaa huomattavasti ohjelman paketointia. | ||
+ | |||
+ | ==== Ohjelma ==== | ||
+ | |||
+ | Paketoitava ohjelma sisältää hakemistossa // | ||
+ | |||
+ | * AivoDiet.exe - ajettava ohjelma | ||
+ | * AivoDiet.pdf - pelkkä tervetuloa viesti | ||
+ | * strings.txt | ||
+ | |||
+ | Tee näistä [[http:// | ||
+ | |||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ===== Vanhempi versio | ||
+ | ==== Ohjelma | ||
- | Aivo Diet32 on yksinkertainen ohjelma, jolla luodaan ja seurataan ruokavaliodieettejä. | ||
- | ===== Ohjelma ===== | ||
Ohjelma koostuu kolmesta osasta: | Ohjelma koostuu kolmesta osasta: | ||
+ | |||
* diet32.exe - // | * diet32.exe - // | ||
+ | |||
* aivo.ini - // | * aivo.ini - // | ||
+ | |||
* diet32.mdb - Access tietokanta, sijainti määritelty ODBC:ssä | * diet32.mdb - Access tietokanta, sijainti määritelty ODBC:ssä | ||
+ | |||
+ | |||
Diet32.exe on varsinainen ohjelma, jolla manipuloidaan tietokantaa. Aivo.ini sisältää tietokantaan kirjautumisen kredentiaalit. Tietokantaan tallennetaan kaikki käyttäjän tekemät ruokavaliot yms. | Diet32.exe on varsinainen ohjelma, jolla manipuloidaan tietokantaa. Aivo.ini sisältää tietokantaan kirjautumisen kredentiaalit. Tietokantaan tallennetaan kaikki käyttäjän tekemät ruokavaliot yms. | ||
+ | |||
+ | |||
Diet32:n oma asennusohjelma asentaa tietokannan lokaalisti koneelle, jolloin kaikki käyttäjät käyttävät samaa tietokantaa (samalla koneella). Koska Diet32 haluttiin asentaa mikroluokkaan ja sitä tulisi käyttämään useampi käyttäjä samalta koneelta, pitää jokaisella käyttäjällä olla oma tietokanta käytössä. Lisäksi haluttiin, että oma tietokanta säilyy vaikka vaihtaa toiselle mikroluokan koneelle. Ohjelmaan tulee myös säännöllisesti, | Diet32:n oma asennusohjelma asentaa tietokannan lokaalisti koneelle, jolloin kaikki käyttäjät käyttävät samaa tietokantaa (samalla koneella). Koska Diet32 haluttiin asentaa mikroluokkaan ja sitä tulisi käyttämään useampi käyttäjä samalta koneelta, pitää jokaisella käyttäjällä olla oma tietokanta käytössä. Lisäksi haluttiin, että oma tietokanta säilyy vaikka vaihtaa toiselle mikroluokan koneelle. Ohjelmaan tulee myös säännöllisesti, | ||
- | ===== Suunnitelma ===== | + | |
+ | |||
+ | ==== Suunnitelma ==== | ||
+ | |||
Päätimme laittaa Diet32:n verkkoasennukseksi siten, että ajettava // | Päätimme laittaa Diet32:n verkkoasennukseksi siten, että ajettava // | ||
- | ===== Frontend ===== | + | |
+ | |||
+ | ==== Frontend ==== | ||
+ | |||
{{paketit: | {{paketit: | ||
+ | |||
+ | |||
Frontend tarkistaa käyttäjän nimen, etsii sillä nimellä käyttäjän verkkokotihakemiston ja tarkastaa onko siellä Diet32-tietokantaa. Jos on, niin tarkastetaan että tietokanta on ajantasalla. | Frontend tarkistaa käyttäjän nimen, etsii sillä nimellä käyttäjän verkkokotihakemiston ja tarkastaa onko siellä Diet32-tietokantaa. Jos on, niin tarkastetaan että tietokanta on ajantasalla. | ||
+ | |||
+ | |||
Tietokanta kopioidaan verkossa sijaitsevasta master-tietokannasta. Kun se kopioidaan, frontend kirjoittaa käyttäjän kotihakemistoon master-tietokannan //Last Modified// | Tietokanta kopioidaan verkossa sijaitsevasta master-tietokannasta. Kun se kopioidaan, frontend kirjoittaa käyttäjän kotihakemistoon master-tietokannan //Last Modified// | ||
+ | |||
+ | |||
Käynnistettäessä ohjelmaa, kirjoitetaan ODBC-asetukset kuntoon ja sitten ajetaan verkosta // | Käynnistettäessä ohjelmaa, kirjoitetaan ODBC-asetukset kuntoon ja sitten ajetaan verkosta // | ||
+ | |||
<code c++> | <code c++> | ||
+ | |||
HINSTANCE rc = AfxGetResourceHandle(); | HINSTANCE rc = AfxGetResourceHandle(); | ||
+ | |||
char buffer[1024]; | char buffer[1024]; | ||
+ | |||
+ | |||
+ | |||
// update ODBC data source | // update ODBC data source | ||
+ | |||
+ | |||
sprintf(buffer, | sprintf(buffer, | ||
+ | |||
" | " | ||
+ | |||
" | " | ||
+ | |||
" | " | ||
+ | |||
dbpath.c_str()); | dbpath.c_str()); | ||
+ | |||
// format requires terminators instead of newlines | // format requires terminators instead of newlines | ||
+ | |||
int i,s; | int i,s; | ||
+ | |||
s = strlen(buffer); | s = strlen(buffer); | ||
+ | |||
for(i=0; | for(i=0; | ||
+ | |||
if(buffer[i] == ' | if(buffer[i] == ' | ||
+ | |||
buffer[i] = ' | buffer[i] = ' | ||
+ | |||
} | } | ||
+ | |||
+ | |||
if(SQLConfigDataSource(NULL, | if(SQLConfigDataSource(NULL, | ||
+ | |||
" | " | ||
+ | |||
buffer) == FALSE) { | buffer) == FALSE) { | ||
+ | |||
LoadString(rc, | LoadString(rc, | ||
+ | |||
MessageBox(buffer, | MessageBox(buffer, | ||
+ | |||
} | } | ||
+ | |||
</ | </ | ||
+ | |||
+ | |||
Asennuspaketista tuleva // | Asennuspaketista tuleva // | ||
- | ===== Login-ruutu ===== | + | |
+ | |||
+ | ==== Login-ruutu ==== | ||
+ | |||
Vaikka Diet32-tietokantaan kirjautumiseen tarvittava tieto löytyy // | Vaikka Diet32-tietokantaan kirjautumiseen tarvittava tieto löytyy // | ||
+ | |||
+ | |||
{{paketit: | {{paketit: | ||
+ | |||
+ | |||
<code c++> | <code c++> | ||
+ | |||
HWND AivoLogin = NULL; | HWND AivoLogin = NULL; | ||
+ | |||
HWND AivoLoginPanel = NULL; | HWND AivoLoginPanel = NULL; | ||
+ | |||
HWND AivoLoginOK = NULL; | HWND AivoLoginOK = NULL; | ||
+ | |||
int i = 0; | int i = 0; | ||
+ | |||
while(i< | while(i< | ||
+ | |||
if(AivoLogin == NULL) | if(AivoLogin == NULL) | ||
+ | |||
AivoLogin = FindWindowEx(NULL, | AivoLogin = FindWindowEx(NULL, | ||
+ | |||
if(AivoLoginPanel == NULL && AivoLogin != NULL) | if(AivoLoginPanel == NULL && AivoLogin != NULL) | ||
+ | |||
AivoLoginPanel = FindWindowEx(AivoLogin, | AivoLoginPanel = FindWindowEx(AivoLogin, | ||
+ | |||
if(AivoLoginOK == NULL && AivoLoginPanel != NULL) | if(AivoLoginOK == NULL && AivoLoginPanel != NULL) | ||
+ | |||
AivoLoginOK = FindWindowEx(AivoLoginPanel, | AivoLoginOK = FindWindowEx(AivoLoginPanel, | ||
+ | |||
if(AivoLoginOK != NULL) { | if(AivoLoginOK != NULL) { | ||
+ | |||
if(:: | if(:: | ||
+ | |||
:: | :: | ||
+ | |||
break; | break; | ||
+ | |||
} | } | ||
+ | |||
} | } | ||
+ | |||
+ | |||
i++; | i++; | ||
+ | |||
Sleep(50); // 50ms sleep between tries | Sleep(50); // 50ms sleep between tries | ||
+ | |||
} | } | ||
+ | |||
</ | </ | ||
+ | |||
paketit/diet32.1143622839.txt.gz · Viimeksi muutettu: 2014/11/20 15:01 (ulkoinen muokkaus)