Ich habe ein Buchhaltungsprogramm, dass bei einem Erreignis ein Programm mit verschiedenen Parametern ausführen kann.
Nennen wir das zu erstellende AutoIt Programm Test.exe;
Ich habe eine Buchhaltung die verschiedene Geldmünzen zählt.
Unter [DEVICES] kann ich den Wert einer Münze eintragen:
z.B. ci_coin1=10 heisst das der "ci_coin1" einen Wert von 10 Cent hat
[DEVICES]
ci=on
ci_comport=COM-1
ci_totalblocking=off
ci_binary=on
ci_coin1=10
ci_coin2=20
ci_coin3=50
ci_coin4=100
ci_coin5=200
ci_bill1=1000
Im [Bookkeeping] wird registriert, wieviele Münzen eingeworfen wurden.
Da wir, wie im oberen Bsp., 10 Cent reingeworfen haben wird bei ci_coin1_in=1 erfasst.
Beim nächsten 10 Cent Stück würde ci_coin1_in=2 stehen. u.s.w
Des Weiteren kann auch über remote_in ein Betrag aufgeladen werden.
Oder mit service_out ein Betrag wieder ausbezahlt werden.
P.s, Das ganze wird für ein Internetterminal genutzt.
[BOOKKEEPING]
ci_coin1_in=1
ci_coin2_in=1
ci_coin3_in=0
ci_coin4_in=0
ci_bill1_in=0
remote_in=600
service_out=200
Bei jedem einwurf könnte ich ein Programm ausführen lassen. Ein Parameter wird automatisch angefühgt.
Bei unserem Bsp. würde beim einwurf von 10 Cent das AutoIt Programm als "Test.exe coin1_in 10",
beim einwurf von 1€ "Test.exe coin4_in 100" ausgeführt.
Ich möchte diese Geldannahmen Zeitlich festhalten, um diese auszuwerten. Dafür brauche ich das AutoIt-Script.
Die erste Möglichkeit wäre, ein AutoIt-Script, dass mir eine .CSV oder .TXT Datei erstellt und bei jedem einwurf die Werte reinschreibt mit Datum und Zeit.
Diese könnte ich dann in einer Tabellenkalkulation oder Datenbank auswerten.
Bei "remoute_in" und"service_out" wird bis jetzt noch kein Parameter mitgegeben, dies könnte ich aber ändern, dass z.B. der Parameter mit dem Betrag mitgegeben wird.
Könnte in etwa so aussehen: test.exe service_out_200 oder test.exe remoute_in_600 o.ä.
Folgende Werte müsste mir das Script, durch Tabulatoren getrennt, erzeugen:
Bei einwurf von 10 Cent:
(27.04.201122:05;10;0)
Bei einwurf von 2€:
(27.04.2011;23:20;200;0)
Bei remoute_in von 6€
(27.04.2011;23.25;600;0)
Bei service_out von einem Betrag von 2€:
(27.04.2011;23:30;0;200)
D.h. Ich hätte vier spalten: Datum;Zeit;Einzahlung;Auszahlung
Hat jemand einen Vorschlag, bin für jeden Rat dankbar, oder könnte man auch direkt in eine MySQL Datenbank schreiben.
Man könnte auch jedesmal die vorhandene Buchhaltung auswerten (Vorher/Nachher) und die Differenz in eine .csv oder .txt File schreiben.
Problem ist nur, wenn jemand hintereinander sehr schnell Münzen einwirft, muss das Script schnell sein um alle Münzen zu erfassen.
Bin ein Newbie mit AutoIt. Finde es aber ein tolles Tool: Habe bereits einen eigenen Internetbrowser damit programmiert (Google sei Dank)
Ich biete es im Anhang zum Download an.
Spoiler anzeigen
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <IE.au3>
$IE = _IECreateEmbedded () ;ist der Befehl zum "eindringen" in eine Internetverbindung
_IEErrorHandlerRegister() ;"registriert" den Browser
#Region ### START Koda GUI section ### Form=R:\Documents\SmartWebPublishing\Favoriten\iStationbrowser.kxf
$GUI_main = GUICreate("iStation Browser", 1366, 768, 0, 0,0x80000000)
$GUI_Adresszeile = GUICtrlCreateInput("http:\\http://www.google.ch", 40, 40, 369, 21)
$GUI_send = GUICtrlCreateButton("Go", 448, 40, 51, 25)
$browser = GUICtrlCreateObj ($IE,0, 72, 1365, 689)
$GUI_google = GUICtrlCreateButton("Google", 536, 40, 75, 25)
$GUI_hotmail = GUICtrlCreateButton("Hotmail", 624, 40, 75, 25)
$GUI_gmail = GUICtrlCreateButton("Gmail", 712, 40, 75, 25)
$GUI_youtube = GUICtrlCreateButton("Youtube", 800, 40, 75, 25)
$GUI_tastatur = GUICtrlCreateButton("Tastatur", 1278, 40, 75, 25)
$GUI_help = GUICtrlCreateButton("Info", 536, 8, 75, 25)
$GUI_back = GUICtrlCreateButton("Back", 448, 8, 75, 25)
$Pic1 = GUICtrlCreatePic("D:\Browser\oben1366.jpg", 0, 0, 1366, 80, BitOR($WS_GROUP,$WS_CLIPSIBLINGS)) ;Bindet das Hintergrundbild ein (grosse 1366x80px)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
_IENavigate($IE,"http:\\http://www.google.ch")
[/autoit] [autoit][/autoit] [autoit]While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $GUI_send, $GUI_Adresszeile ; lässt den Browser auch durch Enter-Klick bedienen
$Url = GUICtrlRead($GUI_Adresszeile) ;liesst den Inhalt der InputBox
If $Url = "skype" Then
MsgBox (0,"Info","skype ist leider nicht Installiert",10) ;hier könnte z.B. auch eine externe Anwedung gestartet werden.
GUICtrlSetData($GUI_Adresszeile,'');Löscht den inhalt von der Adresszeile
Else
_IENavigate($IE, $Url) ;verbindet zur eingegebener Seite
EndIf
Case $GUI_EVENT_PRIMARYDOWN ;steht in der Hilfe unter GUIGetMsg()
$cInfo = GUIGetCursorInfo()
If IsArray($cInfo) Then
If $cInfo[4] = $GUI_Adresszeile Then
GUICtrlSetData($GUI_Adresszeile, "")
EndIf
EndIf
Case $GUI_google
_IENavigate($IE,"www.google.ch")
Case $GUI_hotmail
_IENavigate($IE,"www.hotmail.ch")
Case $GUI_gmail
_IENavigate($IE,"www.gmail.com")
Case $GUI_youtube
_IENavigate($IE,"www.youtube.com")
Case $GUI_tastatur
Run("D:\Browser\Click-N-Type.exe") ;lädt die Virtuelle Tastatur (Siehe http://cnt.lakefolks.org/)
Case $GUI_back
_IEAction( $IE, "back")
IF @error Then _IENavigate($IE,"http:\\http://www.google.ch")
Case $GUI_help
MsgBox(0,"Info","Solange der Benutzer Guthaben hat, kann er im Internet surfen, Emails schreiben, oder sonstige freigegebene Programme auf dem Terminal benützen.Sind alle Kredite verbraucht wird das Terminal automatisch gesperrt und alle laufenden Programme geschlossen. Ab einer Zeit von 60 Sekunden wird die Anzeige in Rot dargestellt um ein evtl. Nachzahlen anzuzeigen. Während den letzten 15 Sekunden Zeitguthaben wird zusätzlich ein Signalton ausgegeben",20)
EndSwitch
WEnd