ComObjekt zerstört Xbase Programm Fenster

Grafische Primitive, XbaseParts und Darstellungsfragen allgemein.

Moderator: Moderatoren

Antworten
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1765
Registriert: Mi, 28. Jul 2010 17:16

ComObjekt zerstört Xbase Programm Fenster

Beitrag von ramses » Fr, 08. Mai 2020 10:55

Auf einigen PC gibt es seit kurzem ein neues Problem.

Die App versendet eMails mit Outlook. Dazu wird das ComObjekt verwendet.

Code: Alles auswählen

 oObj := CreateObject( "Outlook.Application" )
Das ganze Mail-Versenden funktioniert seit Jahren einwandfrei.
Jetzt wird jedoch auf einigen PC's beim öffnen Outlook Fensters das Fenster des xbase-Programms auf etwa 1/4 der Original Grösse verkleinert.
Nach versenden des Mails funktionnert das Xbase Programm noch, es erhält vom Com-Objekt auch korrekte Antworten.
Die Fenstergrösse lässt sich auf alle erdenkliche Arten nicht mehr auf Originalgrösse bringen.
Auch die Abfragen der Fenstergrösse/Position im Xbase Programm zeigt noch die "normalen" Werte an. Angezeigt wird das Fenster aber weder in der gemeldeten Grösse noch an der gemeldetet Position .... Grösse und Position setzten bewirken auch nichts.

Leider kann mit der verkleinerten Darstellung des Programms nicht gearbeitet werden so muss nach jedem versenden eines Mail das Programm beendet und neu gestatet werden.

Hat jemand eine Idee?

System:
Windows 10 Pro, 1 Monitor, 1920*1200 Pixel, Skalierung 100%, sonst alles Windows Standardeinstellungen
Valar Morghulis

Gruss Carlo

Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15129
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 2 Mal
Kontaktdaten:

Re: ComObjekt zerstört Xbase Programm Fenster

Beitrag von brandelh » Fr, 08. Mai 2020 11:01

