Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi excel.exe aus delphi raus schliessen (https://www.delphipraxis.net/35959-excel-exe-aus-delphi-raus-schliessen.html)

stonimahoni 14. Dez 2004 08:39


excel.exe aus delphi raus schliessen
 
hi leute

ich hab mich schon der suche hier bemüht aber nix passendes gefunden daher stelle ich hier mal die frage :

ich exportiere aus meiner anwendung heraus daten nach excel. jetzt würde ich gern prüfen wenn ich die anwendung starte, ob excel - vor allem die excel.exe noch offen ist ( im taskmanager zu sehen )
und wenn ja wie ich den task dann killen kann ?!

im moment habe ich folgende funktion in benutzung :

Delphi-Quellcode:
function TFormGarantie.IsProgActive(sClassName: String): Boolean;
var
  ClassID: TCLSID;
  Unknown: IUnknown;
begin
  try
    ClassID := ProgIDToClassID(sClassName);
    Result := GetActiveObject(ClassID, nil, Unknown) = S_OK;
  except
    Result := False;
  end;
und beim aufrufen des formulars folgendes :

Delphi-Quellcode:
procedure TFormGarantie.FormActivate(Sender: TObject);
var
 sClassName: String ;
begin

  if IsProgActive('Excel.Application') then
  begin

     ShowMessage('Excel läuft - bitte schliessen !!');
  end
end;

jemand ne ahnung wie ich das realisieren kann ?
wäre nice


mfg

stoni

CalganX 14. Dez 2004 08:42

Re: excel.exe aus delphi raus schliessen
 
Hi,
ich würde versuchen mit [dp]"FindWindow"[/dp] das Handle zu bekommen und dann mit Hilfe von [cl]"SendMessage"[/cl] und [cl]"WM_SYSCOMMAND"[/cl] das Programm beenden.

Chris

Jasocul 14. Dez 2004 08:45

Re: excel.exe aus delphi raus schliessen
 
Sieh mal in dies Topic.

Ich würde aber davon abraten Excel einfach zu beenden. Ist nicht gerade benutzerfreundlich. Warum machst du Excel nicht einfach nochmal auf?

stonimahoni 14. Dez 2004 08:51

Re: excel.exe aus delphi raus schliessen
 
hmmm
ok ich kanns auch gern nochmal öffnen aber :

wenn ich dan nden export starte brint er nen fehler, bzw vor allem dann wenn die datei schon geöffnet ist. kann ich das irgendwie umgehen ?

also wenn die letzte exportierte datei geöffnet ist und ich dann nochmal eine excel datei durch export erstelle die denselben namen hat stürzt er ab. das wäre mir halt wichtig abzufangen.

Jasocul 14. Dez 2004 08:58

Re: excel.exe aus delphi raus schliessen
 
Da würde ich mit einem Try-Except arbeiten und im Fehlerfall den Anwender darauf hinweisen, dass der Export nicht möglich ist, weil ... .
Es wäre ja denkbar, dass der Anwender den vorherigen Export auch benötigt. Dann soll er ihn Speichern und Schließen. Dasmuss man natürlich freundlich formulieren. :wink:

Alternativ kannst du auch zufällige Dateinamen erzeugen mit Datum und Uhrzeit. Dann ist das auch kein Problem mehr. Wenn der Anwender dann 30 mal exportiert, geht der Rechner eben in die Knie :mrgreen:

stonimahoni 14. Dez 2004 10:00

Re: excel.exe aus delphi raus schliessen
 
hmmm
dann muss ich mal schauen wie ich das hinbiege

mal so nebenher :

wie generiere ich "zufällige" dateinamen ?
weil den dateinamen geb ich fest vor mit zusatz und datum

z.b. : export von haus x vom 12.12.04.xls

wie kann ich das dann so machen das ne neue datei erstellt wird mit leicht anderem namen ?
mit was weiss ich... noch ner 1 oder so hintendran so like : export_1 von haus x vom 12.12.04.xls

Jasocul 14. Dez 2004 10:04

Re: excel.exe aus delphi raus schliessen
 
Am Sichersten wäre es wohl, "Time" dafür zu nehmen, Es sei denn, die Auswertungen werden 24 Stunden vom Anwender offen gehalten. :-D


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:44 Uhr.

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