Programm über console starten, Installationspfad unterschiedlich je nach Betriebssystem
Hallo,
ich möchte einige Programme über eine Batchdatei starten lassen, bsp. ultravnc.
Unter Win XP kein Problem C:\Program Files\UltraVNC\vncviewer.exe in eine Batch packen und gut ists.
unter WIn7 und 8 leider nicht mehr so, da wegen der best Practice der Installationspfad geändert wurde.
Die Batchdatei ist momenten in einer Datenbank hinterlegt aus der VNC aufgerufen werden kann.
Das Funktioniert aber nur bei Win XP Maschinen.
Um nicht alle Datenbank Einträge für VNC unter Win 7, neuanzulegen und danach jeweils zwei Einträge zuhaben würde ich gerne den Installationspfad in einer Batchdatei automatisch suchen lassen.
So das automatisch VNC gestartet wird, egal wo es auf der Maschine installiert ist.
Da ich in der Programmerung nicht besonders gut bin, erst mal die frage ob und wie das gehen könnt?
brammer
ich möchte einige Programme über eine Batchdatei starten lassen, bsp. ultravnc.
Unter Win XP kein Problem C:\Program Files\UltraVNC\vncviewer.exe in eine Batch packen und gut ists.
unter WIn7 und 8 leider nicht mehr so, da wegen der best Practice der Installationspfad geändert wurde.
Die Batchdatei ist momenten in einer Datenbank hinterlegt aus der VNC aufgerufen werden kann.
Das Funktioniert aber nur bei Win XP Maschinen.
Um nicht alle Datenbank Einträge für VNC unter Win 7, neuanzulegen und danach jeweils zwei Einträge zuhaben würde ich gerne den Installationspfad in einer Batchdatei automatisch suchen lassen.
So das automatisch VNC gestartet wird, egal wo es auf der Maschine installiert ist.
Da ich in der Programmerung nicht besonders gut bin, erst mal die frage ob und wie das gehen könnt?
brammer
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 218366
Url: https://administrator.de/contentid/218366
Ausgedruckt am: 22.11.2024 um 02:11 Uhr
16 Kommentare
Neuester Kommentar
Moin.
Auf win 7 und 8 ist der Installationspfad doch immer durch ein (x86) ergänzt oder täusche ich mich
dann wäre das ja relativ einfach
MfG Budders
Auf win 7 und 8 ist der Installationspfad doch immer durch ein (x86) ergänzt oder täusche ich mich
dann wäre das ja relativ einfach
@echo off
if exist "c:\Program Files\UltraVNC\vncviewer.exe" start "c:\Program Files\UltraVNC\vncviewer.exe" && exit
if exist "c:\Programme(x86)\UltraVNC\vncviewer.exe" start "c:\Program Files(x86)\UltraVNC\vncviewer.exe" && exit
if exist "c:\Programme\UltraVNC\vncviewer.exe" start "c:\Programme\UltraVNC\vncviewer.exe" && exit
MfG Budders
Hallo brammer,
am zuverlässigsten ist es den Installationspfad der Programme mit "reg query" aus der Registry auszulesen, falls die jeweiligen Programme in unterschiedlichen Verzeichnissen installiert wurden. Du musst nur einmalig in der Registry den Installationspfad für das jeweilige Programm herausfinden, den die meisten Programme dort hinterlegen.
Beispiel mit Firefox auf einer 64bit-Maschine
Grüße Uwe
am zuverlässigsten ist es den Installationspfad der Programme mit "reg query" aus der Registry auszulesen, falls die jeweiligen Programme in unterschiedlichen Verzeichnissen installiert wurden. Du musst nur einmalig in der Registry den Installationspfad für das jeweilige Programm herausfinden, den die meisten Programme dort hinterlegen.
Beispiel mit Firefox auf einer 64bit-Maschine
SET "REGPATH="HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Mozilla\Mozilla Firefox\24.0 (de)\Main"
SET "REGVALUE=InstallDirectory"
for /f "skip=2 tokens=2,*" %%k IN ('reg query "%REGPATH%" /v "%REGVALUE%"') DO @(start "" "%%l\firefox.exe")
Grüße Uwe
Zitat von @brammer:
Das auslesen aus der Registry dürfte aber an den Adminstrator Rechten scheitern.
ich schreibe ja nicht in die Registry sondern lese nur den entsprechenden Wert, und auch unter HKLM hast du als "Otto-Normal" Benutzer Leserechte! Zwar nicht in bestimmten Ordnern aber auf die im Zweig -> Software allemal ...Das auslesen aus der Registry dürfte aber an den Adminstrator Rechten scheitern.
Hallo Zusammen.
Ist es die 32Bit Anwendung?
Teste mal
Falls es die 64Bit Anwendung ist, streiche einfach mal Zeile 3 und teste erneut.
Grüße
rubberman
Ist es die 32Bit Anwendung?
Teste mal
@echo off &setlocal
set "w64="
if exist "%SystemRoot%\SysWOW64\" set "w64=Wow6432Node\"
set "regpath=HKEY_LOCAL_MACHINE\SOFTWARE\%w64%Microsoft\Windows\CurrentVersion\Uninstall"
for /f "delims=" %%i in ('reg query "%regpath%" /f "UltraVNC" /d /s ^| findstr /bic:"%regpath%"') do (
for /f "tokens=2*" %%j in ('reg query "%%i" /v "InstallLocation"') do set "vncpath=%%k"
)
echo "%vncpath%"
pause
Grüße
rubberman