Sehr seltsam, keine zu deinem eigentlichen Problem, aber wenn es nicht zu beseitigen ist, könntest du es eventuell umgehen.
Der eMail Versand wird in eine eigene EXE ausgelagert (Console), diese startest du mit runshell im Hintergrund asyncron.
Die Parameter könntest du in eine DBF schreiben und dort auch nachsehen ob die eMail versandt wurde (ein Feld, das die aufgerufene EXE füllt.
Gruß
Hubert

Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12333
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: ComObjekt zerstört Xbase Programm Fenster

Beitrag von AUGE_OHR » Fr, 08. Mai 2020 11:57

hi,
ramses hat geschrieben:
Fr, 08. Mai 2020 10:55
Jetzt wird jedoch auf einigen PC's beim öffnen Outlook Fensters das Fenster des xbase-Programms auf etwa 1/4 der Original Grösse verkleinert.

Hat jemand eine Idee?
interessantes Problem ...

ich habe mit einem ActiveX ein ähnliches Problem.

es kommt vor das bei Voll-Bild und Pause die Ausgabe von WMP auf 1/4 reduziert wird.
wenn man dann das Video weiter laufen lässt bleibt es in der Grösse :(

ich habe verschiedene Sachen probiert welche teilweise geholfen haben aber nach einiger Zeit ( Windows Update? ) tritt das Problem wieder auf :angry4:

das einzige was eine Zeit lang hilft : alte EXE löschen und neu erstellen bzw. aus einem ZIP File entpacken.
gruss by OHR
Jimmy

ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1765
Registriert: Mi, 28. Jul 2010 17:16

Re: ComObjekt zerstört Xbase Programm Fenster

Beitrag von ramses » Fr, 08. Mai 2020 15:06

das einzige was eine Zeit lang hilft : alte EXE löschen und neu erstellen bzw. aus einem ZIP File entpacken.
Auch das hatte ich versucht: es hat leider auch nichts gebracht. (EXE=Xbase Exe UND alle DLL's)


Über Hubert's Idee: da überlege ich mir jetzt wie am besten ........ Die Hauptprogramm EXE mit Parametern aufrufen zum Mailversand wäre im Moment organisatorisch die einzig gangbare Möglichkeit. Aber wo liegt die Ursache fürs Problem?
Valar Morghulis

Gruss Carlo

Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 15410
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 2 Mal
Kontaktdaten:

Re: ComObjekt zerstört Xbase Programm Fenster

Beitrag von Martin Altmann » Fr, 08. Mai 2020 16:37

Kleiner Tipp:
Bei meinem Webserver wird eine Mail vorbereitet - es wird also der Text (Inhalt der Mail) als ASCII-Text und als HTML-Text sowie der Betreff und die Empfängeradresse in ein Array gepackt und das - mit var2bin() - in einer Datei im Filesystem abgelegt. Alle 15 Minuten läuft bei mir ein Thread, der nach entsprechenden Dateien schaut, diese - mit bin2var() - einliest und die entsprechenden Mails verschickt. Hat das geklappt, wird die Datei gelöscht.
Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
stellv. Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.

ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1765
Registriert: Mi, 28. Jul 2010 17:16

Re: ComObjekt zerstört Xbase Programm Fenster

Beitrag von ramses » Fr, 08. Mai 2020 16:58

Hallo Martin

das direkte Versenden der Mail wäre kein Problem. Ich verwende dies früher mit See32 seit einiger Zeit mit der smtpclient() Klasse auch in meinen WebApps, das funktioniert direkt und super schnell.

Das Problem an der Sache ist nun dass es der Kunde die betreffenden Mail im Outlook haben will u.a. weil diese oft vor dem versenden noch manuell ergänzt werden müssen ......
Valar Morghulis

Gruss Carlo

Benutzeravatar
Werner_Bayern
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1776
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern

Re: ComObjekt zerstört Xbase Programm Fenster

Beitrag von Werner_Bayern » Fr, 08. Mai 2020 23:00

Martin Altmann hat geschrieben:
Fr, 08. Mai 2020 16:37
Kleiner Tipp:
Bei meinem Webserver wird eine Mail vorbereitet...
Servus Martin,

was hat das für einen Vorteil? Warum haust Du die Mail nicht gleich in einem Thread raus?
es grüßt euch

Werner

<when the music is over, turn off the light!>

Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 15410
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 2 Mal
Kontaktdaten:

Re: ComObjekt zerstört Xbase Programm Fenster

Beitrag von Martin Altmann » Sa, 09. Mai 2020 0:44

Werner,
aus mehreren Gründen:
Das Zeitaufwendigste beim Senden der Mail mittels See4Xb ist das Connecten mit dem Smtp-Server (Handshaking). Wenn ich also vor dem Senden der Mail ein Connect und nach dem Senden ein Disconnect mache (und dann noch in mehreren Threads fast parallel), beeinflusse ich das Senden der angefallenenen Mails untereinander. Schneller (und reibungsloser) geht es, wenn ich ein Connect mache, die in den letzten 15 Minuten angefallenen 43 Mails hintereinandere sende und danach ein Disconnect.
Ausserdem hat es den Vorteil, dass ich bequem wiederaufsetzen kann: Kommt es beim Versenden der Mail zu einem Problem (z.B. wird der Smtp-Dienst gerade restartet oder ich starte meinen Webservice neu, weil ich ein Update einspiele), wird es beim nächsten Versuch fünfzehn Minuten später erneut auf den Weg gebracht (die Datei wird ja erst nach dem erfolgreichen Übergeben an den versendenden Mailserver gelöscht).

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
stellv. Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.

ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1765
Registriert: Mi, 28. Jul 2010 17:16

Re: ComObjekt zerstört Xbase Programm Fenster

Beitrag von ramses » Sa, 09. Mai 2020 13:32

Einige SMTP Server aktzeptieren auch nur eine gleichzeitige Verbindung pro Account .... ein Connect aus einem 2 Thread würde die erste Verbindung sofort beenden ......
Valar Morghulis

Gruss Carlo

Benutzeravatar
Werner_Bayern
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1776
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern

Re: ComObjekt zerstört Xbase Programm Fenster

Beitrag von Werner_Bayern » Sa, 09. Mai 2020 14:24

ok, danke Martin.
es grüßt euch

Werner

<when the music is over, turn off the light!>

Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15129
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 2 Mal
Kontaktdaten:

Re: ComObjekt zerstört Xbase Programm Fenster

Beitrag von brandelh » Sa, 09. Mai 2020 17:56

wie gesagt, ich würde eine DBF nehmen.
Der oder die Sender-Apps, erstellen die Infos, ein Datensatz je eMail. Lokal funktioniert die Satzsperre ja normalerweise gut.
Die Versender EXE (egal ob per Runshell gestartet, oder im Dauerlauf nach neuen Sätzen suchend, versendet den ersten offenen und schreibt z.B. die LOG in ein Feld, zumindest ändert es den Versandstatus und dokumentiert die Zeit.
Gruß
Hubert

Benutzeravatar
Marcus Herz
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 120
Registriert: Mo, 16. Jan 2006 8:13
Wohnort: Allgäu
Hat sich bedankt: 1 Mal
Kontaktdaten:

Re: ComObjekt zerstört Xbase Programm Fenster

Beitrag von Marcus Herz » Sa, 09. Mai 2020 22:00

Hi
Ich hatte bei eine Kunden auch Probleme mit Outlook, spätestens mit 365. Es muss aber über Outlook erfolgen, damit es protokolliert ist.
Ich stelle die Mails jetzt alle in Entwürfe, kein direktes Versenden mehr. Das klappt bisher problemlos. Und man kann gegebenfalls den Body ergänzen.

Benutzeravatar
HaPe
Foren-Moderator
Foren-Moderator
Beiträge: 833
Registriert: So, 15. Nov 2015 17:44
Wohnort: 71665 Vaihingen-Enz
Hat sich bedankt: 2 Mal

Re: ComObjekt zerstört Xbase Programm Fenster

Beitrag von HaPe » So, 10. Mai 2020 11:51

Hallo Marcus !
Es muss aber über Outlook erfolgen, damit es protokolliert ist.
Wer sagt das bzw. gibt das vor?

Ich gehe bei der automatisierten Versendung von E-Mails ähnlich wie Martin vor.
Ein separates Programm liest zeitgesteuert die E-Mail-Job-Tabelle aus und versendet alle aufgelaufenen E-Mail direkt per SMTP mit Kopie der E-Mail an den Versender selbst (dann hat er eine Kopie in Outlook/seinem E-Mail-Programm). Somit ist nicht nur der Versand der E-Mail protokolliert sondern auch dass es der E-Mail-Provider auch versendet hat 8)

Ok, für Carlos Problem hilft das nicht direkt, wenn er schreibt der Versender muss eventuell noch händisch etwas in der E-Mail ergänzen.
--
Hans-Peter

Organisator der XUG Stuttgart
Beisitzer des Deutschsprachige Xbase-Entwickler e. V.

ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1765
Registriert: Mi, 28. Jul 2010 17:16

Re: ComObjekt zerstört Xbase Programm Fenster

Beitrag von ramses » So, 10. Mai 2020 18:53

Es wäre schön das ursprüngliche Problem zu finden und zu beseitigen.

Ich habe heute ein Entwurf einer voll funktionsfähigen Notlösung zum Problem entworfen. Das Design ist noch nicht fertig.
Anstelle von Outlook rufe ich nun den Browser mit dem Mail auf. Hier kann der Sachbearbeiter noch die nötigen Anpassungen vornehmen. Wenn dies nötig ist. Der Editor im Browser bietet alle erforderlichen Möglichkeiten. Der Versand erfolgt dann nicht mehr über Outlook sondern direkt durch die App/Server der Sachbearbeiter erhält dann noch eine BC.

Ich werde morgen den Funktions-Entwurf mit den betroffenen Kunden besprechen. Mal schauen ob dies ankommt .......
Dateianhänge
44.jpg
44.jpg (95.24 KiB) 766 mal betrachtet
Valar Morghulis

Gruss Carlo

Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12333
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: ComObjekt zerstört Xbase Programm Fenster

Beitrag von AUGE_OHR » Mo, 11. Mai 2020 6:11

hi,
ramses hat geschrieben:
So, 10. Mai 2020 18:53
Ich habe heute ein Entwurf einer voll funktionsfähigen Notlösung zum Problem entworfen.
das ist aber nicht Xbase++, oder :?:
gruss by OHR
Jimmy

ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1765
Registriert: Mi, 28. Jul 2010 17:16

Re: ComObjekt zerstört Xbase Programm Fenster

Beitrag von ramses » Mo, 11. Mai 2020 7:23

AUGE_OHR hat geschrieben:
Mo, 11. Mai 2020 6:11
das ist aber nicht Xbase++, oder :?:
Das Frontend, was du oben siehst ist eine Rohfassung in HTML5 + Javascript das Backend xb2net in xbase++
Der Editor erzeugt Text in HTML. Der Mailversand erfolgt dann in einem Thread des Backends (Webserver) mit der smptklasse(). Wobei ich jetzt daran arbeite SMTP direkt in xb2net zu integrieren weil die logfunktion der smtpklasse() zuwenig Daten liefert.
Valar Morghulis

Gruss Carlo

Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2622
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Kontaktdaten:

Re: ComObjekt zerstört Xbase Programm Fenster

Beitrag von Wolfgang Ciriack » Mo, 11. Mai 2020 10:55

Wobei mir da die falsche Schreibweise (laut Duden) von E-Mail auffällt (nicht e-Mail) :wink:
Viele Grüße
Wolfgang

Antworten