Problem mit Sendkeys() in Word/Excel

Anfängerfragen zum Programmieren mit PureBasic.
Rebon
Beiträge: 263
Registriert: 20.05.2009 19:13

Beitrag von Rebon »

ts-soft hat geschrieben:Vergiß das mit SendKey einfach, das führt zu keinem nützlichem Ergebnis.
Mit welcher Procedure denn dann?
SetProperty()? Ist nur für eine Excel-Tabelle geignet, oder?
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

> SetProperty()? Ist nur für eine Excel-Tabelle geignet, oder?
Nein, für jedes Objekt das Properties unterstützt.
Infos zum Word-Object kann ich Dir aber nicht geben, ich nutze sowas
im allg. nicht, Progamme, die andere Anwendungen vorraussetzen halte ich
für nur selten sinnvoll. Da mußte schon selber nach Infos forschen, z.B.
so mancher VisualBasic Code läßt sich übersetzen. Für PB Einsteiger ist das
ganze aber gänzlich ungeeignet. Was soll ich noch sagen...

Was willst Du überhaupt programmieren? Vielleicht ist VBA ja die bessere
Alternative?
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Rebon
Beiträge: 263
Registriert: 20.05.2009 19:13

Beitrag von Rebon »

ts-soft hat geschrieben: Was willst Du überhaupt programmieren? Vielleicht ist VBA ja die bessere
Alternative?
Ein Programm, das auf einer Shop-Webseite,
Name, Adresse, bestellte Artikel usw. aus einer PHP-Datei,
die aktuell im Webbrowser(Webgadget) geladen ist, in ein vorgefertigtes
Word-Dokument mit integrierter Excel-Tabelle hineinschreibt.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Sinn und Zweck entzieht sich mir trotzdem :mrgreen:
Normallerweise werden diese Daten in eine Datenbank eingetragen. Dann
kann man anhand der Daten in der Datenbank einen entsprechenden Brief,
z.B. Auftragsbestätigung o. ä. schreiben.

Bei einem Webshop erfolgt dies aber im allg. per E-Mail, alles andere ist zu
langsam und zu teuer.

Für Rechnungsschreibung nimmt man wieder seine Vorlage, die mit der
Datenbank verknüpft ist. Deine Vorgehensweise sollteste vielleicht doch noch
mal durchdenken, scheint mir doch recht unpraktisch zu sein.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Rebon
Beiträge: 263
Registriert: 20.05.2009 19:13

Beitrag von Rebon »

ts-soft hat geschrieben: Deine Vorgehensweise sollteste vielleicht doch noch
mal durchdenken, scheint mir doch recht unpraktisch zu sein.
Ist nicht mein Webshop, kenn mich da auch nicht wirklich aus
und ist auch ein kleiner Webshop.
Aber wieso es per Email schneller gehen soll versteh ich nicht.
Bei meinem Programm, wenn es das Problem mit der
integrierten Exceltabelle nicht gäbe,
benötigt man maximal 6 Mouseclicks für:
Herr, Frau, Firma
Verrechnungsart: Vorkasse, Nachnahme, Sofortüberweisung.de usw.
Nr. der Bestellung(Nicht zu verwechseln mit der Bestellnr.)
Generiert automatisch eine vorgefertigte doc-Datei
mit Name des Bestellers, Bestellnr. und Lieferschein bzw. Rechnung.
Rebon
Beiträge: 263
Registriert: 20.05.2009 19:13

Beitrag von Rebon »

Ich hab es mit der Procedure type() von AND51 versucht.
Gleiches Problem, ich glaube es liegt an dem
keybd_event_ Befehl.
Ausserdem hab ich das Delay, vor dem aktivieren
der Excel-Tabelle, von 1000ms auf 700ms gesetzt.
Dachte schon es klappt, aber nach 44 versuchen
kam der gleiche Fehler wieder.
Zusätzlich habe ich alle Schleifen(Repeat, While, For, usw.),
ausprobiert, mit dem gleichen Ergebnis.
Mein nächster Versuch wird die SendKeys()-Funktion erst
im zweiten Aufruf der Schleife verwenden.
Langsam gehen mir die Ideen aus.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

