Delphi-PRAXiS
Seite 8 von 26   « Erste     678 91018     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   Desktop Widget Engine (v0.72) (https://www.delphipraxis.net/119493-desktop-widget-engine-v0-72-a.html)

littleDave 23. Sep 2008 19:59

Re: Desktop Widget Engine (v0.41)
 
Zitat:

Zitat von NamenLozer
hab ja heir schon länger nichts mehr geschrieben. IMO hat sich das Programm schön entwickelt - Die Widgets und das Haupfenster sehen jetzt noch besser aus, und der Ressourcenverbrauch hat sich auch verbessert (in den letzten Versionen war mir ja noch aufgefallen, wie der Speicherverbracuh mit der Zeit erheblich anstieg).

Das ist wirklich gut zu hören :)

Zitat:

Zitat von NamenLozer
Leider konnte ich das netzwerktrafficwidget und die überarbeiteten Wetter- und Shputbox-widgets nicht testen, weil sich dein "Firewall"-Dialogfeld nicht wegklicken lässt. Ich klicke auf Allow, aber nichts passiert... (bei Not Allow passiert auch nichts).

Ich habs gerade bei mir Reproduzieren können. Irgendwie funktioniert der Dialog nur im Debugger :?. Ich hab eben eine neue Version hochgeladen, die den Fehler nicht mehr drinnen hat. Hab jetzt einfach einen simplen MessageDlg benutzt - der funktioniert jedenfalls. Um den Dialog werd ich mich auch noch kümmern. Danke für den Hinweis.

littleDave 24. Sep 2008 13:48

Re: Desktop Widget Engine (v0.41)
 
Ich hab gerade ein Update hochgeladen, mit dem das Problem mit den Mausevents behoben ist. Das Problem hat betrifft alle Widgets, daher ist ein komplettes Update empfehlenswert. Das Problem äußert sich so, dass man das jeweilige Widget zwar verschieben kann, es aber auf keine Maustasten reagiert. Das Problem dabei war die Methode, mit der ich die Widgets verschiebe.

Das Problem trat bei mir nur auf, wenn ich mehrere Widgets gleichzeitig offen habe, eine genau Zahl konnt ich dabei nicht festlegen. Das Problem ist, dass Windows anscheindend das MouseMove-Event sendet, obwohl die Maus nicht verschoben wurde.

Ich hab jedenfalls das Problem jetzt behoben.
Grüße
Dave :hi:

Larsi 24. Sep 2008 14:04

Re: Desktop Widget Engine (v0.41)
 
Also ich finde das Programm echt super :thumb:

Ich finde nur, das es einfach zu wenig Komponenten gibt zum Beispiel eine Progressbar fehlt mir! Kansnt du mir eventuell den code für diese "Firewall" geben wenn ein Widget Zugang zum Internet braucht? Ich versuch mich schon so lange an einer Firewall aber irgendwie krieg ich das nicht hin. Ist die Firewall überhaupt von dir, ja oder?

littleDave 24. Sep 2008 14:28

Re: Desktop Widget Engine (v0.41)
 
Zitat:

Zitat von Larsi
Also ich finde das Programm echt super :thumb:

Danke für die Blumen :thumb: *freu* :)

Zitat:

Zitat von Larsi
Ich finde nur, das es einfach zu wenig Komponenten gibt zum Beispiel eine Progressbar fehlt mir! Kansnt du mir eventuell den code für diese "Firewall" geben wenn ein Widget Zugang zum Internet braucht? Ich versuch mich schon so lange an einer Firewall aber irgendwie krieg ich das nicht hin. Ist die Firewall überhaupt von dir, ja oder?

Naja, die "Firewall" ist nur für das Programm und keine wirkliche Firewall.

Der Zugriff zum Internet ist so geregelt:
Das Programm an sich bietet jedem Widget die Möglichkeit an, bestimmte Anfragen anfragen ins Internet/Netzwerk zu senden und zu empfangen. Diese Methoden werden von der ScriptEngine nicht direkt aufgerufen - stattdessen wird eine vorgeschaltete Dummy-Methode aufgerufen, die ungefähr so aussieht (mal für IdHTTP):
Delphi-Quellcode:
function TIdHTTP_Get(Sender: TidHTTP; Url: string): string;
begin
  // hier der Security-Layer bzw. die "Firewall"
  if AllowInternetConnection(Url) then
     result := Sender.Get(Url)
  else
     result := '';
end;
Das ganze ist natürlich noch etwas erweitert, aber der Grundaufbau ist so relativ einfach zu beschreiben. Die Funktion AllowInternetConnection schaut dabei ungefähr so aus:
Delphi-Quellcode:
function AllowInternetConnection(Url: string): boolean;
begin
  // Grundlegende Abfrage, ob das Widget überhaupt ins Internet darf
  result := CurrentWidget.Security.NetworkAllowed;
  if result then
  begin
    // Wenn ich hier angekommen bin, darf das Widget ins Internet.
    // Nun muss ich noch überprüfen, ob das Widget ohne Nachrage beim
    // Benutzer ins Internet darf
    if not CurrentWidget.Security.NetworkWithoutUserConfirmation then
    begin
      // Jetzt frag ich den Benutzer ob er das auch erlaubt
      case MessageDlg('Das Widget blablabla will sich zu '+URL+' verbinden.', mtWarning,
                      [mbYes, mbNo], 0) of
      // Benutzer sagt ja
      ID_YES : result := True;
      ID_NO : result := False;
      end;
    end else
    begin
      // Wenn ich hier her komme, dann darf das Widget immer ins Internet
      // - auch ohne den Benutzer zu fragen.
      // Dieser Teil ist zwar nicht im eigendlichen Quelltext und dient hier
      // nur als Verdeutlichung, da result ja schon True ist
      result := True;
    end;
  end;
