| |
|
|
Normann Strübli | Salut,
j'ai justement avec cela angefangen un kleines Programme trop écrivons welches Meßwerte dans un vorgegebenes Protokoll écrivons soll. là cela protokoll quelque chose komplizierter Aussieht (avec tabellen, Grafiken, Fußnoten etc.) habe je mich entschlossen cela Protokoll dans MS-Word (2002) trop erstellen anstatt es Aufwendig irgendwie avec Profan trop realisieren :roll: Um chaque Cordes et Werte eh bien à qui richtige position im Dokument trop bekommen hat chaque champ une eindeutigen Namen -z.B: |1202. qui .doc-Dossier wird eh bien avec Profan ouvert et qui Feldnamen avec den gewünschten Zeichenketten ersetzt - Voila! Klappt super maintenant mais zum Problem:
là cela Prüfprotokoll un wichtiges Dokument ist voudrais je es avant Changements/ Fälschung protéger. la première mesure qui qui pour getroffen habe ist qui Checksumme qui modifié .doc Dossier trop ermitteln et auszudrucken. So peux si nötig festgestellt volonté si quelque chose dans dem Dokument geändert wurde. Allerdings suis je avec qui Solution encore pas entier zufrieden. Ist es alors possible dans Word direct qui Druckvorschau anzuzeigen - ou bien encore besser cela Dokument auszudrucken sans Word magasin trop doit? peut-être. via kommandozeilen-paramètre? Habe malheureusement im Netz et dans qui Word- hilfe nix en supplément trouvé - mais peut-être sais ici oui zufällig jmd. quelque chose par-dessus.
gruß Normann |
|
|
| |
|
|
|
| Aus oui c'est ca diesem Grunde empfehle je dir [...]
là fais Du Votre Vorlagen im Format .sdc - et une shellexec imprimer anweisung läßt cela OOffice Drucken comment un le bébé - sans lästige informer.
cherche la fois ici dans qui Community pour binprint - glaube je hatte Schonmal ne Inc gebastelt pour quelle je selbst Nutze um verschiedene Clients übers Netzwerk drucken laisser trop peut - et alles im Nachhinein aussi encore Nachvollziebar bleibt.
Salve, iF |
|
|
| |
|
|
|
Normann Strübli | merci iF pour qui schnelle Antwort - werd mich la fois wohl la fois avec OpenOffice beschäftigen doit mais avec Word werd je quand même weitertüfteln. de qui était nochmal qui Présentation un fremdes Programme im eigenen Profanfenster auszuführen- sozusagen einzufangen. peux mich seulement encore très dunkel daran erinnern... Nebenbei find je es toll comment Du qui Community wieder aufgebaut la hâte, on fühlt sich encore entier comment Zuhause |
|
|
| |
|
|
|
Jörg Sellmeyer | allô Normann, Eigentlich müßtest Du avec ShellExec(Document.doc,Imprimer,0) Word unsichtbar starten peut um cela Dokument direct auszudrucken. Salut Jörg |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 26.01.2005 ▲ |
|
|
|
|
| @Norman: merci
@Jörg: malheureusement ca va so avec word pas - là sonst peut-être sogar qui PrinterDialog pas angezeigt serait.
cela Problem avec word ist arrêt simple cela avant dem Ausdruck un PrinterDialog venez - chez OO ist ca arrêt pas qui le cas. et là viele Firmen une Lizensverwaltung eingeführt avons - ist on avec OO sur qui sicheren page.
Salve, iF |
|
|
| |
|
|
|
Normann Strübli | qui Vorschlag de Jörg ist funktioniert mais -si Word aussi pas unsichtbar gestartet wird, so wird cela Dokument à den Drucker gesandt et Word anschließend wieder geschlossen. Abgesehen en doit je es zumindest pour Word encore besser lösen - si on la fois pas avec dem Standarddrucker drucken veux - la fois gucken.
gruß Normann |
|
|
| |
|
|
|
| ah vraie? Lol je hatte es avec OfficeXP probiert et là kam toujours qui lästige PrinterDLG. Sag doch - quelle Word-Version utilise Du?
Salve, iF |
|
|
| |
|
|
|
Jörg Sellmeyer | allô Normann, de Sebastian König gibts une OleFile.prf. Sieht assez klompiziert aus, abervielleicht peux Du quoi avec cela anfangen. KompilierenMarqueSéparation+-----------------------------------------------------------------------+
| olefile.prf - Dateien öffnen und schließen mit OLE |
| Autor: Sebastian König |
| email: feedback@sekoenig.de |
| Homepage: http://www.sekoenig.de |
| Copyright ©2001 Sebastian König |
| |
| Dieser Quellcode zeigt, wie man mit OLE und Profan² ein Word-Dokument |
| zum Bearbeiten öffnet. |
| |
| |
| WICHTIG: Dieser Quellcode funktioniert erst ab Profan 7.0 und setzt |
| voraus, dass Microsoft® Word installiert ist. |
| |
| TIP(P): Diese Methode funktioniert nicht nur mit Word-Dokumenten. |
| Wenn man die Dateimaske zum Beispiel in *.bmp ändert, wird |
| automatisch Paint (oder ein anderes Zeichenprogramm) |
| geöffnet. |
| |
+-----------------------------------------------------------------------+
---Prozeduren
proc Release
parameters obj&
declare vptr&
let vptr& = @long(obj&,0)
return Call(@long(vptr&,8),obj&)
endproc
+++
---Benötigte (COM/OLE)-API-Funktionen:
DEF OleInitialize(1) !"OLE32","OleInitialize"
DEF OleUninitialize(0) !"OLE32","OleUninitialize"
DEF IIDFromString(2) !"OLE32","IIDFromString"
DEF CoTaskMemAlloc(1) !"OLE32","CoTaskMemAlloc"
DEF CoTaskMemFree(1) !"OLE32","CoTaskMemFree"
DEF CreateILockBytesOnHGlobal(3) !"OLE32","CreateILockBytesOnHGlobal"
DEF StgCreateDocfileOnILockBytes(4) !"OLE32","StgCreateDocfileOnILockBytes"
DEF OleCreateFromFile(8) !"OLE32","OleCreateFromFile"
DEF MultiByteToWideChar(6) !"KERNEL32","MultiByteToWideChar"
DEF Sleep(1) !"KERNEL32","Sleep"
---Variablen deklarieren:
declare ILockBytes&,IStorage&,IOleClientSite&,IRichEditOle&,MSWord&,IUnknown&
declare vp_MSWord&,vp_RTFOle&
declare CLSID_MSWord&,IID_IOleObject&,IID_IOleClientSite&,IID_IUnknown&
declare clsid$,iid$,olestr&
declare file$,file&
declare FORMATETC#,RECT#,MSG#
declare count&
---Speicher allokieren:
let ILockBytes& = CoTaskMemAlloc(4)
let IStorage& = CoTaskMemAlloc(4)
let MSWord& = CoTaskMemAlloc(4)
let IID_IOleObject& = CoTaskMemAlloc(16)
let olestr& = CoTaskMemAlloc(256)
let file& = CoTaskMemAlloc(1024)
dim FORMATETC#,20
---Neues Fenster erstellen:
windowtitle "OLE mit Profan²"
window 100,100-640,480
---OLE initialisieren:
print "OleInitialize:",OleInitialize(0),"
"
---Storage-Objekt erstellen:
print "CreateILockBytesOnHGlobal:",CreateILockBytesOnHGlobal(0,1,Addr(ILockBytes&)),"
"
print "StgCreateDocfileOnILockBytes:",StgCreateDocfileOnILockBytes(ILockBytes&,$1012,0,Addr(IStorage&)),"
"
---MSWord-Objekt erstellen:
--IID für IOleObject aus String bilden:
let iid$ = "{00000112-0000-0000-C000-000000000046}"
MultiByteToWideChar(0,0,Addr(iid$),Len(iid$),olestr&,261),"
"
print "IIDFromString:",IIDFromString(olestr&,IID_IOleObject&),"
"
--Datei wählen
let file$ = LoadFile$("Word-Dokumente","*.doc")
MultiByteToWideChar(0,0,Addr(file$),Len(file$),file&,261),"
"
--FORMATETC# füllen...
long FORMATETC#,0 = 0
long FORMATETC#,4 = 0
long FORMATETC#,8 = 1 DVASPECT_CONTENT
long FORMATETC#,12 = 0
long FORMATETC#,16 = 0 TYMED_NULL
--Objekt erstellen:
print "OleCreateFromFile:",OleCreateFromFile(0,file&,IID_IOleObject&,0,FORMATETC#,0,IStorage&,Addr(MSWord&)),"
"
--vptr ermitteln:
let vp_MSWord& = @long(MSWord&,0)
MessageBox("Die Datei wird nun geöffnet und in ca. 5 Sekunden
automatisch wieder geschlossen.","Meldung",64)
---Objekt zum Bearbeiten öffnen:
print "MSWord&->DoVerb:",Call(@long(vp_MSWord&,44),MSWord&,-1,0,0,0,%hwnd,0)
---5 Sekunden warten, ohne den Prozess zu blockieren:
let count& = @add(&GetTickCount,5000)
while @lt(&GetTickCount,count&)
Sleep(0)
wend
---Objekt wieder schließen:
print "MSWord&->Close:",Call(@long(vp_MSWord&,24),MSWord&,0)
print " "
print "> Taste oder Mausklick zum Beenden! <"
waitinput
---Aufräumarbeiten:
Release MSWord&
Release IStorage&
Release ILockBytes&
CoTaskMemFree(ILockBytes&)
CoTaskMemFree(IStorage&)
CoTaskMemFree(MSWord&)
CoTaskMemFree(CLSID_MSWord&)
CoTaskMemFree(IID_IOleObject&)
CoTaskMemFree(olestr&)
dispose FORMATETC#
OleUninitialize()
---./../funktionsreferenzen/XProfan/ende/'>Ende:
end
Salut Jörg |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 28.01.2005 ▲ |
|
|
|
|
Normann Strübli | [quote-part:efc5161f7d]quelle Word-Version utilise Du?[/quote-part:efc5161f7d] hab gar ne...aucune Word peux cela seulement im Büro testen et voilà office Xp installiert, hmm...
cela Beispiel de Sebastian doit je seulement encore aufarbeiten -ou bien besser dit comprendre, stürzt aussi malheureusement avec einer Exeption EAccessVioaltion ab. |
|
|
| |
|
|
|
CB | Hi, Normann!
Meintest Du folgenden Link?
[...]
je suis Je ne entier sûrement, si es c'est, quoi Du erreichen veux, mais peut-être hilft Dir folgendes plus:
j'ai Dir un kleines Word-Makro gebastelt (Ver 97, courir devrait es sur jeden le cas son jusqu'à incl. Word XP - höher hab je pas ) quoi diesem Makro encore fehlt, ist qui Abfrage, si qui Ausdruck déjà fertig ist, weil sich Word sonst möglicherweise beschwert, qui es finissez volonté soll, wos doch avec dem Drucken encore pas fertig ist!
NewMakros.txt débaptiser dans *.bas. VisualBasic-Editor ouvrir - Dossier importieren - Link zur .bas - Editor sortir de - Sauver (pas oublier qc!) - testen avec irgendeinem doc. prochaine Schritt: Du erstellst Dir une Présentation (SinnvollerName.dot) et stellst cet Makro dorthinein (Makros - organiser - kopieren)
Pour dem Schema aus meinem Link peux Du ensuite aus Deinem Profan-Programme heraus Word starten - une Makro automatisch effectuer laisser (DruckenStdBeenden) et Word wird automatisch wieder geschlossen (Application.Quit machts possible). encore un Tip: (pas ausprobiert): WinExec(Wait) peux Du comme paramètre den Abbildungsmodus transfert - peut-être druckt Word aussi minimiert (Modus 2)?
il y a encore une Possibilité: exposition la fois sous den Unités im Forum pour: Michael Dell hat là une Deco.inc veröffentlicht zum Codieren et Decodieren - peut-être peux Dus brauchen (bevor Du quoi à Word envoies..).
Solltest Du Probleme avons avec meinem Beispielcode - je suis (presque) jeden journée online...
Christian |
|
|
| |
|
|