AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Logikproblem mit Fokus

Ein Thema von Sweex · begonnen am 25. Jun 2015 · letzter Beitrag vom 27. Jun 2015
Antwort Antwort
Seite 1 von 2  1 2      
Sweex

Registriert seit: 25. Jun 2015
10 Beiträge
 
#1

Logikproblem mit Fokus

  Alt 25. Jun 2015, 06:48
Hallo Leute!
Ich habe ein ganz spezielles Problem und bin leider noch recht frisch in Delphi. Ich habe eine Anwendung geschrieben die verschiedene Webseiten von mir überwacht und auf einen Fehlerfall prüft. Diese soll mehrmals ausgeführt werden und jeweils in den Vordergrund springen, wenn keine andere Anwendung einen Fehlerfall meldet. Es muss so gemacht werden, da ich nicht immer alle Webseiten überwachen muss. Ich bin erst seit kurzem dabei mir Delphi anzuschauen und steige gerade erstmal in die Materie ein.
Ich möchte also das meine Anwendung bis zu 4 mal gestartet werden kann. Dazu benne ich die Anwendung in Anwendung.exe bis Anwendung 4.exe um, fertige also 4 Kopien an. Die Anwendung weiß, welche Kopie sie ist (per FileNameExtract). Jede einzelne überwacht eine andere Webseite.

Jetzt suche ich nach der einfachsten Lösung um das irgendwie umzusetzen. Alles was ich bisher versucht habe hat einfach nicht funktioniert. Wie kann ich es Lösen das:
-Die Anwendung den Fokus auf die Anwendung setzt die den Fehlerfall hat (es können mehrere Fehlerfälle bei den Anwendungen gleichzeitig vorkommen) aber erst wenn der aktuelle Fehler behoben wurde das er dann einfach den nächsten Fehlerfall in den Focus bringt (ich habe bisher die Entertaste abgefangen dafür - das möchte ich beibehalten).

Ich habe es bisher so versucht, das ich eine gemeinsame Ini datei beschrieben habe und im Fehlerfall hat jede Anwendung ein Haltesignal gesetzt. z.B. wenn Anwendung 3 einen Fehler hatte dann schrieb sie HalteSignal3=True in die Ini Datei. Jetzt hatte ich einen Timer der prüft, ob ein HalteSignal gesetzt ist, wenn nicht sollte er dann zur Anwendung mit Fehlerfall springen. Mit Enter wurde das HalteSignal der Anwendung dann zurückgesetzt. Das funktionierte leider nicht. Sobald mehrere Fehlerfälle vorkamen, stand logischerweise alles.

Mein Kopf raucht. Wer kennt eine einfache Lösung?

