brammer
Goto Top

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

Content-ID: 218366

Url: https://administrator.de/contentid/218366

Ausgedruckt am: 22.11.2024 um 02:11 Uhr

Budders
Budders 02.10.2013 aktualisiert um 12:57:50 Uhr
Goto Top
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
@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
brammer
brammer 02.10.2013 aktualisiert um 13:22:12 Uhr
Goto Top
Hallo,

wenn das so einfach geht...
das heißt mit einem Installationspfad

if exist "c:\application\UltraVNC\vncviewer.exe" start "c:\application\UltraVNC\vncviewer.exe" && exit  

würde VNC im Installationspfad c:\application\UltraVNC\ gestartet werden?

brammer
Budders
Budders 02.10.2013 um 13:24:48 Uhr
Goto Top
Hallo.

ja, vncviewer.exe würde in c:\application\UltraVNC\ gestartet werden, das hast du richtig erkannt.

Habe ich sonst was vergessen oder ist das schon das wonach du gesucht hast?

MfG Budders
brammer
brammer 02.10.2013 um 13:26:41 Uhr
Goto Top
Hallo,

ginge das auch mit einem unbekannten Installationspfad?
Also das nach der vncviewer.exe gesucht wird und dann gestartet wird?

brammer
miniversum
miniversum 02.10.2013 um 13:29:00 Uhr
Goto Top
Hallo

wenn dann bitte so:
start "" "c:\application\UltraVNC\vncviewer.exe"
oder so
start "Starte UltraVNC" "c:\application\UltraVNC\vncviewer.exe"
sonst startet da garnix face-wink
colinardo
colinardo 02.10.2013 aktualisiert um 13:38:14 Uhr
Goto Top
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
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
Budders
Budders 02.10.2013 aktualisiert um 13:40:58 Uhr
Goto Top
Hallo

wenn dann bitte so:
start "" "c:\application\UltraVNC\vncviewer.exe"
oder so
start "Starte UltraVNC" "c:\application\UltraVNC\vncviewer.exe"
sonst startet da garnix face-wink



UPS! :p *facepalm* mein Fehler <.<
brammer
brammer 02.10.2013 um 13:54:07 Uhr
Goto Top
Hallo,

@colinardo

Das auslesen aus der Registry dürfte aber an den Adminstrator Rechten scheitern.

brammer
MartinBinder
MartinBinder 02.10.2013 um 15:08:22 Uhr
Goto Top
Nö, lesen geht (fast) immer face-smile
colinardo
colinardo 02.10.2013 um 15:09:48 Uhr
Goto Top
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 ...
brammer
brammer 02.10.2013 um 15:32:56 Uhr
Goto Top
Hallo,

@colinardo

okay, das sollte dann wohl gehen.

Aber wie ginge das in einer Batch das nach der vncviewer.exe gesucht wird und diese dann gestartet wird?

brammer
brammer
brammer 02.10.2013 aktualisiert um 16:14:25 Uhr
Goto Top
Hallo,

ich habe jetzt mal ein bisschen gegoolglet und experimentiert.
for /r "c:\" "%i" in (vncviewer.*) do set var="%i" | if exist start "%i"  

sollte auf der Kommandozeile doch gehen, liefert aber folgendes

H:\>set var=c:\Program Files\test\UltraVNC\vncviewer.exe   | if exist c:\Program
 Files\test\UltraVNC\vncviewer.exe start c:\Program Files\test\UltraVNC\vncviewer.exe
"Files\test\UltraVNC\vncviewer.exe" kann syntaktisch an dieser Stelle nicht verarbeitet werden.  

brammer
ich sach doch programmieren ist nicht meine Stärke
bastla
bastla 02.10.2013 um 16:51:59 Uhr
Goto Top
Hallo brammer!

Im einfachsten Fall (nur eine "vncviewer.exe" im Laufwerk C:, und die soll gestartet werden):
for /f "delims=" %i in ('dir /s/b/a-d "c:\vncviewer.exe"') do "%i"
(bzw als Batch mit jeweils %%i) ...

Grüße
bastla
rubberman
rubberman 02.10.2013 um 22:12:04 Uhr
Goto Top
Hallo Zusammen.

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
Falls es die 64Bit Anwendung ist, streiche einfach mal Zeile 3 und teste erneut.

Grüße
rubberman
brammer
brammer 08.10.2013 um 13:10:26 Uhr
Goto Top
Hallo,

sobald ich zum weitertesten komme, und noch hilfe brauche melde ich mich erneut.

Danke!

brammer
brammer
brammer 15.10.2013 um 15:07:05 Uhr
Goto Top
Hallo,

nochmal dank für die Hilfestellung!

funktioniert jetzt!

brammer