| |
|
|
 Normann Strübli | ¡Hola,
Yo gerade así angefangen una kleines Programa a escribir welches Meßwerte en una vorgegebenes Protokoll escribir se. Como el protokoll algo komplizierter Aussieht (con tabellen, Gráficos, Fußnoten etc.) Yo mich entschlossen el Protokoll en MS-Word (2002) a redactar anstatt lo Aufwendig irgendwie con Profano a realisieren :roll: Um cada Cuerdas y Werte nun a el richtige position en el Dokument a bekommen ha cada Feld una eindeutigen Namen -z.B: |1202. El .doc-Expediente se nun con Profano geöffnet y el Feldnamen con el deseado Zeichenketten ersetzt - Voila! Klappt super  Jetzt aber para Problema:
Como el Prüfprotokoll una wichtiges Dokument es möchte Yo antes Los cambios/ Fälschung schützen. El erste Maßnahme el el dafür getroffen habe Es el Checksumme el geänderten .doc Expediente a ermitteln y auszudrucken. So kann si nötig festgestellt voluntad si algo en el Dokument geändert wurde. Aunque bin I, con el Solución todavía no bastante zufrieden. ¿Es also posible en Word direkt el Druckvorschau anzuzeigen - oder todavía mejor el Dokument auszudrucken sin Word invitar tener? evtl. via kommandozeilen-parameter? Posesiones desafortunadamente en el Netz y el Word- hilfe nix dazu gefunden - aber tal vez weiß hier sí zufällig jmd. algo darüber.
gruß Normann |
|
|
| |
|
|
|
 | Aus genau diesem Grunde empfehle Yo dir [...] 
Dort machst Usted Su Vorlagen en el Formato .sdc - y una shellexec imprimir anweisung läßt el OOffice Drucken como una Baby - sin lästige Nachfragen.
Búsqueda veces aquí en el Comunidad después de binprint - glaube Yo hatte schonmal ne Inc gebastelt dafür welche Yo incluso Nutze en verschiedene Clients übers Netzwerk drucken dejar a puede - y alles en el Nachhinein auch todavía Nachvollziebar restos.
Salve, IF |
|
|
| |
|
|
|
 Normann Strübli | danke IF para la respuesta rápida - werd mich veces wohl veces con OpenOffice beschäftigen necesario aber con Word werd Yo trotzdem weitertüfteln. Von wem war otra vez el Presentación una fremdes Programa en el eigenen Profanfenster auszuführen- sozusagen einzufangen. Kann mich sólo todavía muy dunkel daran erinnern... Nebenbei Me parece toll como Usted el Comunidad otra vez aufgebaut hast, uno fühlt se ya otra vez bastante como Zuhause  |
|
|
| |
|
|
|
 Jörg Sellmeyer | ¡Hola Normann, Eigentlich müßtest Usted con ShellExec(Document.doc,Imprimir,0) Word unsichtbar starten puede en el Dokument direkt auszudrucken. Saludo Jörg |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ...  | 26.01.2005 ▲ |
|
|
|
|
 | @Norman: Gracias 
@Jörg: desafortunadamente es así con word no - como sonst tal vez incluso PrinterDialog no adecuado sería.
Das Problema con word es sólo simplemente el antes el Ausdruck una PrinterDialog kommt - en OO es dies sólo no Fall. Und como viele Firmen una Lizensverwaltung eingeführt haben - es uno con OO en el sicheren Página.
Salve, IF |
|
|
| |
|
|
|
 Normann Strübli | Der Vorschlag de Jörg es funktioniert aber -si Word auch no unsichtbar comenzó se, así el Dokument a el Drucker gesandt y Word anschließend otra vez geschlossen. Abgesehen su muß Yo zumindest para Word todavía mejor lösen - si uno veces no con el Standarddrucker drucken voluntad - veces gucken.
gruß Normann |
|
|
| |
|
|
|
 | Ach echt? Lol Yo hatte lo con OfficeXP probiert y como kam siempre el lästige PrinterDLG. Sag doch - welche Word-Versión nutzt Usted?
Salve, IF |
|
|
| |
|
|
|
 Jörg Sellmeyer | ¡Hola Normann, Von Sebastian König gibts una OleFile.prf. Sieht bastante klompiziert de, abervielleicht kannst Usted qué así anfangen. KompilierenMarcaSeparación+-----------------------------------------------------------------------+
| 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
Saludo Jörg |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ...  | 28.01.2005 ▲ |
|
|
|
|
 Normann Strübli | [quote:efc5161f7d]welche Word-Versión nutzt Usted?[/quote:efc5161f7d] incluso han kein Word  Kann el sólo en el Büro testen y como es office Xp installiert, hmm...
Das Ejemplo de Sebastian muß Yo sólo todavía aufarbeiten -oder mejor dijo verstehen, stürzt auch desafortunadamente con uno Exeption EAccessVioaltion de. |
|
|
| |
|
|
|
 CB | Hi, Normann!
Meintest Usted folgenden Link?
[...] 
Yo bin No bastante sicher, si el es, qué Usted erreichen willst, aber tal vez hilft Usted folgendes más:
Yo habe Usted una kleines Word-Makro gebastelt (Ver 97, lauffähig müßte lo en cada Fall ser a incl. Word XP - höher tener Yo no ) Was diesem Makro todavía fehlt, Es el Abfrage, si el Ausdruck ya fertig es, porque se Word sonst möglicherweise beschwert, daß lo darse por concluido se, wos doch con el Drucken todavía no fertig es!
NewMakros.txt umbenennen en *.bas. VisualBasic-Editor abierto - Expediente importieren - Link a .bas - Editor verlassen - speichern (no vergessen!) - testen con irgendeinem doc. Nächster Schritt: Usted erstellst Usted una Presentación (SinnvollerName.dot) y stellst dieses Makro dorthinein (Makros - organisieren - kopieren)
Nach el Schema de mi Link kannst Usted entonces de Deinem Profano-Programa heraus Word starten - una Makro automáticamente ausführen dejar (DruckenStdBeenden) y Word se automáticamente otra vez geschlossen (Application.Quit machts posible).  Noch una Tip: (no ausprobiert): WinExec(Wait) kannst Usted como Parámetro el Abbildungsmodus transferencia - tal vez druckt Word auch minimiert (Modus 2)?
Lo son ni Möglichkeit: schau mal bajo el Unidades en el Foro después de: Michael Dell ha como una Deco.inc veröffentlicht para Codieren y Decodieren - tal vez kannst Dus brauchen (bevor Usted qué a Word schickst..).
Solltest Usted Problemas haben con mi Beispielcode - Yo bin (fast) cada Tag online...
Christian |
 |
|
| |
|
|