• Willkommen im Geoclub - dem größten deutschsprachigen Geocaching-Forum. Registriere dich kostenlos, um alle Inhalte zu sehen und neue Beiträge zu erstellen.

Programm von Cachewolf starten

Hi,
habe ein kleines Zusatzprogramm für Cachewolf programmiert (Ist nun eine ausführbare Datei)!

Ich möchte nun das Programm von Cachewolf aus starten!

Leider kenne ich mich mit Java nicht genug aus!

Den neuen Menüpunkt habe ich integriert,
der im Cachewolf nun erscheint und angeklickt werden kann!
Es wird dann folgendes gestartet (in MainMenu.java):

if(mev.selectedItem == exportMeinProgramm){
*Hier sollte denke ich der Quelltext stehen der den Start verursacht*
}


Meine Frage:
Was muss ich nun dort hineinschreiben um ein externes ausführbares Programm (unter Windows) zu starten!

Teilweise wird das anscheinend über CWWrapper.exec gemacht, bekomme es aber nicht hin!

Nochmal kurz und knapp:
Wie starte ich (beim bauen einer eigenen Cachewolfversion) über Cachewolf ein externes Programm?

Danke schon mal im voraus!
 
OP
M

Meister Quitte

Geocacher
Ja,
hab ich auch schon versucht!

ewe.sys.Process p = Vm.exec( *Command* );
p.waitFor();

aber was kommt hier als *Command* rein?

"datei.exe" scheint nicht zu funktionieren!
 
OP
M

Meister Quitte

Geocacher
Mit
CWWrapper.exec("datei.exe", "übergabe");
Kann ich das Programm auch starten,
aber es startet im Hintergrund!

Es wird normalerweise im CMD-Commandofeld geöffnet und gibt Anweisung aus.

Dies geschieht hier leider nicht :-(
 
OP
M

Meister Quitte

Geocacher
CWWrapper.exec("datei.exe", "übergabe");

Das startet das cmd-Programm nach dem compilieren in einem extra fenster!

Nur vorhher beim starten per runwolf.bat wird es im hintergrund ausgeführt (auch nicht im offenen cmd fenster, sondern wirklich im hintergrund)!

war also doch einfacher als ich dachte!
 

Tuppersucher

Geocacher
Hallo Meister Quitte, Dein Vorschlag interessiert mich sehr.

Mit Deinem zusätzlichen Feld könnte ich endlich komfortabel die Tastatur aufrufen, da CW bei meinem PDA den Button für den Tastaturaufruf überdeckt.

Wär das denkbar? Rechts neben dem Radarbutton? Frei belegbar? :roll:

Danke
Tuppersucher
 
OP
M

Meister Quitte

Geocacher
Ne,
der Button ist leider nicht frei belegbar,
sondern von mir fest belegt!

Sobald Cachewolf einmal compiliert ist, ann das programm nicht mehr geändert werden!

Ich poste das hier bestimmt wenn ich es fertig habe!
 

arbor95

Geoguru
wenn er dein Programm nicht nutzt und seins so nennt wie du deins , dann ist etwas für ihn erreicht.
 

Wutschkow

Geomaster
araber95 schrieb:
wenn er dein Programm nicht nutzt und seins so nennt wie du deins , dann ist etwas für ihn erreicht.
Aber nur, solange es um einen simplen Programmaufruf ohne Argumente geht. Und der Pfad muss auch noch übereinstimmen usw.

Nur mal als Anregung: Anstatt den Programmaufruf fest in CW zu hinterlegen, wäre es eine universellere Lösung, ihn in eine Textdatei command.txt im CW-Verzeichnis zu schreiben. In CW liest man dann den Inhalt dieser Textdatei ein und füttert ihn an CWWrapper. So könnte jeder Benutzer - der es braucht - ein eigenes Programm einbinden, einfach indem er in command.txt den entsprechenden Aufruf reinschreibt.
Perfekt wäre es, wenn die Schaltfläche dann überhaupt nur angezeigt wird, wenn eine solche Datei im CW-Verzeichnis vorhanden ist. Ansonsten bleibt sie einfach ausgeblendet und irritiert den Durchschnittsnutzer so nicht weiter.

Ich hoffe, ich habe es einigermaßen verständlich rübergebracht. :smile:
 

arbor95

Geoguru
Meister Quitte schrieb:
Ne,
der Button ist leider nicht frei belegbar,
sondern von mir fest belegt!

Sobald Cachewolf einmal compiliert ist, ann das programm nicht mehr geändert werden!

Ich poste das hier bestimmt wenn ich es fertig habe!

Hallo Meister,
wie sieht das mit dem posten aus ?
Hast du schon Terminvorstellungen?
mfg
araber95
 
OP
M

Meister Quitte

Geocacher
Das Ergebnis hat mir selber nicht gefallen!

Das Programm braucht keinen eigenen Button,
sondern steht nun im Anwenden-menü!


Reduziert sich also auf eine Änderung der MainMenu.java mit:
Code:
...
	private MenuItem exportOZI, exportKML, exportTPL, exportExplorist, meinProg;
...
	MenuItem[] exitems = new MenuItem[14];
...
	exitems[0] = meinProg= new MenuItem(MyLocale.getMsg(99,"to meinProg"));
...
			if(mev.selectedItem == meinProg){
				try {
					CWWrapper.exec("meinProg.exe", "start");
				} catch (IOException ex) {
				}
			}
...

Hier nochmal ein Danke für die Hilfe!
 

Anhänge

  • MainMenu.zip
    7,7 KB · Aufrufe: 2
Oben