ich muss MS Access per Verknüpfung oder Batch starten, weil ich beim
starten der "msaccess.exe" einen Parameter angeben muss.
Dazu muss man aber den kompletten Pfad zur "msaccess.exe" angeben,
damit Access gestartet wird.
Die Datei liegt aber auf einem Server und wird von mehreren PC's
aufgerufen. Darauf kann Access in verschiedenen Verzeichnissen
installiert sein.
Ich wollte nun per Batch den Pfad zur "msaccess.exe" aus der Registry
auslesen und als Variable verwenden zum starten von Access.
Kann mir jemand sagen, wie man...
1.
einen Pfad per Batch-Datei mit möglichst einfachen Mitteln aus der
Registry auslesen kann?
2.
diesen Pfad als Variable beim Programmaufruf verwendet?
Danke.
Gruss aus Franken
Matthias
Zum Antworten per eMail bitte NOSPAM am Anfang der eMail-Adresse entfernen.
Wenn Du weisst wo Du bist, kannst Du sein wo Du willst,
aber wenn Du nicht weisst wo Du bist, musst Du sehen wo Du bleibst!
Das geht IMHO nicht (lasse mich aber gerne eines Besseren belehren;-))
> Kann mir jemand sagen, wie man...
>
> 1.
> einen Pfad per Batch-Datei mit möglichst einfachen Mitteln aus der
> Registry auslesen kann?
S.o.
> 2.
> diesen Pfad als Variable beim Programmaufruf verwendet?
Wäre es eine Alternative, diesen Pfad aus einer _Umgebungsvariable_
auszulesen?
D:\Dokumente und Einstellungen\ChBa>echo %programfiles%
gibt mir in der Eingabeaufforderung folgendes aus:
D:\Programme
Da MS-Office ja in der Regel im Standardverzeichnis für Programme liegt,
könnte man sich so den kompletten Pfad zusammenbasteln. Ob es vielleicht
schon standardmäßig eine Umgebungsvariable für MS-Office gibt, weiß ich
nicht, da ich es nicht installiert habe.
Alternativ wäre das Erzeugen einer eigenen Umgebungsvariable denkbar -
wahrscheinlich wäre das aber zu viel Arbeit...
> Danke.
>
>
> Gruss aus Franken
> Matthias
>
Gruß
Christoph
Das geht im Prinzip mit reg.exe
>
> 2.
> diesen Pfad als Variable beim Programmaufruf verwendet?
>
Normalerweise solltest du Access durch Eingabe von "msaccess" unter
Start->Ausführen starten können, da in der Reg. unter
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths
abgelegt. In diesem Fall gehts auch per Batch über
"start msaccess"
--
Gruß Jörg
Hallo Joerg,
zuerst mal danke.
>Normalerweise solltest du Access durch Eingabe von "msaccess" unter
>Start->Ausführen starten können, da in der Reg. unter
>HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths
>abgelegt. In diesem Fall gehts auch per Batch über
>"start msaccess"
Habe ich probiert.
Ueber eine Batch-Datei laesst es sich so ohne Pfadangabe starten. Das
ist schon mal sehr gut.
Kannst Du mir noch sagen, ob man diesen Start von Access auch direkt
als Ziel in einer Verknuepfung (also ohne Pfadangabe) realisieren
kann? (Ohne Verwendung der Batch-Datei!)
Ich habe sowas schon mit einer eigenen Variable probiert, aber da
mault Windows immer, dass man die schreibweise des Pfads oder der
Datei pruefen soll.
Am besten waere es natuerlich, wenn man ganz auf selbstdefinierte
Variablen verzichten kann.
Probier's doch aus! Eine neue Verknüpfung erstellen, »start msaccess«
als Befehlszeile angeben, den Namen Deiner Wahl für die Verknüpfung
angeben - fertig! (Allerdings hast Du dann nicht das schöne Access-Icon,
sondern das Standard-Fenster-Icon.)
Um gegen alle Unterschiede in der Installation der einzelnen Rechner
gefeit zu sein, könntest Du noch in den Eigenschaften der Verknüpfung
den Pfad vor START.EXE sowie das Arbeitsverzeichnis löschen - Access ist
das sowieso egal.
> Ich habe sowas schon mit einer eigenen Variable probiert, aber da
> mault Windows immer, dass man die schreibweise des Pfads oder der
> Datei pruefen soll.
Es fehlen höchstwahrscheinlich Anführunszeichen um den Pfadnamen, denn
der enthält (normalerweise) ein Leerzeichen: ...\Microsoft Office\...
Gruß,
Michael
Wie wärs denn hiermit:
<-- msacclnk.bat - legt Shortcut zu MS Access auf dem Desktop des
aktuellen Useres an -->
@echo off
setlocal
echo > %temp%\#deleteme#.inf [version]
echo >>%temp%\#deleteme#.inf signature="$chicago$"
echo >>%temp%\#deleteme#.inf [DefaultInstall]
echo >>%temp%\#deleteme#.inf UpdateInis=Addlink
echo >>%temp%\#deleteme#.inf [Addlink]
echo >>%temp%\#deleteme#.inf setup.ini, progman.groups,,
"group1=""%USERPROFILE%\Desktop"""
for /F "tokens=3 skip=2 delims= " %%a in (
'reg query
"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App
Paths\MSACCESS.EXE" /v ""'
) do (
echo >>%temp%\#deleteme#.inf setup.ini, group1,,"""Microsoft
Access"","""%%a""",,,,,""MSACCESS.EXE"""
)
rundll32 setupapi,InstallHinfSection DefaultInstall 132
%temp%\#deleteme#.inf
del %temp%\#deleteme#.inf
<-- msacclnk.bat -->
Du mußt noch die überflüssigen Zeilenumbrüche entfernen (Zeile 8, 10, 12
14)
--
Gruß Jörg
Hallo Joerg,
Also, das muss ich mir erst mal auf der Zunge zergehen lassen...
Hallo Michael,
>Probier's doch aus! Eine neue Verknüpfung erstellen, »start msaccess«
>als Befehlszeile angeben, den Namen Deiner Wahl für die Verknüpfung
>angeben - fertig! (Allerdings hast Du dann nicht das schöne Access-Icon,
>sondern das Standard-Fenster-Icon.)
Genau das mit »start msaccess« geht aber in einer Verknuepfung nicht.
Entweder es geht wirklich nicht oder es muss noch irgendwas anderes
mit angegeben werden.
Sollte es dazu keine Loesung geben, nehm' ich halt die Loesung mit der
Batch-Datei.
>> Ich habe sowas schon mit einer eigenen Variable probiert, aber da
>> mault Windows immer, dass man die schreibweise des Pfads oder der
>> Datei pruefen soll.
>
>Es fehlen höchstwahrscheinlich Anführunszeichen um den Pfadnamen, denn
>der enthält (normalerweise) ein Leerzeichen: ...\Microsoft Office\...
Nein, an den Anfuehrungszeichen kann es nicht liegen.
Bei Pfadangabe funzt die Verknuepfung, bei Angabe einer Variablen
(also nur der Austausch des Pfades durch eine %Variable% mit genau dem
selben Pfad) nicht.
Weil es unter W2K keine start.exe gibt:
cmd.exe /c start msaccess
--
Gruß Jörg
Paß auf, daß nichts runtertropft, sonst muß Mama wieder mit P**sil
M**aperls Color ran :-)
--
Gruß Jörg
Hallo Joerg,
>Weil es unter W2K keine start.exe gibt:
>cmd.exe /c start msaccess
genau so wollte ich es haben. :-)
Herzlichen Dank.