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: 2513
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 12 Mal
Danksagung erhalten: 77 Mal

ComObjekt zerstört Xbase Programm Fenster

Beitrag von ramses »

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: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: ComObjekt zerstört Xbase Programm Fenster

Beitrag von brandelh »

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: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: ComObjekt zerstört Xbase Programm Fenster

Beitrag von AUGE_OHR »

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: 2513
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 12 Mal
Danksagung erhalten: 77 Mal

Re: ComObjekt zerstört Xbase Programm Fenster

Beitrag von ramses »

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: 16501
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: ComObjekt zerstört Xbase Programm Fenster

Beitrag von Martin Altmann »

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
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2513
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 12 Mal
Danksagung erhalten: 77 Mal

Re: ComObjekt zerstört Xbase Programm Fenster

Beitrag von ramses »

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: 2120
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern
Hat sich bedankt: 29 Mal
Danksagung erhalten: 70 Mal

Re: ComObjekt zerstört Xbase Programm Fenster

Beitrag von Werner_Bayern »

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

Werner

<when the music is over, turn off the lights!>
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16501
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: ComObjekt zerstört Xbase Programm Fenster

Beitrag von Martin Altmann »

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
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2513
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 12 Mal
Danksagung erhalten: 77 Mal

Re: ComObjekt zerstört Xbase Programm Fenster

Beitrag von ramses »

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: 2120
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern
Hat sich bedankt: 29 Mal
Danksagung erhalten: 70 Mal

Re: ComObjekt zerstört Xbase Programm Fenster

Beitrag von Werner_Bayern »

ok, danke Martin.
es grüßt

Werner

<when the music is over, turn off the lights!>
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: ComObjekt zerstört Xbase Programm Fenster

Beitrag von brandelh »

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
1000 working lines a day
1000 working lines a day
Beiträge: 851
Registriert: Mo, 16. Jan 2006 8:13
Wohnort: Allgäu
Hat sich bedankt: 39 Mal
Danksagung erhalten: 192 Mal
Kontaktdaten:

Re: ComObjekt zerstört Xbase Programm Fenster

Beitrag von Marcus Herz »

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.
Gruß Marcus

Erkenne, was du findest, dann weißt du, wonach du gesucht hast
Benutzeravatar
HaPe
1000 working lines a day
1000 working lines a day
Beiträge: 995
Registriert: So, 15. Nov 2015 17:44
Wohnort: 71665 Vaihingen-Enz
Hat sich bedankt: 17 Mal
Danksagung erhalten: 15 Mal

Re: ComObjekt zerstört Xbase Programm Fenster

Beitrag von HaPe »

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
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2513
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 12 Mal
Danksagung erhalten: 77 Mal

Re: ComObjekt zerstört Xbase Programm Fenster

Beitrag von ramses »

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) 9835 mal betrachtet
Valar Morghulis

Gruss Carlo
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: ComObjekt zerstört Xbase Programm Fenster

Beitrag von AUGE_OHR »

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: 2513
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 12 Mal
Danksagung erhalten: 77 Mal

Re: ComObjekt zerstört Xbase Programm Fenster

Beitrag von ramses »

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: 2932
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 13 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Re: ComObjekt zerstört Xbase Programm Fenster

Beitrag von Wolfgang Ciriack »

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