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-Key: 218366

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

Printed on: April 16, 2024 at 19:04 o'clock

Member: Budders
Budders Oct 02, 2013 updated at 10:57:50 (UTC)
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
Member: brammer
brammer Oct 02, 2013 updated at 11:22:12 (UTC)
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
Member: Budders
Budders Oct 02, 2013 at 11:24:48 (UTC)
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
Member: brammer
brammer Oct 02, 2013 at 11:26:41 (UTC)
Goto Top
Hallo,

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

brammer
Member: miniversum
miniversum Oct 02, 2013 at 11:29:00 (UTC)
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
Member: colinardo
colinardo Oct 02, 2013 updated at 11:38:14 (UTC)
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
Member: Budders
Budders Oct 02, 2013 updated at 11:40:58 (UTC)
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 <.<
Member: brammer
brammer Oct 02, 2013 at 11:54:07 (UTC)
Goto Top
Hallo,

@colinardo

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

brammer
Member: MartinBinder
MartinBinder Oct 02, 2013 at 13:08:22 (UTC)
Goto Top
Nö, lesen geht (fast) immer face-smile
Member: colinardo
colinardo Oct 02, 2013 at 13:09:48 (UTC)
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 ...
Member: brammer
brammer Oct 02, 2013 at 13:32:56 (UTC)
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
Member: brammer
brammer Oct 02, 2013 updated at 14:14:25 (UTC)
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
Member: bastla
bastla Oct 02, 2013 at 14:51:59 (UTC)
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
Member: rubberman
rubberman Oct 02, 2013 at 20:12:04 (UTC)
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
Member: brammer
brammer Oct 08, 2013 at 11:10:26 (UTC)
Goto Top
Hallo,

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

Danke!

brammer
Member: brammer
brammer Oct 15, 2013 at 13:07:05 (UTC)
Goto Top
Hallo,

nochmal dank für die Hilfestellung!

funktioniert jetzt!

brammer