[gelöst] externes Programm beenden

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

Benutzeravatar
sven-my
*****
Beiträge: 358
Registriert: Fr, 14.12.2007 19:56

[gelöst] externes Programm beenden

Beitrag von sven-my »

Hallo Experten,

gibt es ein Gegenstück zu

shell ("Programm.exe")

um dieses auch zu beenden ?


gruß
sven-my
Zuletzt geändert von sven-my am Sa, 27.06.2009 17:06, insgesamt 1-mal geändert.
win7 prof / AOO 4.1.2 & AOO 3.4.0 portable
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: externes Programm beenden

Beitrag von komma4 »

Da Du *.exe aufrufst - bist Du unter Windows unterwegs.

Das Gegenstück heisst bei Unix kill, ich weiss gerade nicht, ob WinXP das mitbringt, aber da gibt's bestimmt Möglichkeiten.


Auf beiden Plattformen hast Du das Problem, dass der shell Aufruf keine ProzessID zurück gibt. Du kannst also nicht gezielt diesen Prozess stoppen, sondern nur "ein Programm mit Namen..." (spielt bei Dir vielleicht keine Rolle).


Viel Spass beim killen
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Benutzeravatar
sven-my
*****
Beiträge: 358
Registriert: Fr, 14.12.2007 19:56

Re: externes Programm beenden

Beitrag von sven-my »

Hallo komma4,

kill würde mein Programm LÖSCHEN .

mit

kill (Pfad + Dateiname + Dateierweiterung)

lösche ich z.B. eine nicht benötigte temporäre Datei.

Ich suche es auch nicht für XP oder win98, sondern will die Anweisung innerhalb eines Makro nutzen, um mein Adress-Prg zu beenden, da es einen kleinen Bug enthält, und nur dann Daten an OpenOffice übergibt, wenn es nach OpenOffice gestartet wurde.

sorry, war meine Schuld --- ich sollte mich doch nicht zu kurz fassen.


gruß
sven-my
win7 prof / AOO 4.1.2 & AOO 3.4.0 portable
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: externes Programm beenden

Beitrag von komma4 »

Sven,

auch meine Antwort ist kurz ausgefallen: Du solltest nicht kill programm.exe codieren, sondern eher so etwas wie
shell( "kill programm.exe" ) .

Unter Unix würde das einen laufenden Prozess programm.exe beenden.

Die Anweisung ist also dem Kommandointerpreter zu übergeben - und der ist dann (unabhängig davon, dass aus Basic aufgerufen wird) von der Umgebung abhängig. Suche also (Tante Google) einen Prozessbeendigungsbefehl für Deine Zielumgebung, und rufe diesen über die Basic-Anweisung shell auf.

Besser?
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Benutzeravatar
sven-my
*****
Beiträge: 358
Registriert: Fr, 14.12.2007 19:56

Re: externes Programm beenden

Beitrag von sven-my »

Hallo Experten,

hoffentlich habe ich mit einer Reaktion nicht zu lange auf mich warten lassen, der (große) Rest des Makro hat mich doch mehr beschäftigt, als gedacht.

Zum oben beschriebenen Problem habe ich eine neue Frage :

eine Datei, die diese Aktion entweder per Doppelklick, bzw. mit Kontextmenue\öffnen, erledigt habe ich.
Wie kann ich die starten ??? Da keine *.exe klappt es mit "shell" nicht.

Lw:/ordner/datei.brs

Jetzt muß ich "nur" eine Möglichkeit haben das Öffnen innerhalb des Makro zu realisieren.


gruß
sven-my
win7 prof / AOO 4.1.2 & AOO 3.4.0 portable
Benutzeravatar
sven-my
*****
Beiträge: 358
Registriert: Fr, 14.12.2007 19:56

Re: externes Programm beenden

Beitrag von sven-my »

Hallo Experten,

die Batch-Datei habe ich mit viel Hilfe jetzt fertig, hat nur den Schönheitsfehler, daß dafür ein entsprechendes Programm auf dem Rechner sein muß --- funktioniert also auf dem Stick nicht.

