|
Q-Run |
|
|
Dokumentacja techniczna do programu |
Program Q-Run
służy do uruchamiania aplikacji napisanych w Javie.
W oparciu o plik konfiguracyjny wyświetla
okno z tekstem i/lub grafiką, uruchamia aplikację i - gdy aplikacja
przekaże odpowiedni komunikat - kończy
swoje działanie.
Do konfigurowania programu Q-Run
służy plik qrun.ini,
który musi znajdować się w tym samym katalogu co qrun.exe.
Struktura pliku jest następująca:
[sekcja1] parametr1=wartosc1 ... parametrN=wartoscN [sekcja2] ...
Opis dostępnych sekcji i parametrów każdej z nich zawiera poniższa tabelka:
| sekcja | parametr | znaczenie | typ | wartość domyślna |
|---|---|---|---|---|
| run | Path | ścieżka do katalogu z uruchamianym programem | string | |
| Cmd | nazwa uruchamianego pliku (opcjonalnie z parametrami) | string | ||
| window | Visible | czy okno startera jest widoczne | bool | 1 |
| Title | tekst w pasku tytułowym | string | ||
| ShowTitle | czy pasek tytułowy ma być widoczny | bool | 1 | |
| Width | szerokość okna w pikselach | int | szerokość obrazka | |
| Height | wysokość okna w pikselach | int | wysokość obrazka | |
| image | File | ścieżka do pliku z grafiką; plik musi być w formacie BMP uwaga - najlepiej, jeśli obrazek jest w 256 kolorach - wówczas zajmuje mniej oraz dobrze wyświetla się przy każdych ustawieniach ekranu użytkownika | string | |
| Stretch | czy grafika ma być rozciągana do rozmiaru okna | bool | 0 | |
| text | Text | tekst wyświetlany w oknie startera | string | |
| FontSize | rozmiar fontu | int | 10 | |
| FontName | nazwa fontu | string | Times New Roman | |
| misc | Delay | czas w 1/1000s, przez jaki okno startera będzie wyświetlane, zanim nastąpi uruchomienie programu; przydatne do testowania | int | 0 |
Opis typów:
\n - znak końca wiersza, \\ - backslash
1 - prawda, 0 - fałsz
W przykładach zostały wykorzystane następujące grafiki: bgr1.bmp i bgr4.bmp.
Komunikacja między starterem a aplikacją odbywa się poprzez standardowe wejście i wyjście. W chwili obecnej jest tylko jeden rodzaj komunikatu - gdy aplikacja chce poinformować starter, że może już zakończyć działanie, musi na standardowe wyjście wpisać dowolny string.
Aby można było odpalać istniejącą już aplikację starterem Q-Run
,
trzeba w plikach Main.java i Start.java
dokonać poprawek analogicznie do poniższego przykładu.
| Main.java - przed zmianami |
...
public static void main(String args[]) throws Throwable
{
String ps = "".intern();
if (args.length>0)
{
ps = args[0];
qline.io.File f = new qline.io.File(ps);
f.mkdirs();
}
if (logToFile)
{
PrintStream out = new PrintStream(
new FileOutputStream(ps+"out.txt"));
System.setOut(out);
System.setErr(out);
}
try
{
new Start(ps);
}
...
|
| Main.java - po zmianach |
...
public static void main(String args[]) throws Throwable
{
String ps = "".intern();
if (args.length>0)
{
ps = args[0];
qline.io.File f = new qline.io.File(ps);
f.mkdirs();
}
PrintStream oldout = System.out;
if (logToFile)
{
PrintStream out = new PrintStream(
new FileOutputStream(ps+"out.txt"));
System.setOut(out);
System.setErr(out);
}
try
{
new Start(ps, oldout);
}
...
|
| Start.java - przed zmianami |
...
public Start(String localPath)
{
app = new Application(localPath);
registerUpdaters ();
qline.qlicense.LicenseWindow.licenseon = false;
app.readParams();
app.getConfigHolder().getBaseTableHolder().writeSepStructFile();
registerBaseNode() ;
app.initParamsEngine();
...
|
| Start.java - po zmianach |
...
public Start(String localPath)
{
this(localPath, null);
}
public Start(String localPath, java.io.PrintStream qrunout)
{
app = new Application(localPath);
registerUpdaters ();
qline.qlicense.LicenseWindow.licenseon = false;
if (qrunout != null)
qrunout.print('s');
app.readParams();
app.getConfigHolder().getBaseTableHolder().writeSepStructFile();
registerBaseNode() ;
app.initParamsEngine();
...
|