Perl, Python, ... oder was ?

Hallo Experten,

Ich suche ein Programmiersprache, mit der ich „Automatismen“ lösen kann.
Ich stell mir das so vor: Wenn ich auf der Tastatur ALTGR und D drücke,
läuft ein Script ab: 5 mal TAB, Schreibe das Wort „Versand“, drücke dann wieder 2 mal TAB
und soweiter.

Ich kenne unter Windows z.B. dazu das Programm Autohotkey. Jetzt bin ich auf Linux umgestiegen und
würde gerne sowas programmieren, dass es auf beiden Systeme läuft.

Später, wenn die ersten Gehversuche geklappt haben, würde ich dann vielleicht auch weitergehen in Richtung GUI-Anwendungen

Ich habe ein wenig gegoogelt und bin dann auf PERL bzw. PYTHON gestossen…

Ist mein Vorhaben damit zu realisieren ???

vielen Dank für die Tipps… :smile:

Gruss Winnie

Hallo Winnie,

Ich stell mir das so vor: Wenn ich auf der Tastatur ALTGR und
D drücke,
läuft ein Script ab: 5 mal TAB, Schreibe das Wort „Versand“,
drücke dann wieder 2 mal TAB

Jetzt bin ich auf Linux umgestiegen und
würde gerne sowas programmieren, dass es auf beiden Systeme
läuft.

Das ungepufferte Abfragen der Tastatur ist betriebssystemunabhängig in Skriptsprachen mindestens schwierig zu realisieren. Meist greift man dazu auf systemeigene Funktionen zurück, also unter Linux z.B. auf

read -n 1

Du müsstest also in deinem Skript unterscheiden, in welchem System es gerade abläuft, was unter Python möglich ist. Perl kenne ich nur schwach, nehme aber an, daß es dort ähnlich abläuft.
Ein Beispiel für solch eine ungepufferte Tastenabfrage in Python sowohl für Linux als auch Windows findest Du hier:
http://www.python-kurs.eu/os_modul_shell.php

Eine weitere Möglichkeit für dieses Problem sind Zusatzbibliotheken, die dir diese Arbeit abnehmen. Eine beliebte Bibliothek wäre curses, die aber leider, soviel ich weiss, nur für Linux existiert. Ob es so etwas ähnliches plattformübergreifend gibt, weiss ich nicht.

Viele Grüße
Marvin

weder noch… nimm eine programmiersprache und keinen zustand.

im normalfall würde ich java empfehlen aber java ist für dieses vorhaben deutlichst ungeeignet. darum sag ich nun: C++, C# oder wenn du damit nicht klar kommst object pascal (delphi). C# sollte für den anfang am einfachsten sein.

lg

david

Hallo David

C++
C# oder wenn du damit nicht klar kommst object pascal

Da Winnie plattformübergreifend programmieren möchte, bräuchte er aber trotzdem einen Cross-Compiler. Statt Delphi ginge dann z.B. Free Pascal in Verbindung mit Lazarus
http://wiki.ubuntuusers.de/Lazarus
denn wen ich ihn richtig verstanden habe, will er auf Linux auch für Windows entwickeln.

C# sollte für den anfang am einfachsten sein.

C# für Linux? Wäre mir neu. Dann bestenfalls mono
http://de.wikipedia.org/wiki/Mono-Projekt
aber in welchem Stadium das im Moment ist kann ich auch nicht sagen. Aber für kleinere Sachen für den Privatgebrauch mag es angehen, ich habe keine praktische Erfahrung damit.

Viele Grüße
Marvin

Hallo Marvin,

denn wen ich ihn richtig verstanden habe, will er auf Linux
auch für Windows entwickeln.

genau das meinte ich… Ich dachte da evtl an ein Programm, dass unter Linux UND Windows läuft…

Gruss Winnie

Hi,

also wenn ich das richtig verstanden habe, möchtest Du vom Anwendungsprogramm unabhängig den Tastaturpuffer überwachen, und wenn Du bestimmte Tastenkombinationen erkennst, in den Tastaturpuffer schreiben.

Es sollte klar sein, dass das für jedes Betriebssystem anders ist, und dass das Programm sich vor die Verteilung der Eingabe an die Fenster einklinken muss.

Die Sprache ist dabei wirklich egal, das wichtigste sind die Mechanismen des Betriebssystems bzw. des Fenstermanagers, sich in diesen Datenstrom einzuklinken.

Gruß, Lutz

Hallo,

Ich suche ein Programmiersprache, mit der ich „Automatismen“
lösen kann.
Ich stell mir das so vor: Wenn ich auf der Tastatur ALTGR und
D drücke,
läuft ein Script ab: 5 mal TAB, Schreibe das Wort „Versand“,
drücke dann wieder 2 mal TAB
und soweiter.

Ich kenne unter Windows z.B. dazu das Programm Autohotkey.
Jetzt bin ich auf Linux umgestiegen und
würde gerne sowas programmieren, dass es auf beiden Systeme
läuft.

Das wird unter Linux schwierig. Aus Sicherheitsgruenden kann ein Programm nicht jedes beliebige andere Programm fernsteuern, sonst koennte ein boesartiges Programm ein Terminal ausnutzen, in dem man gerade als root eingeloggt ist.

Trotzdem scheint es Programme zu geben, die das irgendwie hinkriegen, z.B. dieses hier: https://code.google.com/p/autokey/ (was allerdings nicht auf Windows laeuft).

Gruesse,
Moritz

Hallo Winnie,