Code: Alles auswählen

oSer = createUNOService("com.sun.star.system.SystemShellExecute")
	oSer.execute("E:\PCA25\PCAoff.brs",0,0)
Das ist aber zu verschmerzen.

Falls jemand noch eine andere Idee hat, bin ich für jeden Vorschlag dankbar.

Erstmal an alle Helfer herzlichen Dank.

gruß
sven-my
win7 prof / AOO 4.1.2 & AOO 3.4.0 portable
turtle47
*******
Beiträge: 1849
Registriert: Mi, 04.01.2006 20:10
Wohnort: Rheinbach

Re: externes Programm beenden

Beitrag von turtle47 »

Hi Sven-my,

erstelle Dir doch eine eigene Batchdatei mit folgendem Inhalt:

Code: Alles auswählen

@Echo Adressprogramm beenden
kill DeinProgramm
"DeinProgramm" aber ohne Sufix!!!

Diese Batch kannst Du dann auf Deinem Stick und/oder Desktop ablegen und entsprechend aufrufen.
Es ist auch egal ob das zu beendende Programm vom Stick oder Desktop gestartet wurde.

Der Befehl "kill" löscht das Programm nicht, im Gegensatz zum Basicbefehl, sondern beendet es einfach.

Code: Alles auswählen

Win98 > kill

Code: Alles auswählen

XP > tskill
Jürgen
Software hat keinen Verstand - benutze deinen eigenen...!

Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Benutzeravatar
sven-my
*****
Beiträge: 358
Registriert: Fr, 14.12.2007 19:56

Re: externes Programm beenden

Beitrag von sven-my »

hallo Jürgen,

ich habe jetzt in eine Datei Namens "PCAoff.bat" nacheinander geschrieben :

1.Versuch :
----------------------------
@Echo Adressprogramm beenden
kill pca20
----------------------------

2.Versuch : PCA20
3.Versuch : (PCA20)
4.Versuch : (pca20)
5.Versuch : "PCA20"
6.Versuch : "pca20"
7.Versuch : PCA20.exe
8.Versuch : pca20.exe

ergibt immer wieder die Fehlermeldung :

Befehl oder Dateiname nicht gefunden.

'kill' scheint es in win98 nicht zu geben, genauso wie es 'help' in win9x und ME nicht gibt.

gruß
sven-my
win7 prof / AOO 4.1.2 & AOO 3.4.0 portable
turtle47
*******
Beiträge: 1849
Registriert: Mi, 04.01.2006 20:10
Wohnort: Rheinbach

Re: externes Programm beenden

Beitrag von turtle47 »

Hallo Sven-my,

sorry wenn ich Dir soviel Arbeit gemacht habe mit dem Ausprobieren. :?

Aber dennoch gebe ich so schnell nicht auf.

Hier noch ein Vorschlag wenn Du möchtest:

Code: Alles auswählen

taskkill DeinProgramm.exe
Jürgen
Software hat keinen Verstand - benutze deinen eigenen...!

Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Benutzeravatar
sven-my
*****
Beiträge: 358
Registriert: Fr, 14.12.2007 19:56

Re: externes Programm beenden

Beitrag von sven-my »

Hallo Jürgen,

die Arbeit hast ja wohl Du ! Ich kann nur profitieren.

Leider klappt auch dieser Vorschlag nicht.

gruß
sven-my
win7 prof / AOO 4.1.2 & AOO 3.4.0 portable
Benutzeravatar
sven-my
*****
Beiträge: 358
Registriert: Fr, 14.12.2007 19:56

Re: externes Programm beenden

Beitrag von sven-my »

Hallo Experten,

das Problem ist indirekt gelöst, indem ich eine Batch-Datei vom Makro aus aufrufe, in der die Befehle zum Beenden des Programms funktionieren.


gruß
sven-my
win7 prof / AOO 4.1.2 & AOO 3.4.0 portable
Antworten