PDA

Vollständige Version anzeigen : externes Programm startet immer im Vordergund


Ti-Gra-Ha
30.04.2001, 19:27
Hi Leute !!

Ich benötige in meiner Datenbank Daten aus einer anderen Anwendung, die ich zum Zeitpunkt , zu dem ich diese externen Daten benötige, per vba-Befehl (appactivate shell....) starte. Diese Anwendung weigert sich aber strickt sich nach den von mir vorgebenen Parametern zu verhalten (shell [APP], hide). Auch wenn ich es mit anderen Shell-Parametern zum öffnen von Anwendungen versuche( minmized mit oder ohne focus,etc) Egal was diese Anwendung ist nach dem öffnen stets in einer festen Größe im Vordergrund. Ich habe jetzt das Problem mit sendkeys Anweisungen umgangen, aber daß ist keine Dauerlösung)

Hier das von mir (noch zu Testzwecken) verwendete script:

Private Sub Befehl3_Click()
On Error GoTo Err_Befehl3_Click
Me.Eingabe = " "
Me.Refresh
Me.Eingabe.SetFocus
SendKeys "^c", True
chipclip = Shell("C:\TOWITOKO\TOOLS\CCLIP.EXE", vbHide)
AppActivate chipclip
SendKeys "%{TAB}", True
SendKeys "%{TAB}", True
If (MsgBox("Chipkarte einstecken")) = vbOK Then
Do While Me.Eingabe = " "
Me.Eingabe.SetFocus
SendKeys "^v", True
Me.Refresh
Loop
Else
End
End If
AppActivate chipclip
SendKeys "%{F4}", True
MsgBox ("Chipkarte entnehmen !")
Exit_Befehl3_Click:
Exit Sub
Err_Befehl3_Click:
MsgBox Err.Description
Resume Exit_Befehl3_Click
End Sub

Ach übernahme der ext. Daten soll das entspr. Prog wieder beendet werden

Besser wäre natürlich den Smartcard-reader direckt über dem com-port anzusprechen ohne den Umweg über das ext. Zwischenablage-Prog.

Ich noch Neuling - nix (wenig) Ahnung von VBA


Gruß TI-GRA-HA

Alexander Jan Peters
01.05.2001, 11:22
<font color="#000000" size="2" face="Tahoma">Hallo,

in den <a href="http://www.donkarl.com/FAQ/FAQ8Kommunikation.htm#8.2">FAQs (8.2)</a> steht etwas darüber, wie man die seriellen Schnittstellen ansprechen kann.
Aber das Ganze ist extrem kompliziert.
Ließe es sich nicht einfacher lösen, in dem Du beim Aufruf per Shell noch eine <a href="http://www.mvps.org/access/api/api0004.htm">Warteschleife</a> einbaust (solange bis Programm gestartet) und dann den Focus auf das Formular setzt, das den Aufruf gestartet hat?

Gruß

[Alexander Jan Peters

Empfehlenswerte Links:
<a href="http://www.donkarl.com">Access FAQ von Karl Donaubauer</a>
<a href="http://www.access-paradies.de/Links.htm">Access-Paradies Links</a></font>

Ti-Gra-Ha
01.05.2001, 20:52
Hallo Alexander !!

Im Prinzip ein sehr guter Vorschlag, aber da muß die Warteschleife schon 2 besser 3 Sekunden lang sein und das gefällt mir nicht so gut. Dieses Chipclip ist wirklich ein sehr Hartnäckiges Proggi.
Ich habe mir jetzt vom Hersteller das Developer-Tool bestellt (30 Mäuse) mit VBA-Beispielen zum direckten Ansprechen des Smartcard-readers. Trotzdem vielen Dank für Deinen Tip kann ihn vielleicht bei anderen Anwendungen einsetzen.

Gruß Tim