AGB  ·  Datenschutz  ·  Impressum  







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

RunProcess ohne EXE sondern mit Datei?

Ein Thema von Sharky · begonnen am 5. Aug 2006 · letzter Beitrag vom 5. Aug 2006
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#1

RunProcess ohne EXE sondern mit Datei?

  Alt 5. Aug 2006, 11:26
Hai ihr,

ich möchte aus meiner Anwendung heraus eine Datei öffnen und warten bis das Programm mit dem die Dateigeöffnet wurde wieder beendet ist.

Ich dachte das könnte ich mit Luckies RunProcess aus diesem Beitrag machen. Aber das geht wohl nicht.

Der Hintergrund ist dieser:
Die "Datei" wird aus einer Datenbankgeholt, dann in ein TMP-Verzeichniss geschrieben. Jetzt soll sie mit der verknüpften Anwendung geöffnet werden und danach wieder (wenn sie sich geändert hat) in die Datenbank geschrieben werdern.

Hat da einer von euch eine Idee?
Stephan B.
  Mit Zitat antworten Zitat
fwsp
(Gast)

n/a Beiträge
 
#2

Re: RunProcess ohne EXE sondern mit Datei?

  Alt 5. Aug 2006, 11:33
für die öffnung einer datei mit dem standard-programm ist shellexecute vorgesehen.
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: RunProcess ohne EXE sondern mit Datei?

  Alt 5. Aug 2006, 11:42
Genauer:

ShellExecute(Handle, 'open', 'FileName', nil, nil, 0);
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#4

Re: RunProcess ohne EXE sondern mit Datei?

  Alt 5. Aug 2006, 11:48
Zitat von fwsp:
für die öffnung einer datei mit dem standard-programm ist shellexecute vorgesehen.
ShellExecute ist mir bekannt

Aber was soll mir das bei dem oben beschriebenem Problem helfen?
Stephan B.
  Mit Zitat antworten Zitat
fwsp
(Gast)

n/a Beiträge
 
#5

Re: RunProcess ohne EXE sondern mit Datei?

  Alt 5. Aug 2006, 11:51
dann eben ShellExecuteAndWait.
gibt es in der CodeLib.
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#6

Re: RunProcess ohne EXE sondern mit Datei?

  Alt 5. Aug 2006, 12:06
Zitat von fwsp:
dann eben ShellExecuteAndWait. ...
Hai fwsp,

bei verwendung dieser Funktion gibt es leider Probleme. Wenn ich zum Beispiel ein Bild öffne (bei mir mit ACDSee verkünpft) geht alles wie es soll. Wenn ich aber eine MS-Word Datei öffne hängt sich meine Anwendung nach dem beenden von Word auf.
Stephan B.
  Mit Zitat antworten Zitat
fwsp
(Gast)

n/a Beiträge
 
#7

Re: RunProcess ohne EXE sondern mit Datei?

  Alt 5. Aug 2006, 12:12
Ich glaub die JEDI hat auch so ne funktion. weiß grad nicht wie die heißt, bestimmt aber jvShellExecuteAndWait
  Mit Zitat antworten Zitat
Benutzerbild von Michael Habbe
Michael Habbe

Registriert seit: 10. Aug 2005
264 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: RunProcess ohne EXE sondern mit Datei?

  Alt 5. Aug 2006, 12:21
Meines Wissens ist ShellExecute da nicht für geeignet, ich habe vor Jahren mal ein Datenbankabgleichtool geschrieben und dort habe ich CreateProcess verwendet:

Delphi-Quellcode:
var StartupInfo: TStartupInfo;
    ProcessInfo: TProcessInformation;
begin
  FillChar(StartupInfo, SizeOf(TStartupInfo), 0);
  StartupInfo.cb := Sizeof(TStartupInfo);
  StartupInfo.dwFlags := STARTF_USESHOWWINDOW;
  StartupInfo.wShowWindow:=SW_HIDE;

  if CreateProcess(nil, // Anwendungsname
                   PChar(Params), // Parameter
                   nil, // Security
                   nil, // Security
                   False,
                   NORMAL_PRIORITY_CLASS, // Priorität
                   nil, // Environment
                   'c:\', // Verzeichnis
                   StartupInfo,
                   ProcessInfo) then
  begin
    if WaitForSingleObject(ProcessInfo.hProcess, 600000) = WAIT_TIMEOUT then
      WriteProtokoll('CreateProcess', 'OK ~ FAILED', 'Timeout')
    ilse
      WriteProtokoll('CreateProcess', 'OK', '');
    CloseHandle(ProcessInfo.hProcess);
  end
  else
    WriteProtokoll('CreateProcess', 'FAILED', '');

  ...
Der Prozess wird gestartet. Dann wird auf das Ende gewartet oder das Warten nach 600 sec abgebrochen.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: RunProcess ohne EXE sondern mit Datei?

  Alt 5. Aug 2006, 12:52
Moin Sharky,

Zitat von Sharky:
Wenn ich zum Beispiel ein Bild öffne (bei mir mit ACDSee verkünpft) geht alles wie es soll. Wenn ich aber eine MS-Word Datei öffne hängt sich meine Anwendung nach dem beenden von Word auf.
Das kann ich nicht nachvollziehen (Word 2003).

Ausserdem solltest Du den Aufruf in einen eigenen Thread auslagern, da das WaitForSingleObject sonst ja Deinen Hauptthread blockiert.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#10

Re: RunProcess ohne EXE sondern mit Datei?

  Alt 5. Aug 2006, 15:36
Zitat von Michael Habbe:
...und dort habe ich CreateProcess verwendet: ...
Hai Michael,

das ist ja letztendlich das gleich wie in der Funktion von Luckie aus meinem ersten Beitrag. Dort wird CreateProcess jedoch nicht aufgerufen wenn ich keine .EXE übergebe.


Zitat von Christian Seehase:
... Das kann ich nicht nachvollziehen (Word 2003). ...
Wie gesagt,
unter Verwendung der Funktion ShellExecuteAndWait hängt es nach dem Start einer .DOC
Eben sehe ich das es auch bei XLS passiert. Es scheinen also die Office 2003 Anwendungen bei mir zu sein die ein Problem machen.
AdobeAcrobat und andere gehen ohne Probleme
Stephan B.
  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 05:06 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