also, ich versteh auch nicht so ganz, warum du unbedingt den Weg über eine simulierte Tastatureingabe gehen willst, das ist echt nicht sonderlich unterhaltsam.

welches Interface man auch immer ansprechen will, es gibt einen "Grundsätzlich Richtigen" Weg, der meistens nichts mit Tastatursimulation zu tun hat.

bei einem webshop zum beispiel kann man ein Formular in den Speicher laden, interpretieren, und die benötigten daten wieder hochladen.
die Schlüsselbegriffe sind GET und POST, wenn ich mich nicht täusche sowohl bei HTTP als auch bei PHP...


bzw. auch per emal, d.h. im shop läuft ein interpreter, der automatisierte emails interpretiert,
genau diese emails kann man auch client-seitig erzeugen.


oder verwechsel ich da jetzt was? willst du was ganz anderes?
die infos worum es eigentlich geht sind etwas sehr verstreut...
Ein Programm, das auf einer Shop-Webseite,
Name, Adresse, bestellte Artikel usw. aus einer PHP-Datei,
die aktuell im Webbrowser(Webgadget) geladen ist, in ein vorgefertigtes
Word-Dokument mit integrierter Excel-Tabelle hineinschreibt.
öh... also normal würde man doch die infos per PHP sich holen, vergiß das webgadget, und per COMate ins Excel rüberschieben....
das holen scheint ja wohl eh nich das problem zu sein...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Falko
Admin
Beiträge: 3535
Registriert: 29.08.2004 11:27
Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit)
Kontaktdaten:

Beitrag von Falko »

Rebon hat geschrieben:
ts-soft hat geschrieben: Was willst Du überhaupt programmieren? Vielleicht ist VBA ja die bessere
Alternative?
Ein Programm, das auf einer Shop-Webseite,
Name, Adresse, bestellte Artikel usw. aus einer PHP-Datei,
die aktuell im Webbrowser(Webgadget) geladen ist, in ein vorgefertigtes
Word-Dokument mit integrierter Excel-Tabelle hineinschreibt.

Muss das denn umbedingt alles in Word sein? In Excel könnte man doch
genauso gut ein Formular kreeiren, in dem alles reinkopiert wird.

Wenn Du das in Excel hinkriegst und Comate nutzen kannst, wäre von mir
ein Tip hierzu:

http://www.purebasic.fr/german/viewtopi ... 466#239466

Gruß Falko
Bild
Win11 Pro 64-Bit, PB_6.11b1
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Jeder "normale" Mensch benötigt die Daten in einer Datenbank und nicht in
einer Word-Datei. Die Word-Datei wird mit der Datenbank verknüpft und
fetisch.
Wenn die Daten gleich in dem Word-Dokument landen ist es doch sehr
unpraktisch (muß ich ja alles per Hand in die Datenbank einfügen oder ich
verwalte meine Kunden und Aufträge in Textdateien :mrgreen: )

Kunde bestellt im WebShop, der WebShop verschickt per Mail den
Auftragseingang (per PHP) und trägt die Daten in eine MySQL Datenbank.
Der Shopbetreiber ruft seine Serienbriefvorlage auf und drückt auf drucken,
und schon ist alles erledigt.

Dies wäre das "normalle" vorgehen, alles andere ist IMHO Mumpitz und
umständlich.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Falko
Admin
Beiträge: 3535
Registriert: 29.08.2004 11:27
Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit)
Kontaktdaten:

Beitrag von Falko »

Es kommt darauf an, was dieses Programm soll. Ob der Nutzer dieses
Programm überhaupt Zugriffsrechte des Servers hat, oder nur von einer
bestimmten PHP-Datei nur die Ausgabe sehen darf. Dann kann man sich
den Onlinezirkus mit Datenbanken und PHP-Scripten schenken :lol:
Bild
Win11 Pro 64-Bit, PB_6.11b1
Antworten