Kleines Programm welches Zeit abspeichert ?

  • Hallo,


    kennt jemand ein kleines Programm ( egal DOS oder Win ) welches bei einem Ereignis ( z.B. High/Low Wechsel an einem Pin des Druckerports ) die Systemzeit in eine Datei oder auf die Diskette schreibt ? Braucht nichts tolles sein ... lediglich Uhrzeit + Status Ein/Aus protokollieren, schön wäre nur wenn sich das Datenformat später in Exel importieren lassen würde - muß aber nicht unbedingt sein.



    Gruß & Dank Bobby

  • Hi,


    hatte vor einiger Zeit mal so ne Applikation geschrieben, welche die Busy- und Select Eingänge überwacht. Konfiguriert wurde das ganze über eine ini File, wo man die hex-addresse des Ports angeben konnte.
    (und glaube auch die scan Intervallzeit. Das ganze war eventdriven)


    Hatte damals diese Eingänge gewählt, da einer 'normal' und der andere invertiert arbeitet. Das Programm so zu erweitern, dass ein Eventchange in eine Datei geloggt wird, wäre ein Klacks.


    Muss nächste Woche mal alles durchwühlen, ob ich den Sourcecode wiederfinde. Es neu zu schreiben dürfte aber kein Problem sein. (Was man einmal ....) 8)


    Ach ja, lief auch unter NT/XP.


    Falls ich's vergessen sollte und mich bis Mitte nächste Woche nicht gemeldet hab' bitte daran erinnern.


    Schönes Wochenende:
    -Serge-

  • Hallo und Danke,


    @ KlausR : ich habe das Programm "serlog" mal probiert und es erfüllt eigentlich auch schon seinen Zweck ganz gut. Das einzige was mir auffiel war, daß bei "0" immer doppelt das Datum und die zugehörige Uhrzeit abgelegt wird - dies ist etwas verwirrend, aber damit könnte ich leben. Vielleicht kann man dies ja auch noch ändern.



    Nun vielleicht gleich noch eine Frage an die Exel-Eperten : In der Tabelle ( Spalte ) stehen unterschiedliche Uhrzeiten untereinander. Ist es möglich daraus eine "originale" Zeit-Achse zu erzeugen ? Ich meine, daß die Achse nicht mit gleichen Abständen skaliert wird, sondern nur nach den tatsächlichen Uhrzeiten eingeteilt wird ( x-t Schieb ) ... ich hoffe ihr wisst wie ich das meine.



    Gruß & Dank
    Bobby

  • Hallo Serge,


    na klar - würde mich natürlich auch freuen. Muß ich da irgendetwas bei wissen, oder komme ich da so mit klar. Ich meine welche Pins wie belegt werden müssen usw.




    Gruß Bobby

  • Hi Bobby,


    ich mach dir 'ne kleine Beschreibung dazu. In die ini Datei wird lediglich die Parallelportadresse eingetragen und die Scanzeit in Millisekunden. (Default = 100ms)
    Es werden Das Busy und Select Signal des Parallelports getraced.
    Also Pin 11 zu Pin 23 und Pin 13 zu 23. Das eine arbeitet invertiert, das andere nicht.


    Ich mach nächste Woche den Logfile Teil noch dazu und schick dir das ganze dann als zip.


    Wie soll die Logfile denn aussehen? Da ich das jetzt hinzustricke, kann ich dir das auch genau so machen wie gewünscht. (customized :D )


    Man kann das ganze auch gleich in eine Access Datenbank schreiben. Dann läuft das ganze über das Jet/ADO Interface ab. Auch kein Problem! Man muss nur die Access Datenbank vorher erstellen, um den Zugriffs-string zur Tabelle (oder wie heisst das auf Deutsch) zu ermitteln.


    Ich kann dir aber nicht versprechen ob meine aktuelle Compilerversion noch eine exe für 16-bit Applikationen erstellen kann. Also im schlimmsten Fall läuft's nur unter Win XP oder NT. Wenn du mir dein Betriebssystem mitteilst, kann Ich das aber nächste Woche überprüfen.


    Gruss:
    -Serge-

  • Hallo Serge,


    wäre schön wenn das Programm auch noch unter W95 laufen würde, weil ich ein altes Laptop für diese Anwendung nutzen wollte.


    Wenn ich dich recht verstehe, werden die Werte im Zeittakt abgelegt - ist dies richtig ? Eine Taktvorwahl in 1sec. / 10sec./ 60sec. wäre super - dann werden die Dateien nicht unnötig groß. Ein Ereignisgesteuertes Ablegen der Werte ist nachher zur Auswertung nicht so gut geeignet, da ich in Excel ein x-t Diagramm daraus erzeugen möchte.

    Zur Auswertung : Wäre schön wenn das Datum, die Uhrzeit und der Schaltzustand "1"oder "0" eines Eingangs in eine CSV Datei gespeichert werden. Trennung kann mit "," oder ";" erfolgen. Dann kann ich dies direkt mit Excel öffnen und weiter auswerten.


    Vielen Dank


    Bobby

  • So, Programm ist Fertig. Aber leider nur für Win-32bit Versionen (also NT/XP)
    Habe einen deployment package zusammengestrickt, poste diesen aber lieber nicht, den wenn man diesen unter W9x/Me installiert gibt's Freude!!!


    Also folgendes: Ich versuche mal die Zip hier einzufügen. Nicht hauen,wenn's nicht klappt.


    Das Programm einfach in ein Verzeichnis unzippen. Die beigefügte DLL kann entweder in dem Verzeichnis der .exe bleiben oder in system32 kopieren. Die .ini ist selbsterklärend. Habe aber noch einen Hilfetext miteingefügt. Die Trace wird ins Unterverzeichnis ..\LOGS geschrieben.
    Pro Kanal 2 Files, je einer Eventdriven und einer Interval-driven.
    Wenn du in der .ini die ScanRate auf 1000 setzt und die [LOGOUTPUT] keys auf TRUE setzt, werden beide logfiles geschrieben.
    Das Programm läuft minimized als Tray-Icon. Beim anklicken zeigt es den Status der Inputlines an. Nochmals anklicken und es ist wieder minimized.


    Ich schau mal ob ich noch einen Kompiler für 16bit Betriebssysteme finde, und das ganze ungeschrieben bekomme. Habe selbst interesse dran das es auf W9x läuft. Kann man gut als Zugangskontroll-Log benutzen.


    Keine Angst. Es ist kein Installationspackage enthalten, das dein System crashen kann. Falls interessiert schicke ich dir gerne den Quellcode.


    Einfach Bescheid geben falls noch etwas geändert werden muss.
    Ansonsten meld' ich mich wenn ich mit der 16bit Version weitergekommen bin.


    Gruss:
    -Serge-

  • Hallo Serge,


    auf meinem XP-Rechner hab`ich dein Programm schon getestet. Da lief es schon prima.
    Wäre es evtl. noch möglich die 1/100 sec wegzulassen und zwischen Datum und Uhrzeit auch noch ein ";" zu setzen ?



    Ansonsten schon mal vielen, vielen Dank für deine Mühe.



    Gruß Bobby

  • Ist es eigentlich normal, daß mein Antivirenprogramm beim Starten der exe einen Trojaner meldet?






















    Scherz beiseite, könnte ich bitte den Sourcecode haben?

    Claudia hat 'nen Schäferhund
    Und den hat sie nicht ohne Grund

  • Zitat

    Aber leider nur für Win-32bit Versionen (also NT/XP)


    Windows 95, 98 und ME sind auch 32 Bit Versionen. 16 Bit ist Windows 3.xx.


    Zitat

    denn ernsthafte Nutzer setzen diese Systeme eh nicht ein.


    Ich kenne mehrere die mittlerweile das ständige Windows-Update satt haben (es soll noch Gegenden ohne DSL geben) und zum Surfen nur noch Win9x nehmen, die Attraktivität für Wurmprogrammierer ist nicht mehr gegeben

    Claudia hat 'nen Schäferhund
    Und den hat sie nicht ohne Grund

  • Windows 95, 98 und ME sind auch 32 Bit Versionen. 16 Bit ist Windows 3.xx.


    ->Die systeme Win9X/ME und 3.1 unterscheiden sich nicht in der Architektur. BEIDE sind eine MISCHUNG aus 16Bit und 32-Bit Komponenten, wobei die Kernfunktionen zum Teil auch an wichtigen stellen auf 16 Bit basieren. Die 32 Bit Komponenten reichen API Aufrufe etc. an die 16 Bit Unterschicht weiter, die sie dann bearbeiten (Thunking).


    Deshalb hängt Win9X komplett, wenn mit Sofoware im Bereich des DOS-Stubs rumgeschrieben wird (Debug F 0:0 ffff 0).


    Andererseits unterstützt auch Win3.1 schon 32 Bit Programme und zwar über die Win32S Plattform.


    Für die Updates besteht keine verpflichtung; wir haben systeme draußen, die auch ohne Updates stabil laufen. Wie bei allen Systemen ist dazu eine Hardware-Firewall und BENUTZERINTELLIGENZ nötig.


    Wer auf alle Anhänge kliclkt, kroiegt auch sein 95 System klein. Besonders schlimm bei 95 Usern mit Modem / ISDN wegen der Dialer!

  • Zitat

    Windows 95, 98 und ME sind auch 32 Bit Versionen. 16 Bit ist Windows 3.xx.


    Ja, stimmt schon. Aber die DLL ist für 32bit Systeme. Als ich damals die erste Version des Programms geschrieben hatte, ging's darum, den Portzugriff unter NT zu bewerkstelligen. NT erlaubt keine direkte I/O Zugriffe.
    Unter Win9x kann man bequem und direkt via In/Out auf die Portregister zugreifen. Muss das Programm also "nur" dementsprechend umändern. Werde dann eine W9x Version posten.


    OK, ich mach noch das zusätzliche ";" rein und ändere die .ini so um, dass man auswählen kann ob man die 100tel Sekunden angezeigt will oder nicht.
    Räume dann den Quellcode noch etwas auf und poste diesen dann natürlich auch. Hab'mich übrigens in der .ini vertippt. Die Scanzeit mit dem P4 2,66Ghz war natürlich 30ms und nicht 3ms 8o


    Ach ja, man kann das ganze noch erweitern, so dass man auch die Error/Paperout/Ack Lines mit auswertet. Dann hätte man einen 5-Kanal Logger. Man sollte sich auch Gedanken darüber machen ob man nicht eine Interface-Box für den //-Port baut. Oder das ganze über ne separate LPT-Karte betreibt. Den Port auf dem Motherboard zu beschädigen (z.B.: durch Unachtsamkeit) wäre nicht so toll.


    Ich meld' mich dann...


    -Serge-

  • Update.


    Hab' eine DLL gefunden, welche alle Windows Betriebssysteme unterstützt. Werde diese jetzt ins Projekt miteinbinden.
    Unter Win95 bekomme ich den Select Eingang aber nicht ans funzen, dafür aber den Ack-Eingang welcher auch negiert ist. Weiss nicht woran es liegt. Kann auch an meiner alten Hardware liegen.


    Ich ändere das ganze auf Ack und Busy Line um, und stell's dann als deployment package auf einen server. Quellcode natürlich auch.


    Habe den Separator bei Datum/Zeit auch eingefügt und einen Accuracy-key in die .ini beigefügt, wo man die 100stel Sekunden anwählen kann.


    -Serge-

  • Vielen, lieben Dank, Serge.



    Auf einem W98 Rechner läuft alles prima. Nur mein älteres W95 Laptop will noch nicht recht. Bei der Installation des Programms erscheint ziemlich zum Schluß : "An error occurred while registering the file c:\windows\system\SCRRUN.DLL "


    Wenn ich dies ignoriere läßt sich das Programm dann aber auch nicht starten. Meldung : "Fehler durch ungültige Seite in Modul OLE32.DLL"



    Hätte ich da noch eine Chance was hinzubiegen ?



    Gruß Bobby

  • Ja, hast du. Ich hab das Programm unter Win95 (erste edition) keine a oder b Version ans laufen bekommen, deshalb bin ich davon ausgegangen, dass es auch auf späteren Versionen läuft. So kann man sich irren... ?(
    Scrrun.dll ist fürs scripting zuständig. (wird im Programm benutzt um die logfile zu schreiben)
    Ole32.dll ist fürs Object Linking Embedded zuständig (wird auch benutzt)


    Also du hast während der Installation als der Fehler auftrat "Ignore" angeklickt? Dann müsste die exe und die ini also im Verzeichnis "Program Files\LPT Scanner" installiert sein.


    1) überprüf das bitte


    Dann müsste unter \Windoof\System die Inpout32.dll auch zu finden sein.
    2) auch überprüfen


    3) überprüfe die Version von scrrun.dll und ole32.dll (right-click / properties / Version-TAB
    scrrun32 ist bei mir 5.6.0.6626
    ole32.dll ist 4.71.3328


    4) In der Kommandozeile, tippe mal folgendes ein:
    Regsvr32 c:\Windows\System\Scrrun.dll
    Was kommt als Meldung?


    Ach ja, welche Win95 Version hast du?


    -Serge-