Autor |
Beitrag |
patrick
      
Beiträge: 1481
WIN2k, WIN XP
D6 Personal, D2005 PE
|
Verfasst: Mo 14.10.02 21:33
wie und womit mach ich das am besten?
ich denk da an was spanisches
OLE (ha schenkelklopfer  )
THX
_________________ Patrick
im zweifelsfall immer das richtige tun!!!
|
|
Popov
Gast
Erhaltene Danke: 1
|
Verfasst: Mo 14.10.02 21:41
Ganz einfach. Wenn du das fremde Programm nicht auf dem Monitor sehen kannst, dann ist es wahrscheinlich geschlossen 
|
|
Cashels
      
Beiträge: 167
|
Verfasst: Mo 14.10.02 21:56
Hi Patrick,
die Funktion FindWindow übergibt dir das Handle des zu suchenden Fensters. Ist es null, wurd nix gefunden, also ist die Anwendung geschlossen.
Quelltext 1:
| FindWindow (nil,PChar(Fenstertitel)) ; |
Wobei Fenstertitel, ja, den Titel des Fensters angibt
Gruss,
tom
|
|
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Di 15.10.02 08:20
Und ich sage es schon wieder: so ein Fenstertitel kann sich ändern. Aus welchen Gründen auch immer. Besser ist es daher nach dem Klassennamen zu suchen. Und das ist der erste Parameter bei "findwindow".
So ein Fenstertitel lässt sich ja auch programmgesteuert ändern.
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Di 15.10.02 08:32
Popov hat folgendes geschrieben: | Ganz einfach. Wenn du das fremde Programm nicht auf dem Monitor sehen kannst, dann ist es wahrscheinlich geschlossen  |
Und was ist mit den Programmen, die ohne Fenster im Hintergrund laufen?
|
|
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Di 15.10.02 11:44
Luckie hat folgendes geschrieben: | Und was ist mit den Programmen, die ohne Fenster im Hintergrund laufen? |
Das ist der Pfau-Modus, Luckie - Kopf in Sand; und was man nicht sieht, ist auch nicht da. Aber ich glaube, popov hatte das mehr als Spaß gemeint.
|
|
patrick 
      
Beiträge: 1481
WIN2k, WIN XP
D6 Personal, D2005 PE
|
Verfasst: Di 15.10.02 12:31
@Popov wenn das so einfach dann erzähl das mal meinem programm
aber im ernst
ich brauch den befehl um ein anderes programm zu öffnen nachdem das erste programm beendet wurde.
hilft das irdendwie weiter 
_________________ Patrick
im zweifelsfall immer das richtige tun!!!
|
|
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Di 15.10.02 12:55
Zitat: | hilft das irdendwie weiter |
Tja, dir offenbar nicht.  Du hast doch die Lösungen. Du prüfst, ob das Fenster vorhanden ist - z.B. timer-gesteuert - und wenn nicht, dann startest du das andere Programm.
Oder du schaust mal in die Sparte " Dateizugriff", bzw. hier. Dort findest du einen Befehl, mit dem du Programme starten und auf deren Ende warten kannst! Logischerweise, wenn das Programm dann beendet ist, kannst du das nächste starten usw.
|
|
Popov
Gast
Erhaltene Danke: 1
|
Verfasst: Di 15.10.02 16:24
@patrick
Ich hab deswegen meine Antwort gegeben, weil ich nicht wußte was (oder genauer wie) du da machen willst. Verwirt hat mich da das Wort OLE. Wenn es ein normales Programm ist, dann kommst du um FindWindow (oder vergleichbares) nicht rum. Wenn es sich um ein OLE-Automation fähiges Programm handelt, dann gibt es den Weg über CreateOleObject. Das funktioniert so: Läuft das Programm, dann wird eine Verbindung zu diesem Programm hergestellt. Läuft das Programm momentan nicht, dann startet Windows das Programm selbst und stellt dann die Verbindung her.
Um das etwas genauer zu beschreiben muß ich wissen was für ein Programm das ist.
|
|
patrick 
      
Beiträge: 1481
WIN2k, WIN XP
D6 Personal, D2005 PE
|
Verfasst: Di 15.10.02 20:15
ich habs ja auch scherzhaft gemeint
danke für die antworten
THX
_________________ Patrick
im zweifelsfall immer das richtige tun!!!
|
|
patrick 
      
Beiträge: 1481
WIN2k, WIN XP
D6 Personal, D2005 PE
|
Verfasst: Do 31.10.02 22:10
ich geb mich jetzt mal ganz fantasielos:  aber wie bau ich den befehl in eine if schleife ein.
mit true und false is ja net viel da der ausgabewert in hwnd ist
und damit kann ich gar nichts anfangen 
_________________ Patrick
im zweifelsfall immer das richtige tun!!!
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Do 31.10.02 22:25
Man kann if nicht nur au´f TRUE oder FALSE prüfen. 
|
|
patrick 
      
Beiträge: 1481
WIN2k, WIN XP
D6 Personal, D2005 PE
|
Verfasst: Fr 01.11.02 02:10
das weiß ich ...
so n newbie bin ich nun auch wieder net. :
aber was für ein wert denn ausgegeben wird, wenn das fenster vorhanden bzw nicht vorhanden ist, das weiß ich nicht.
kannst du mir einfach eine fertige if abfrage schreiben?? 
_________________ Patrick
im zweifelsfall immer das richtige tun!!!
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Fr 01.11.02 02:16
FindWindow
0 oder der Fensterhandle und der ist ungleich 0.
|
|
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Fr 01.11.02 08:54
Luckie hat folgendes geschrieben: | Man kann if nicht nur au´f TRUE oder FALSE prüfen. |
Gib mir mal ein Gegenbeispiel, Luckie. Ich stehe irgendwie auf dem Schlauch bei dieser Behauptung und sage im Moment, dass man -strenggenommen!- bei if/ then/ else nur prüfen kann, ob eine Bedingung zutrifft (true) oder nicht (false). Welche Variablentypen du dafür heranziehst, das mag egal sein, aber letztlich führt immer alles zu einem boolschen Vergleich:
Quelltext 1: 2:
| Wenn (szName = 'Mathias') Dann Wenn (szIrgendeineZahl = 127) Dann |
patrick hat folgendes geschrieben: | so n newbie bin ich nun auch wieder net.
(...)
kannst du mir einfach eine fertige if abfrage schreiben?? |
Dadurch begreifst du es aber nicht, und müsstest -wenn du mal wieder vor dem selben Problem stehst- wieder nachschauen oder wieder nachfragen.
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Fr 01.11.02 14:09
MathiasSimmack hat folgendes geschrieben: | Luckie hat folgendes geschrieben: | Man kann if nicht nur au´f TRUE oder FALSE prüfen. |
Gib mir mal ein Gegenbeispiel, Luckie. Ich stehe irgendwie auf dem Schlauch bei dieser Behauptung und sage im Moment, dass man -strenggenommen!- bei if/then/else nur prüfen kann, ob eine Bedingung zutrifft (true) oder nicht (false). |
Ja du hast natürlich recht. Aber er war so festgefahren mit seinem TRUE/FALSE, dass ich ihm damit sagen wollte dass man auch was mit if auf seinen Wahrheitgehalt prüfen kann, was nicht nur TRUE/FALSE zurückliefert, sondern auch Werte wie null oder ungleich null.
|
|