Geändert von Sweex (25. Jun 2015 um 06:56 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.153 Beiträge
 
Delphi 12 Athens
 
#2

AW: Logikproblem mit Fokus

  Alt 25. Jun 2015, 08:02
Was heißt "überwachen"?

Sind die Programme wirklich 100% der Zeit damit beschäftigt? (oder kann das Einer nacheinander, bzw. im Kreis abarbeiten)

Warum kopiieren und nicht einfach mehrfach starten? Delphi-Referenz durchsuchenParamStr

Oder wie wäre es mit Multithreading? Delphi-Referenz durchsuchenTThread

Und das Hauptproblem löst man z.B. via IPC (oder Messages).
Oder man trennt es erst garnicht in mehrere Anwendungen auf.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (25. Jun 2015 um 08:07 Uhr)
  Mit Zitat antworten Zitat
Mikkey

Registriert seit: 5. Aug 2013
265 Beiträge
 
#3

AW: Logikproblem mit Fokus

  Alt 25. Jun 2015, 08:04
Du kannst das mit einem Mutex (CreateMutex /OpenMutex ) lösen, die Anwendung, die zuerst den Fehlerfall entdeckt, reserviert sich den, die anderen kommen dann nicht dran.

Aber ich glaube, mit den mehreren Anwendungen machst Du Dir das Leben unnötig schwer. Wenn Du in einer Anwendung alle Webseiten prüfst, können sich die Prüf-Abläufe leichter gegenseitig informieren.
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#4

AW: Logikproblem mit Fokus

  Alt 25. Jun 2015, 08:58
Ich stimme den bisherigen Antworten zu, die Lösung mit mehreren Anwendungen ist nicht nur unnötig umständlich, sondern auch unmöglich zu bedienen.
Wenn die Intervalle zum Laden der Website groß genug sind, dann braucth man sich auch nicht mit Threads beschäftigen, sondern kann das nacheinander machen.

Die Anwendung kann dann auch gleich alle Fehler anzeigen, nach Wichtigkeit sortieren, usw.
  Mit Zitat antworten Zitat
Sweex

Registriert seit: 25. Jun 2015
10 Beiträge
 
#5

AW: Logikproblem mit Fokus

  Alt 25. Jun 2015, 11:15
Ich bin gerade noch unterwegs, ich kann das Programm nicht einfach neuschreiben, es ist bereits riesig und war halt nie dafür gedacht das es diese Anforderungen mal erfüllen muss. Ich schaue mir Mutex und IPC mal an, aber ein Haltesignal reicht ja definitiv nicht, es muss dann auf jeden Fall sofort zum nächsten Fehlerfall (nach dem Drücken von Enter) umspringen. Ja das Programm ist eine Form mit TWebbrowser die die Seite jede Sekunde einmal abfragt (ist zeitkritisch) und dann analysiert und hat einen großen Automatisierungswasserkopf dahinter, der verschiedene andere Sachen steuert usw. Ein neuschreiben würde mir größte Bauchschmerzen bereiten

Edit: Ja die Programme können es nicht sequenzell machen, das abfragen muss parallel erfolgen. Ursprünglich war die Anwendung nur für eine Seite geschrieben, daher das Problem

Geändert von Sweex (25. Jun 2015 um 11:35 Uhr)
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.733 Beiträge
 
Delphi 6 Enterprise
 
#6

AW: Logikproblem mit Fokus

  Alt 26. Jun 2015, 09:20
Hallo,

kannst du das micht so umschreiben, dass jede Anwendung einen Fehlerfall meldet, indem Sie ihn in eine Tabelle (einer DB) schreibt, mit allen nötigen Infos, wobei die Tabelle ein Auto-Inc-ID Feld haben sollte, sowie ein Feld "FehlerErstmaligEntdeckt".
So sammeln sich u.U. in der Tabelle die Fehlerfälle, wobei man das u.U. so machen könnte, dass wenn ein Fehlerfall gemeldet werden soll, der schon vorhanden (und noch nicht behoben) ist, so wird da einfach nur die Zeit im Feld "FehlerZuletztEndeckt" aktualisiert.

In einer neuen Anwendung schaust du halt in diese Tabelle, nimmst den obersten nicht behandelten Fehlerfall, bearbeitest ihn, löschst ihn in der Tabelle oder makierst in als erledigt.

So können alle Anwendungen alleine fröhlich vor sich hinarbeiten und die Anzeige und Bearbeitung der Fehler machst du in einer ganz anderen, neuen Anwendung, die ja ruhig auf den anderen aufbauen kann.
Ralph
  Mit Zitat antworten Zitat
BadenPower

Registriert seit: 17. Jun 2009
616 Beiträge
 
#7

AW: Logikproblem mit Fokus

  Alt 26. Jun 2015, 09:46
Ja das Programm ist eine Form mit TWebbrowser die die Seite jede Sekunde einmal abfragt (ist zeitkritisch) und dann analysiert und hat einen großen Automatisierungswasserkopf dahinter, der verschiedene andere Sachen steuert usw.
Das klingt für mich wie ein Spionage-Tool, welches fremde WebSeiten durchforstet und die dortigen Aktivitäten protokolliert. Die eigenen Webseiten können es eigntlich ja nicht sein, denn dann hätte man andere Zugriffsmöglichkeiten (z.B Datenbank) um die angezeigen Daten auszulesen.
Programmieren ist die Kunst aus Nullen und Einsen etwas sinnvollen zu gestalten.
Der bessere Künstler ist allerdings der Anwender, denn dieser findet Fehler, welche sich der Programmierer nicht vorstellen konnte.
  Mit Zitat antworten Zitat
Benutzerbild von bernau
bernau

Registriert seit: 1. Dez 2004
Ort: Köln
1.268 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Logikproblem mit Fokus

  Alt 26. Jun 2015, 10:00
Das klingt für mich wie ein Spionage-Tool, welches fremde WebSeiten durchforstet und die dortigen Aktivitäten protokolliert.
Nicht immer alles so negativ sehen

Das klingt für mich wie ein Spionage-Tool, welches fremde WebSeiten durchforstet und die dortigen Aktivitäten protokolliert. Die eigenen Webseiten können es eigntlich ja nicht sein, denn dann hätte man andere Zugriffsmöglichkeiten (z.B Datenbank) um die angezeigen Daten auszulesen.
Wenn die Webanwendung auf einem entfernten Server liegt, auf dem man nicht direkten Zugriff hat, oder man auf diesem entfernten Server aus sicherheitsgründen nicht auf die Datenbank direkt zugreifen will, dann macht das schon Sinn.
Gerd
Kölner Delphi Usergroup: http://wiki.delphitreff.de
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: Logikproblem mit Fokus

  Alt 26. Jun 2015, 10:03
[OT]In diesem Fall würde ich dann eine entsprechende Möglichkeit auf dem Server schaffen.[/OT]
Markus Kinzler
  Mit Zitat antworten Zitat
Sweex

Registriert seit: 25. Jun 2015
10 Beiträge
 
#10

AW: Logikproblem mit Fokus

  Alt 27. Jun 2015, 08:48
Hallo

Also die Idee mit der DB ist dann die beste Lösung gerade für mich vielen Dank Das werde ich so umsetzen und ich weiß das funktioniert auch wunderbar. Ich weiß ich muss noch viel lernen in Delphi, aber ich habe ja praktisch gerade auch erst angefangen.

Und Nein, Es ist kein Spionageprogramm, nur die Software die die Webseiten auswirft ist nicht quelloffen und auch nicht konfigurierbar. ich habe keine Chancen da irgendwas umzustellen, also nicht einfach ein Apache oder oder irgendwas, von dem ich mir zutrauen würde da rumzustricken. Zumal wird im LAN abgefragt, ich belaste also nicht das Netz mit den Seitenabfragen. Seitdem es halbwegs bezahlbare BTX Tarife bei der Telekom gab bin ich im Netz unterwegs und finde die Entwicklung des Internets als Werbungs- und Datenkrake schrecklich. Ich bin der letzte, der sowas unterstüzten würde. Das zu meinen Ansichten
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:27 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz