Welche Programmiersprache benutzen?

maj3stro

Grünschnabel
Hallo an alle von tutorials.de ;)

Mein Problem ist, dass ich momentan nicht genau weiß, welche Programmiersprache die richtige für mein Projekt ist. Ich habe in Java zwar ausreichend Erfahrung, jedoch denke ich nicht, dass Java für diese Problemstellung das Passende wäre.

Ich versuche dann mal den Sachverhalt weitestgehend zu erläutern.
Momentan werden in der Firma, Kauf- und Verkaufaufträge so geregelt, dass die jeweiligen Firmen Kaufaufträge als Textdateien in FTP-Ordner schieben und sich die potentiellen Käufer diese dann aus dem Ordner rausholen.
Diese Textdateien werden momentan von einer bereits bestehenden Software geparst. Ausgehend von diesen geparsten Informationen werden manuell Rohstoffmengen in Exceltabellen eingetragen und E-Mails als Bestätigung rausgeschickt. Diese E-Mails werden automatisch auf Knopfdruck durch ein Visual Basic Skript verschickt.

Die Problemstellung ist nun, dass die Kaufzeiten ausgeweitet werden. D.h. theoretisch können Rohstoffe auch mitten in der Nacht gekauft werden. Es ist klar, dass zu der Uhrzeit keiner in der Firma anwesend ist, weshalb das alles automatisch ablaufen muss. Das Programm, was momentan die Textdateien parst, kann nichtmal automatisch die jeweiligen Aufträge holen.
Zusätzlich ist noch gefordert, dass man Prioritäten setzen kann, von wem die geforderte Menge eingekauft werden soll. Zudem soll auch noch die maximal zu beschaffende Menge festgelegt werden können.

Meine potentielle Lösung der Programmstellung wäre nun folgende.
Es wird per Autoclicker das Programm gestartet, was die Kaufaufträge ausliest. Dort werden dann mehrere Buttons geklickt und eine Bestätigung erstellt. Dann liest mein eigenes Programm aus der vom Parsing-Programm erstellten Bestätigung die Menge aus. Gleichzeitig werden die vorher in einem Visual Basic Programm gesetzten Prioritäten, sowie die maximal zu beschaffende Menge ausgelesen. Daraufhin wird die zu beschaffende Menge von der priorisierten Firma gekauft (bedeutet im Grunde genommen nur, dass die Kaufmenge in eine Spalte in einer Excel-Tabelle eingetragen wird). Anschließend werden noch per Visual Basic verschiedene Skripte ausgeführt, wodurch die Bestätigungs-E-Mails abgeschickt werden

Ich frage mich jetzt halt, in welcher Sprache ich das erledigen soll. Visual Basic, Auto IT, C# ?
Tendieren würde ich ja zu Visual Basic, nur weiß ich nicht, ob man mit Visual Basic einen fortgeschrittenen Autoclicker hinkriegt, der in dem Parsing-Programm die Optionen aktiviert.

Wäre nett, wenn ihr mir nen Tipp geben könntet :)

Besten Gruß
maj3stro
 
Zuletzt bearbeitet:

sheel

I love Asm
Hi und Willkommen bei tutorials.de :)

Ich hab zwar nicht 100% das ganze System verstanden, aber würde prinzipiell von so einem Autoklicker abraten. Wenn, dann AutoIt oder C, aber solange es eine andere Möglichkeit gibt...

Das ganze scheint für eine Firma sowieso etwas wacklig zu sein.
Manuell FTP-Dateien erzeugen, die automatisch gelesen werden, nur um dann wieder händisch etwas in Excel einzutragen, das von einem ganz anderen Programm (das auch noch händisch gestartet wird) zu einem Email gemacht wird?

Ich kenn eure Kaufaufträge nicht, aber vermutlich sind sie von der Komplexität her überschaubar?

Ich würde vorschlagen, bevor man jetzt das ganze System da noch um ein (fehlbares) Autoklickprogramm erweitert, das Ganze Übel an der Wurzel packen und das Klick-los im Programm lösen:
In Exceldateien (bzw. csv) etwas einzutragen ist nicht schwer
Email verschicken ist nicht schwer.
FTP-Zugriffe sind auch nicht schwer...

Dann läuft das Ganze stabil und sicher.
 
Zuletzt bearbeitet:

maj3stro

Grünschnabel
Hey, also erstmal danke für deine Antwort.

Die Aufträge sind von der komplexität her überschaubar.
Es stimmt wohl, das System ist nicht sonderlich gut. Ich habe mich da auch selber gewundert, wie man soetwas hat durchsetzen können.

Okay, dann werde ich mal versuchen das ganze in Visual Basic zu machen, sofern das noch unter den Satz ("aber solange es noch eine andere Möglichkeit gibt...") fällt. Weiß nur beim besten Willen momentan nicht, wie ich per Visual Basic in einem Programm Buttons auswähle und bearbeite :/
Werde da erstmal ein wenig googeln müssen. Deshalb hatte ich auch erst an einen Autoclicker gedacht. Das hörte sich am einfachsten an, da ich dann einfach per Visual Basic eben diesen aufgerufen hätte.

