AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Brauche Hilfe zu wnd: HWND

Ein Thema von endeffects · begonnen am 25. Feb 2007 · letzter Beitrag vom 25. Feb 2007
Antwort Antwort
endeffects

Registriert seit: 27. Jun 2004
450 Beiträge
 
#1

Brauche Hilfe zu wnd: HWND

  Alt 25. Feb 2007, 16:20
Hallo,

ich bin auf der Suche nach einem vernünftigen Lösungsansatz
für folgendes Problem:

Also ich möchte eine fremde Anwendung mehrfach ausführen und überwachen.
Beim starten übergebe ich mit Hilfe von ShellExecute für jede Instanz
unterschiedliche Parameter die dann von der Anwendung parallel abgearbeitet
werden sollen. Nun hab ich mir gedacht das ich die handle der einzelnen
Fenster mit den jeweiligen Parametern in eine Stringliste lege und diese
über einen Timer in regelmäßigen Abständen überprüfe.

Dabei geht es eigentlich nur darum zu überprüft ob evtl. eine Instanz
abgestürzt ist und mit den selben Parametern neu gestartet werden muss.

Meine Idee mit der Stringliste die ich ständig parsen müßte finde ich
aber weniger toll und so wirklich im klaren wie ich die verschiedenen
Instanzen überwachen kann bin ich mir auch noch nicht.

Gibts da draußen vielleicht Jemanden der mir da ein wenig unter die Arme greifen mag?

Mfg
  Mit Zitat antworten Zitat
BenjaminH

Registriert seit: 14. Okt 2004
Ort: Freiburg im Breisgau
713 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Brauche Hilfe zu wnd: HWND

  Alt 25. Feb 2007, 16:25
Du willst die Werte nur im Zusammenhang speichern?
Wie wärs dann mit einem Array of Record?
Delphi-Quellcode:
type
Instanz = record
            wnd:HWND;
            FileName, Path, Param:String;
          end;


Var
  Instanzen:Array of Instanz;
Benjamin
  Mit Zitat antworten Zitat
endeffects

Registriert seit: 27. Jun 2004
450 Beiträge
 
#3

Re: Brauche Hilfe zu wnd: HWND

  Alt 25. Feb 2007, 16:43
oh danke, aber mit records hab ich noch nie wirklich viel gemacht,
wie füg ich denn da informationen hinzu und wie kann ich die
nach informationen (handle) durchsuchen?
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

Re: Brauche Hilfe zu wnd: HWND

  Alt 25. Feb 2007, 16:46
Delphi-Quellcode:
Instanz[Index].wnd := Wert;
Wert := Instanz[Index].wnd;

Instanz.Filename := 'Test';
Str := Instanz.Filename;

//usw
Also praktisch "ganz normal"... Du weißt wie man mit dynamischen Arrays umgeht ?

Gruß
Neutral General
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
endeffects

Registriert seit: 27. Jun 2004
450 Beiträge
 
#5

Re: Brauche Hilfe zu wnd: HWND

  Alt 25. Feb 2007, 16:55
leider nicht so wirklich und ich bin auch ein wenig übermüdet,
was momentan nicht grad förderlich ist, also ich hab es nun wie folgt
eingebunden:

Delphi-Quellcode:
type
  TInstanz = record
            wnd:HWND;
            Params:String;
  end;
  TMainForm = class(TForm)
  ...

var
  MainForm: TMainForm;
  Instanzen: Array of TInstanz;

implementation

...

procedure TMainForm.Button1Click(Sender: TObject);
var w: HWND;
begin
  w := FindWindow(nil, 'Rechner');
  if w <> 0 then
  begin
    with Instanzen do // hier meckert er - record, objekt oder klassentyp erforderlich
    begin
      wnd:= w;
      Params:= 'test';
    end;
  end;
end;
wie du siehst bin ich noch nicht sehr weit und einen fehler gibt es auch gleich =(
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#6

Re: Brauche Hilfe zu wnd: HWND

  Alt 25. Feb 2007, 17:10
Also Instanzen ist ein Array.. In diesem Fall ein dynamisches... Erstmal was generelles zu Arrays:

Delphi-Quellcode:
var
  IntArray: Array[0..5] of Integer;
Das ist ein statisches Array. Damit hast du gleich 6 (nicht 5!) Integervariablen definiert.
Das ist etwa das gleiche als würdest du

Delphi-Quellcode:
var
  IntArray0: Integer;
  IntArray1: Integer;
  IntArray2: Integer;
  IntArray3: Integer;
  IntArray4: Integer;
  IntArray5: Integer;
Nur eben in einer Zeile

Auf ein statisches Array kannst du folgendermaßen zugreifen:

Delphi-Quellcode:
// schreiben
IntArray[0] := 5;
IntArray[3] := 10;
// lesen
Caption := IntToStr(IntArray[0]);
Nun jetzt hast du kein IntegerArray sondern ein Array vom Datentyp "Instanz" -> Ein Record.

Zugriff:

Delphi-Quellcode:
var
  Instanzen: Array[0..5] of Instanz;

// schreiben
Instanzen[0].wnd := FindFindow(...);
Instanzen[3].wnd := FindFindow(...);
// lesen
Caption := IntToStr(Instanzen[3].wnd);
Verstanden? Nunja der Nachteil bei einem statischen Array ist das du nur eine vordefinierte Anzahl an Daten in ihm speichern kannst. Lösung: Dynamische Arrays:

Auf ein dynamisches Array kannst du nicht einfach so zugreifen!
Du musst dem Array erst eine Größe zuordnen. Das geht mit Delphi-Referenz durchsuchenSetLength:

Delphi-Quellcode:
var
  Instanzen: Array of Instanz;

SetLength(Instanzen,6); // Nun hast du ein Array[0..5] of Instanz
SetLength(Instanzen,3); // Nun hast du ein Array[0..2] of Instanz
// usw...
Wenn du SetLength vergisst, dann bekommst du eine Zugriffsverletzung...
Auf ein dynamisches Array greifst du genaus zu wie auf ein statisches, nur musst du vorher die Länge setzen!

Ich hoffe ich konnte dir das ganze mal etwas verständlich erklären, sodass du jetzt alleine klar kommst... Ansonsten frag einfach nochmal nach

Gruß
Neutral General
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 15:49 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