Gast King555 Geschrieben 6. März 2002 Teilen Geschrieben 6. März 2002 Ich möchte mit meinem Delphi Programm eine neue Datei erstellen, z.B. ein Word oder Excel Dokument. Ich möchte aber nicht mit irgendwelchen Word Application Objekten arbeiten. Was genau macht denn Windows, wenn ich mit der rechten Maustaste auf einen freien Bereich irgendwo klicke und dann Neu - Worddokument wähle? Ich könnte mir vorstellen, dass dann so ein rundll32.exe Befehl ausgeführt wird, damit kann man ja auch Dateien öffnen und z.B. Windows herunterfahren, etc. Das ganze sollte dann meiner Meinung nach ungefähr so aussehen: rundll32.exe shell32.dll,CreateNewFile "c:\test.doc" Gibt es sowas? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Gast King555 Geschrieben 6. März 2002 Teilen Geschrieben 6. März 2002 Nachtrag: Das ganze könnte natürlich auch mit einer API Funktion gehen. Irgendwie macht Windows das ja auch. Wenn ich ein neues Word Dokument erstelle, also ein völlig leeres, hat das ja schon eine Größe von ca. 10 KB (Word 2000). Deswegen brauche ich da irgendeinen Windows Befehl/API für. Einfach eine 0 Byte Datei mit der Endung ".doc" funktioniert ja nicht. Wer hat da eine Idee? Ich habe schon stundenlang mit Google gesucht. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
progmaker Geschrieben 6. März 2002 Teilen Geschrieben 6. März 2002 Du könntest mit Word eine neue doc-Datei erstellen, sie mit einem Hex-Editor öffnen und alles, was in der Datei steht kopieren. Dann erstellst du mit Delphi eine einfache Datei mit der Erweiterung doc, öffnest sie und schreibst das was du in der Zwischenablage hast, in die Datei. Vielleicht klappt das. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TAZttDevil Geschrieben 6. März 2002 Teilen Geschrieben 6. März 2002 deine idde ist nicht schlecht, hat aber einen Hacken: in Word, Excel etc. Dateinen sthet immer das erstellungsdatum, der author (teilweis auch der lizenznehmer) und all so einen Kram. Wenn du jetzt einfach ein leeres Dokument nimmst, das meintewegen als tmp file speicherst, und bei jedem aufruf kopierst, ändern sich an den oben gennanten daten gar nichts... Aber wenn du sagst "ist doch latte" dann ist das sicherlihc die einfachste lösung... gruß Taz... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
lpd Geschrieben 6. März 2002 Teilen Geschrieben 6. März 2002 Hallo, In der Unit"Windows" findest du die entsprechenden Funktionen, wenn du nach "CreateFile" suchst. Mit der Delphi-Hilfe kannst du dann rauskriegen, wie du die Parameter setzen musst, sofern du gut Englisch kannst. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Gast King555 Geschrieben 6. März 2002 Teilen Geschrieben 6. März 2002 Original geschrieben von lpd Hallo, In der Unit"Windows" findest du die entsprechenden Funktionen, wenn du nach "CreateFile" suchst. Mit der Delphi-Hilfe kannst du dann rauskriegen, wie du die Parameter setzen musst, sofern du gut Englisch kannst. Mit CreateFile kann man soweit ich das feststellen kann nur leere Dateien erstellen, aber nicht leere Word, Excel oder sonstige Dateien. Oder irre ich mich da? Also man kann nur eine Art Textdatei erstellen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
lpd Geschrieben 7. März 2002 Teilen Geschrieben 7. März 2002 Original geschrieben von King555 Mit CreateFile kann man soweit ich das feststellen kann nur leere Dateien erstellen, aber nicht leere Word, Excel oder sonstige Dateien. Oder irre ich mich da? Also man kann nur eine Art Textdatei erstellen. Das kann ich dir nicht genau sagen, da ich noch nie etwas anderes als Textdateien erstellt habe. Du hast aber die Möglichkeit, die entsprechenden Typbibliotheken in Delphi einzubinden. Eventuell stellt das Interface eine Methode zur Erzeugung eines neuen Dokumentes bereit. Dazu musst nu natürlich das Office-Paket installiert haben. Geh´ dann mal auf "Projekt / Typbibliothek importieren" und schau nach, ob du "Microsoft Word" finden kannst. (8.0 bei O97, 9.0 bei O2000). Nun, du hast auf jeden Fall eine Klasse namens "TWordDocument" zur Verfügung. Ich denke, die wird alles enthalten, um dein Problem zu lösen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Gast King555 Geschrieben 7. März 2002 Teilen Geschrieben 7. März 2002 Das bringt mich auch nicht wirklich weiter. Vielleicht geht es ja auch garnicht so einfach, wie ich es mir vorstelle. Ich denke einfach nur, dass Windows selbst ja eigentlich auch eine simple Methode haben muss, um eine neue Datei zu erstellen. Es wird ja schließlich nicht immer Word gestartet, wenn ich z.B. auf dem Desktop per Kontextmenü eine neue Datei erstellen. Und ich möchte ja nicht nur Word Dateien erstellen, sondern auch Excel, Access, Powerpoint, etc. Dateien. In einem anderen Forum erzählte jemand was von ShellNew und InProcServer32. Sagt euch das was? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
lpd Geschrieben 7. März 2002 Teilen Geschrieben 7. März 2002 Ja. Es ist so, dass das Kontextmenü, welches du per Rechtsklick auf dem Desktop aufrufst, sich die Einträge, die du unter "Neu" findest, aus der Registry holt. Ein Format, das im Kontextmenü eingetragen ist, enthält immer einen Unterschlüssel "ShellNew". Wird dieser gelöscht, ist das Format auch nicht mehr im Kontextmenü zu finden. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
lpd Geschrieben 7. März 2002 Teilen Geschrieben 7. März 2002 Oh, hätte ich fast übersehen : InprocServer32 ist ein Schlüssel und kennzeichnet das Modul, in dem eine COM-Komponente implementiert ist; in diesem Fall ein dll-Modul (für Exe-Module wird der Schlüssel LocalServer32 verwendet) Aber das geht schon in Richtung COM-Klassen-Zusammenführung zu Komponenten. Ich wüsste nicht, inwiefern das helfen soll. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.