Warum sind autoclicker denn eigentlich fehleranfällig? Gehen die nur von der absoluten Mausposition aus, sprich speichern nur die Weglängen? Das wäre ja wirklich doof, weil der Autoclicker dann ja evtl. (abhängig von der aktuellen Mausposition) dauernd woanders hinklicken würde.

Besten Gruß
maj3stro
 

sheel

I love Asm
Wenn es nur um die Klicks geht, wäre es ja kein Problem.
Aber:
Erstens muss ein Fenster ja nicht immer an der gleichen Stelle sein. Die Position von einem bestimmten Programm herauszufinden wäre allerdings noch relativ einfach machbar.

Eine Stufe schwieriger: zB. im Excel herausfinden, wie voll die Tabelle schon ist, also wo man den neuen Eintrag dazuschreiben muss. Gut, Excel bietet Schnittstelle für den Zugriff an, also auch noch im Bereich des Möglichen.

Aber schon an dem Punkt wäre ein Programm, das statt Klicken wirklich die Aufgaben selber erledigt, vielleicht einfacher.

Dritter Punkt: Ich kenn die Oberfläche von eurem Auftragsparser nicht, aber wenn die sich auch je nach Auftrag oder so verändert wirds unmöglich.
Um dann da das Richtige anzuklicken müsste man dann vielleicht anfangen, erkennen versuchen wo am Bildschirm sich Text befindet und was da steht..usw...
Für einen einzelnen Programmierer seh ich dann schwarz.

Was außerdem Autoklicker generell problematisch macht: Ein Mensch vor dem Bildschirm, der die Maus verwendet, wird zum Problem. Kann lang gut gehen, und einmal daneben...bei Aufträgen von Kunden kann sowas unschön werden. Irgendwo eine falsche Zahl drin, durch die er mehr bezahlen sollte...

Gruß
 

maj3stro

Grünschnabel
Hi, also folgende Aktionen werden genau durchgeführt:
1. Da das programm in einer virtuellen Maschine läuft muss Radmin.exe gestartet werden und nutzername und passwort eingegeben werden
2. Dort öffnet man dann das besagte parsing-programm. Die Aktionen dort sind immer monoton. Ich klicke 2 Einstellungen an und mache einen Doppelklick auf "Aufträge bearbeiten"
3. Dann hatte ich mir gedacht, starte ich mit dem autoclicker mein visual basic programm.
4. (von hier an, läuft nur noch das vb-programm) aus der vom parsing programm erstellten Auftragsbestätigung (als txt-datei) ziehe ich die Menge raus. Das kann man dummerweise nicht direkt aus dem parsingprogramm selber machen :/
5. Per VBA laufen dann die weiteren Aktionen ab, also e-mail schicken, Einträge je nach Priorisierung und Menge schreiben

Das generelle Problem, also dass ein Autoclicker unnütz ist, wenn jemand die Tastatur bedient, besteht natürlich prinzipiell. Hätte aber gedacht, dass man einfach dem "fremden" Input blocken kann.

Naja, ich denke die schlaueste Variante wird sein, ich schreibe das VBA Programm so, dass es alle 30 Sekunden ein Auto It Script ausführt und im Anschluss weitere Aktionen (E-Mail schicken etc). Dann habe ich das Problem mit dem Autoclicker nicht und kriege es wahrscheinlich schneller hin´das Parsingprogramm anzusprechen.

Eine andere Frage, die ich grade habe ist folgende....

Ich habe Windows 7 auf meinem Rechner mit Visual Basic 2010. Selbst die einfachsten Befehlen also z.B. ein externes programm auf Knopfdruck zu starten, funktionieren nicht. Kann das evtl. jemand bestätigen, vllt. ja sogar du? Denn so kann ich grade gar nichts machen :/

Besten Gruß
maj3stro
 

sheel

I love Asm
Ich habe Windows 7 auf meinem Rechner mit Visual Basic 2010. Selbst die einfachsten Befehlen also z.B. ein externes programm auf Knopfdruck zu starten, funktionieren nicht. Kann das evtl. jemand bestätigen, vllt. ja sogar du? Denn so kann ich grade gar nichts machen :/

Was bedeutet, "Es funktioniert nicht"?
Fehlermeldungen? Was tut das Programm? Oder passiert einfach gar nichts?
Kannst du ein Codebeispiel zeigen?
 

maj3stro

Grünschnabel
Hi, also ich hatte es die ganze Zeit mit System.Diagnostics.Process.Start ("Programmpfad") versucht. Da kam bei mir immer eine Win32 Exception.

Es Funktioniert zum Glück jetzt mit Shell(Programmpfad) =)

Besten Gruß
maj3stro