Ich dachte da evtl an ein Programm,
dass unter Linux UND Windows läuft…

Naja, nur Skripte laufen unter Linux UND Windows. Also, um mal die üblichen Verdächtigen zu nennen, Perl, Python, Ruby, Tcl/Tk usw. Aber das eben auch nur, wenn es nicht zu tief in die Hardware geht, und Tastaturabfragen gehören leider dazu. Aber das kann man meistern, weil man meistens auch das Betriebssystem abfragen kann:

if Betriebssystem = Windows then
 mache dieses
else
 mache jenes
endif

so nach diesem Muster. Skripte haben natürlich das Problem, daß der jeweilige Interpreter auf der betreffenden Maschine installiert sein muss. Wenn Du auf einer Windowsmaschine ein Perl-Skript schreibst, kann dein Kumpel Paul damit nicht viel anfangen, wenn er zwar auch Windows hat, aber eben kein Perl.
Programme, also übersetzte (Pascal, C, C++ usw.) haben diesen „Nachteil“ nicht. Ein compiliertes C-Programm wird auf allen Maschinen laufen, auch wenn der PC noch nie einen C-Compiler gesehen hat. Aber, und das ist der Pferdefuß, Du compilierst dieses Programm eben entweder für Windows, und dann läuft es nur unter Windows, oder Du compilierst es für Linux, dann läuft es nur unter Linux.

Ein Zwischending wäre Java. Da werden deine Programme compiliert und können anschliessend sowohl unter Windows als auch unter Linux ausgeführt werden, wenn dort, ähnlich wie bei Skripten, eine Java-Umgebung installiert ist.

Was Du nun letztendlich nimmst, hängt auch ein wenig davon ab, was Du genau vorhast. Der Wunsch nach Windows und Linux lässt ja vermuten, daß mehr dahintersteckt, als „nur“ das Schreiben von 5 mal TAB, das Wort „Versand“, und wieder 2 mal TAB. Das wäre auch mit einem Makro in OpenOffice Writer zu machen.
http://www.ooowiki.de/Makro

Viele Grüße
Marvin

Hallo Moritz

Trotzdem scheint es Programme zu geben, die das irgendwie
hinkriegen, z.B. dieses hier:
https://code.google.com/p/autokey/ (was allerdings nicht auf
Windows laeuft).

AUTOKEY kenne ich, das funzt an sich ganz gut ABER: Damit kann ich nur Text schreiben, jedoch nicht 2x TAB, oder sowas erzeugen. (Ich hoffe ich irre mich da jetzt nicht)
Das dazugehörige Windows Clone nennt sich AUTOHOTKEY, was unter Windows m.E. wesentlich mächtiger ist. ABER: das läuft nicht unter Linux :wink:

Aber trotzdem danke für den Tipp …

Gruss Winnie

nicht nur bestenfalls mono, sondern definitiev mono. ich hab mit mono noch nicht gearbeitet aber einige leute aus meiner fakultät benutzen es und sind begeistert.

C# ist halt wie java eine sehr intuitiev zu erlernende sprache und kann deutlich mehr als skripte.

Hallo David,

nicht nur bestenfalls mono, sondern definitiev mono.

Sorry, war nicht so negativ gemeint, wie es vielleicht klingt.

einige leute aus meiner
fakultät benutzen es und sind begeistert.

Ich habe es auch noch nie benutzt und nach der Beschreibungen hier
„Anwendungen, die auf .NET 3.0, .NET 3.5 oder .NET 4.0 basieren, sind derzeit unter Mono unter Umständen nicht lauffähig , da bislang nur eine Teilmenge umgesetzt ist. Es fehlen Windows Presentation Foundation, Entity Framework, Windows Workflow Foundation und teilweise Windows Communication Foundation.“
http://de.wikipedia.org/wiki/Mono-Projekt#Hintergr.C…
war ich eben etwas skeptisch über das Entwicklungsstadium von Mono. Aber wenn Kommilitonen von dir es zufriedenstellend benutzen, ist diese Skepsis offenbar unangebracht.

Viele Grüße
Marvin

Moin,

mein post kam aber auch sehr unhöflich rüber sry. Das kam dadurch, dass ich nur schnell über mein Smartphone geantwortet habe.

Was so ein Hallo und auf Weiedersehen im eindruck eines Textes ausmachen kann ist schon erstaunlich :wink:

LG

David

Hallo David,

mein post kam aber auch sehr unhöflich rüber sry.

Ach was, so unhöflich habe ich es gar nicht empfunden. Nun sind wir ja quit :wink:

Viele Grüße
Marvin

Hallo,

Jetzt bin ich auf Linux umgestiegen und
würde gerne sowas programmieren, dass es auf beiden Systeme
läuft.

Ein Programm für beide System geht schlecht,
aber eine Sprache die unter beiden Systemen rel. einfach
zu compilieren ist, wäre Delphi / Lazarus.

Später, wenn die ersten Gehversuche geklappt haben, würde ich
dann vielleicht auch weitergehen in Richtung GUI-Anwendungen

Um so mehr ist Delphi zu empfehlen.
Im Gegensatz zu dem propritären MS-Kram sind Delphiprog.
z.B. von Win95 bis Win8 rel. klaglos ausführbar.

Gegenüber C++ (das muß man sich nicht unbedingt antun)
unendlich viel einfacher als Anfänger zu beherrrschen
und es gibt für Delphi eine gewaltige Basis freier
Komponenten als Freeware (z.B. JEDI-Packages)
Gruß Uwi