Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Kann man per Batch-Datei einen Pfad aus der Registry auslesen?

88 views
Skip to first unread message

Matthias Fick

unread,
Aug 14, 2003, 1:01:08 PM8/14/03
to
Hallo,

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

--
matthi...@web.de

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!

Christoph Bail

unread,
Aug 14, 2003, 2:15:54 PM8/14/03
to
Matthias Fick wrote:
> Hallo,
>
> 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.

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

Jörg Ott

unread,
Aug 18, 2003, 4:34:40 AM8/18/03
to
Matthias Fick wrote:
> Hallo,
>
> 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?

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

Matthias Fick

unread,
Aug 18, 2003, 11:35:53 AM8/18/03
to
Jörg Ott <joerg.ot...@gmx.de> schrieb am Mon, 18 Aug 2003
10:34:40 +0200 folgendes:

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.

Michael Hemmer

unread,
Aug 19, 2003, 2:30:14 AM8/19/03
to
Matthias Fick wrote:
> Jörg Ott <joerg.ot...@gmx.de> schrieb am Mon, 18 Aug 2003
> 10:34:40 +0200 folgendes:
>>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!)

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

Jörg Ott

unread,
Aug 19, 2003, 5:30:10 AM8/19/03
to
Matthias Fick wrote:
> Jörg Ott <joerg.ot...@gmx.de> schrieb am Mon, 18 Aug 2003
> 10:34:40 +0200 folgendes:
>
> 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.
>
>

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

Matthias Fick

unread,
Aug 19, 2003, 12:00:28 PM8/19/03
to
Jörg Ott <joerg.ot...@gmx.de> schrieb am Tue, 19 Aug 2003
11:30:10 +0200 folgendes:

Hallo Joerg,

Also, das muss ich mir erst mal auf der Zunge zergehen lassen...

Matthias Fick

unread,
Aug 19, 2003, 12:00:27 PM8/19/03
to
Michael Hemmer <mhemmer@nospam_samson.de> schrieb am Tue, 19 Aug 2003
08:30:14 +0200 folgendes:

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.

Jörg Ott

unread,
Aug 19, 2003, 12:15:07 PM8/19/03
to
Matthias Fick wrote:
> Michael Hemmer <mhemmer@nospam_samson.de> schrieb am Tue, 19 Aug 2003
> 08:30:14 +0200 folgendes:
>
> 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.
>

Weil es unter W2K keine start.exe gibt:
cmd.exe /c start msaccess

--
Gruß Jörg

Jörg Ott

unread,
Aug 19, 2003, 12:17:04 PM8/19/03
to
Matthias Fick wrote:
> Jörg Ott <joerg.ot...@gmx.de> schrieb am Tue, 19 Aug 2003
> 11:30:10 +0200 folgendes:
>
> Hallo Joerg,
>
>>Wie wärs denn hiermit:
>>
>><-- msacclnk.bat - legt Shortcut zu MS Access auf dem Desktop des
> [...]

>
> Also, das muss ich mir erst mal auf der Zunge zergehen lassen...
>
>

Paß auf, daß nichts runtertropft, sonst muß Mama wieder mit P**sil
M**aperls Color ran :-)

--
Gruß Jörg

Matthias Fick

unread,
Aug 20, 2003, 11:27:13 AM8/20/03
to
Jörg Ott <joerg.ot...@gmx.de> schrieb am Tue, 19 Aug 2003
18:15:07 +0200 folgendes:

Hallo Joerg,

>Weil es unter W2K keine start.exe gibt:
>cmd.exe /c start msaccess

genau so wollte ich es haben. :-)
Herzlichen Dank.

0 new messages