Aktionen (PascalScript) wurden aus Imabas entfernt

  • Hallo,


    nein leider nicht. Die Basis des Pascal-Interpreters ist uralt (90er) und wird seit etlichen Jahren nicht mehr weiterentwickelt, daher mein entscheid...


    So eine Datenbank kann aber auch von "außen" gut angesprochen und es gibt mittlerweile viele Tools die sowas können. Wenn es darum geht wie und wo welche Daten stehen, gerne bin ich behilfreich :saint:

  • Danke für die Antwort, verstehe ich.

    Frage 1:

    Mit einem externen Programm könnte ich gut leben, wenn diesem beim Aufruf Daten übergeben werden, wie es beim Aufruf von Fixfoto funktioniert. Bei einem gewählten Bild wird der gesamte Bildpfad an das aufgerufenen Programm übergeben, das ist o.k. und damit kann ich was anfangen.
    Nur wenn ich mehrere Bilder markiere und das externe Programm aufrufe, dann wird offensichtlich nichts übergeben. Kann das geändert werden, oder gibt's einen anderen Weg, die gewählten Bilderpfade weiterzuleiten?


    Frage 2:

    Den Menüpunkt "externe Programme" finde ich nur im Browser, nicht jedoch im Detailfenster (wenn man im Browser auf ein Bild doppelklickt). Kann dort ein entsprechender Menüpunkt eingefügt werden?


    Schöne Grüße, Peter

  • Ergänzung zu meinen Fragen:

    Habe festgestellt, dass das externe Programm gar nicht aufgerufen wird, wenn mehr als ein Bild angewählt ist.


    Mir würde reichen, wenn dem externen Programm die ID's der gewählten Bilder, z.B. kommasepariert übergeben werden. Dann könnte ich die Datenbank befragen und die Bildpfade daraus ermitteln.


    Toll wäre es auch, wenn es möglich wäre, Parameter vorzudefinieren, wie im Bild dargestellt:


    Aufruf des externen Programms extern.exe mit einem Parameter -aktion1 und einem weiteren Minus, an das dann die ID's der Bilder angefügt wird.


    z.B.:

    extern.exe -aktion1 -F9E65C814CBB465D9E2FD3D2F5C1687E,CBF6F5BE7F574D63829B6E14E4990583,A5349BD1DED9441997E0368783BD8D32

    oder:

    extern.exe -aktion2 -F9E65C814CBB465D9E2FD3D2F5C1687E

  • Hallo Peter,


    das mit den mehreren Bilder per Kommandozeile hat zwei Hintergründe. Erstens ist die länge einer Kommandozeile begrenzt und daraus resultierend unterstützt kaum ein Programm mehr als eine Datei per Kommandozeile... Daher damals auch mein Ansatz mit FixFoto dem die Bilder per Pipe übertragen werden...


    Kannst du mit einer Pipe umgehen? Dann könntest du ein FixFoto simulieren?


    Ansonsten ist der Ansatz schon nicht schlecht, würde aber als Parameter ein Makro {$idfile) übergeben, dann schreibt Imabas die UKEY pro Bild/Zeile in eine Datei und übergibt diese anstelle von dem Makro. Durch das Makro könnte Imabas auch erkennen ob die Datei erzeugt werden soll und eine mehrfach Übergabe erlauben.

  • Danke für die Anwtort!


    zu Pipes:

    Habe zwar mit Pipes noch nichts zu tun gehabt, aber das lässt sich erlernen. Ich schreibe meine Programme im Compiler Purebasic, da ist fast alles möglich. Gib mir doch bitte etwas Info zur Pipe, wie sie bei FixFoto angewandt wird, dann kann ich mich reinlesen.

    Trotz Pipe: kann realisiert werden, dass der Aufruf des externen Programms mit einem Parameter versehen werden kann (siehe das Bild in meinem Beitrag von vorgestern)? Dieser Parameter soll der Steuerung im externen Programm dienen.


    zu Makro:

    würde mir auch passen.
    Trotzdem bräuchte ich den zweiten Parameter, der dem externen Programm sage, was mit der Datei anzufangen ist, z.B.:

    Parameter "--download" würde bedeuten, dass alle Dateien in der Übergabedatei auf die Festplatte runterzuladen wären, oder
    "--hintergrund" würde bedeuten, dass das erste Bild in der Übergabedatei als Bildschirmhintergrund zu installieren ist, oder

    "--send-to" würde bedeuten, dass zuerst verkleinerte Bilder erzeugt werden, die dann einem E-Mail angelegt werden

    "--play" wäre das Abspielen eines Videos

    u,s,w,


    Und: wie kann ich den Aufruf externe Programme auch im Einzelbild-Fenster einbinden?


    Schöne Grüße,
    Peter

  • Hallo Peter,


    zur Pipe... Ein Beispiel findest hier... Wie Imabas die Pipe von FixFoto anspricht, findest du im Anhang... Wenn da was ankommt, schauen wir weiter, geht ja noch um die Rückmeldungen... Du musst erstmal selber einen PipeServer anlegen, den sucht Imabas mit einer Pipe Namens "FixFoto" und schreibt darein...


    Zu den Parametern, das wird so sein das du Programme anlegen kannst wie du willst, nur ein Parameter (einer von vielen) entspricht dem Makro und das wird durch einen Dateiname inkl. Pfad ersetzt. Da drin landet dann 1..n UKEY's der Bilder...

  • Hab erfolgreich 2 Programme geschrieben, das eine, das den Pipe-Server realisiert, und das andere, das was sendet. Nun wollte ich von Imabas aus auf den Pipe-Server senden, ohne Erfolg.


    Habe in der Registry folgendes eingetragen (abgeleitet aus der Pascal-Funktion "GetFixFotoExecutable" (das Fake Programm "FixFoto.exe" liegt bei mir auf dem Pfad "d:\-programmierung-\IMABAS13\pipe\"):


    [HKEY_CURRENT_USER\Software\Joachim Koopman Software\FixFoto]

    @=""

    "X64Path"="d:\\-programmierung-\\IMABAS13\\pipe\\"

    "Path"="d:\\-programmierung-\\IMABAS13\\pipe\\"


    Dann hab ich versucht, FixFoto in Imabas zu aktivieren, einerseits unter:
    "Anwendungen -> Optionen -> Anwendung -> FixFoto im Menü anzeigen" und andererseits unter:
    "Anwendungen -> Optionen -> Externe Programme -> FixFoto"


    Im ersten Fall kann ich zwar das Häkchen setzen, es wird jedoch nicht gespeichert; im anderen Fall kommt die Fehlermeldung, wie ich sie schon gestern gemeldet habe.


    Benötigt Imabas mehr als den Regisrty Eintrag wie oben dargestellt, um FixFoto zu finden?

  • Funktioniert blendend, danke!


    Noch eine letzte Frage: Imabas verbindet auf eine Datenbankdatei mit der Extension "icf". In der stehen alle Verbindungsdaten zur MySQL- Datenbank drin, auch das Passwort, allerdings verschlüsselt. Mein externes Programm findet den Pfad zu dieser Datei über den entsprechenden Eintrag in der "imabas.xml".


    Somit könnte ich einfach auf die MySQL Datenbank verbinden, wenn ich denn das Passwort entschlüsseln könnte.......

  • Moin Moin...


    sorry, den Algorithmus zum Entschlüsseln gebe ich nicht raus =O


    In der imabas.xml steht ja immer nur die letzte DB, ok bin mir jetzt nicht sicher ob die schon aktuell ist, direkt nach der Anmeldung?


    Würde mir aber in der ICF einen eigenen Tag "klartext_kenntwort=test123" hinzufügen, Imabas wird sich daran nicht stören und wenn man es "ausspäht" ist es deine Sache :)

  • Sobald ich Imabas öffne, wird automatisch auf die in der imabas.xml stehende Datenbank verbunden. Frage ist, wenn ich über Datenbank verbinden eine andere Datenbank öffne: schreibt Imabas dieselbe sofort in imabas.xml hinein? Wenn ja, dann kein Problem, weil ja das externe Programm erst später darauf zugreift und damit immer die richtige Datenbank findet. Wenn Imabas die imabas.xml erst beim Schliessen aktualisiert, dann ist's problematisch. In diesem Fall wäre die Frage, wie ich die Datenbank, die Imabas gerade verwendet, ausfindig machen kann. Schreibt Imabas irgendwo eine Temp-Datei, die ich auswerten könnte?

  • Oder du machst aus der "photos.txt" eine "photos.xml" mit so einem Inhalt:


    <imabas>

    <icf>Pfad zur icf-Datei></icf>

    <bilder type="photolist">

    <bild>Pfad zum ersten Bild</bild>

    <bild>Pfad zum 2. Bild</bild>

    .

    .

    <bild>Pfad zum n-ten Bild</bild>

    </bilder>

    </imabas>


    Sinngemäß auch für photokeys oder photoids.