end;
Wenn du wirklich mal eine in Delphi geschriebene Firewall die anschauen willst (sammt Quelltext), solltest du mal bei SourceForge.net vorbeischauen. Das Ding ist jedoch realtiv komplex und wirklich nicht einfach zu verstehen. Das Programm auf SourceForge benutzt übrigens MadCodeHook (glaub so heißt das), was NICHT OpenSource ist und kostet mit Quelltext ca. 900 USD - ohne Quelltext ca. 200 USD. Wenn du wirklich mal ne Firewall programmieren willst, solltest du dich entweder sehr viel mit CodeInjection oder gleich mit Treiberprogrammierung (zusammen mit einem C/C++ Lehrgang) beschäftigen. Ich denke nicht, dass du das eben innerhalb von 2 Wochen oder gar Monaten schaffen wirst.

Larsi 24. Sep 2008 18:41

Re: Desktop Widget Engine (v0.41)
 
Vielen Dank für deinen ausführlichen Post! Deine Methode, funkitoniert die nur bei Plugins von deine, Programm oder schlägt diese Methode so bei jeder Anwendung "alarm"?

Neutral General 24. Sep 2008 18:52

Re: Desktop Widget Engine (v0.41)
 
Wie soll diese Methode denn bei anderen Programmen Alarm schlagen?

toms 24. Sep 2008 18:54

Re: Desktop Widget Engine (v0.41)
 
Zitat:

Zitat von Larsi
Deine Methode, funkitoniert die nur bei Plugins von deine, Programm oder schlägt diese Methode so bei jeder Anwendung "alarm"?

Zitat:

Zitat von littleDave
Naja, die "Firewall" ist nur für das Programm und keine wirkliche Firewall.

:gruebel: :gruebel: :gruebel:

littleDave 24. Sep 2008 19:05

Re: Desktop Widget Engine (v0.41)
 
Natürlich funktioniert diese Methode nur bei den Widgets :zwinker:. Hab ja keinen Hook - außerdem, warum sollte meine Widget Engine eine Firewall sein ;-)

Zitat:

Zitat von toms
:gruebel: :gruebel: :gruebel:

Fragst du dich gerade, worum es geht? Es geht gerade um den Security-Layer, den ich eingebaut habe. Ich hab da so eine Art Firewall eingebaut, jedoch nur für die Widgets ;-)

littleDave 27. Sep 2008 00:10

Re: Desktop Widget Engine (v0.5)
 
Schon wieder ich :stupid: Version 0.5 ist jetzt online.

Ich hab mal wieder die Widget-Möglichkeiten etwas erweitert. Jetzt ist es möglich, Edit-Felder, CheckBox-Felder sowie Fortschrittsanzeigen hinzuzufügen. Dadurch kann man jetzt schon bessere und interaktivere Widgets erstellen. Was zwar noch fehlt ist die Möglichkeit, mehrere Forms in einem Widget zu benutzen, jedoch bin ich mir noch nicht sicher, wie ich das genau machen will.

Außerdem hab ich mich mal an die Optimierung gesetzt und hab sehr viel rausholen können. Ich habe mal 10 Widgets auf einmal geladen - zusammen mit 6 Fischen. Vorher hatte ich eine CPU-Auslastung von ca. 35-40%, jetzt habe ich eine Auslastung von ca. 2-10%. Zwar habe ich auch eine schnelle CPU (AMD X2 4800+), aber der Performanceschub ist schon gewaltig.

Da ja letztes mal das Problem mit den Maustasten aufkam, hab ich mich mal hingesetzt und eine Lösung gefunden. Nun sollte das Problem nicht mehr auftreten.

Da ich neue Komponenten hinzugefügt habe, hab ich auch gleich zwei neue Widgets erstellt: eine Suche für Google.com und eine Suche für die DelphiPraxis. Dabei muss man einfach nur die Suchbegriffe in das Edit-Feld der Widgets eingeben und der Browser öffnet sich mit der gewünschten Suche. Diesmal ist auch eine ProgressBar für Larsi mit dabei ;-)

Der Download sowie der ChangeLog ist im ersten Post zu finden.
Grüße
Dave

Namenloser 27. Sep 2008 00:24

Re: Desktop Widget Engine (v0.5)
 
Ui, das geht ja echt flott bei dir. Ich wpnschte, ich köme mit meinen Projekten auch so schnell voran...

Also die CPU-Auslastung ist wirklich deutlich gesunken durch das Update. Ich kam mit meinen 6 Widgets (Clock, Shoutbox, 2 Suchfelder, Fisch, Network Traffic) nie über 1% Auslastung (2,4Ghz Quad).

Das Networktraffic-Widget funktioniert bei mir aber nicht, was wahrscheinlich daran liegt, dass ich W-LAN habe.

Ich mag es, wie der Fisch in der neuen Version wegschwimmt, wenn man versucht, ihn zu fangen. Ich hab ihn aber trotzdem erwischt :mrgreen:


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:45 Uhr.
Seite 8 von 26   « Erste     678 91018     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz