Autor Beitrag
Jean-Christoph
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 54



BeitragVerfasst: Fr 16.07.04 10:28 
Wie kann ich denn ein Fenster für ein Programm (IE), dass ich mit
ausblenden Delphi-Quelltext
1:
MyHwnd := ShellExecute(0'open', PChar(ts), PChar(url), nil, SW_SHOW);					

geöffnet habe wieder schließen?

Moderiert von user profile iconPeter Lustig: Delphi-Tags hinzugefügt
MartinPb
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 698



BeitragVerfasst: Fr 16.07.04 11:22 
Hab die genaue ShellExecute Definition nicht bei, aber ich glaube nicht, daß ShellExecute ein Handle zurückgibt. Mit Suche in: Delphi-Forum, Delphi-Library CREATEPROCESS kommst dua ber weiter.

_________________
Gruß
Martin
maxk
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1696
Erhaltene Danke: 1

Win XP, Debian Lenny
Delphi 6 Personal
BeitragVerfasst: Fr 16.07.04 11:25 
Win32SDK hat folgendes geschrieben:
if the function succeeds, the return value is the instance handle of the application that was run, or the handle of a dynamic data exchange (DDE) server application.
Also irgenwie muss es schon gehen! Wobei CreateProcess natürlich der sichere Weg wäre. Zumal man ShellApi nicht einbinden müsste.

_________________
Ein Computer wird das tun, was Du programmierst - nicht das, was Du willst.
Jean-Christoph Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 54



BeitragVerfasst: Fr 16.07.04 11:49 
Titel: Shellexecute
Danke für deine Antwort.

Den Handle habe ich in MyHwnd.
Mit isWindow(MyHwnd) erkenne ich auch das Fenster.

ausblenden Delphi-Quelltext
1:
2:
if isWindow(MyHwnd) then
 Closehandle(MyHwnd)


bringt leider ein Zurgriffsverletzung?
Und jetzt weis ich erstmal nicht weiter
und versuche mit CreateProcess weiter zu kommen.

Moderiert von user profile iconKlabautermann: Delphi-Tags hinzugefügt.
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 16.07.04 12:31 
Shellexecute liefert keinen Jandle unter 32-Bit Windows zurück, mit dem man was anfangen könnte. Es ist nur ein Fehlercode.
PSDK hat folgendes geschrieben:

Returns a value greater than 32 if successful, or an error value that is less than or equal to 32 otherwise. The following table lists the error values. The return value is cast as an HINSTANCE for backward compatibility with 16-bit Windows applications. It is not a true HINSTANCE, however. The only thing that can be done with the returned HINSTANCE is to cast it to an int and compare it with the value 32 or one of the error codes below.


Nimm ShellexecuteEx oder CreateProcess.
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 16.07.04 13:27 
maxk hat folgendes geschrieben:
Win32SDK hat folgendes geschrieben:
[...]

Vergiss diese "Win32.hlp"-Datei. Nicht nur in diesem Fall (ShellExecute) ist die Aussage hoffnungslos veraltet.
maxk
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1696
Erhaltene Danke: 1

Win XP, Debian Lenny
Delphi 6 Personal
BeitragVerfasst: Fr 16.07.04 13:29 
:bawling:

_________________
Ein Computer wird das tun, was Du programmierst - nicht das, was Du willst.
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 16.07.04 13:38 
Ich wollt´s nur anmerken. War nicht persönlich gemeint. Wenn du kannst, dann hole dir das PSDK. Oder lass es dir herunterladen, wenn du selbst kein DSL hast.
Brainiac
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Sa 17.07.04 15:26 
@Jean-Christoph:
Also CloseHandle ist meiner Meinung nach auch nicht der richtige Befehl. Ich würde lieber DestroyWindow nehmen, oder PostMessage in Verbindung mit WM_CLOSE.

@Alle:
Ich hab aber ein ähnliches Problem und vielleicht kann mir da auch jemand helfen...
Ich suche eine Möglichkeit, wie mein Programm darüber informiert werden kann, sobald das von mir geöffnete Fenster wieder geschlossen wird. Um genau zu sein, will ich ein Editor-Fenster öffnen in dem der User etwas verändern kann und sobald dieses Fenster geschlossen wird, soll meine Anwendungen die Änderungen dann umsetzen.
maxk
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1696
Erhaltene Danke: 1

Win XP, Debian Lenny
Delphi 6 Personal
BeitragVerfasst: Sa 17.07.04 17:04 
Neues Thema, neuer Thread :?
Aber ich würde einen Shellhook schreiben, der solange warte, bis WM_Close an den Editor gesendet wird. Ist es soweit, würde ich die Daten auslesen und der Sache seinen Lauf lassen 8)

_________________
Ein Computer wird das tun, was Du programmierst - nicht das, was Du willst.