Rejestr systemowy (windows) + odpalanie a'la GG:numer

0

o co biega pewno znacie ze mozna w stronie uzyc np tekst linka

the thing is... program ktoremu w ten sposób chce przekazac parametr (konkretnie ip servera gry) nie chce sie odpalic bo... katalog roboczy jest brany z programu który ów link odpala.

i tak np jak odpale z mozilli (która jest np w C:\Mozilla) to program sie odpali w tymze katalogu co mozilla a nie w swoim wlasnym.

Rozwiazaniem może byc sciezka wysukiwania albo narzucenie programowi katalogu roboczego.

Oto moj przykladowy wpis w rejestrze (tekst z eksportowanego wpisu do pliku)

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\et]
@="URL:Enemy Territory"
"URL Protocol"=""

[HKEY_CLASSES_ROOT\et\shell]
@="open"

[HKEY_CLASSES_ROOT\et\shell\open]

[HKEY_CLASSES_ROOT\et\shell\open\command]
@="\"C:\\Gry\\ET\\et.exe\" +connect \"%1\""

to sprawia ze np jak klikne link <a href="et:ip:port>nazwa servera</a> to przykladowo mozilla otworzy program tak jak bys wpisal w lini polecen
"C:\Gry\ET\et.exe" +connect "ip:port"

z ta roznica ze katalogiem roboczym bedzie katalog roboczy mozilli...
a ze program wymaga (z wiadomych powodow) dostepu do map dlli etc musi byc uruchomiony w swoim "ojczystym" katalogu.

[Dopisane]

Kazda rada/pomoc mile widziana

rowniez linki i innego typu porady

baaaaardzo mile widziane przykłady

[Dopisane 2]

przyklad z konsoli programu o co biega

ET 2.56 win-x86 Sep  5 2003
----- FS_Startup -----
Current search path:
<b>C:\Documents and Settings\Administrator\Pulpit</b>/etmain

----------------------
0 files in pk3 files
----- CL_Shutdown -----
-----------------------
Couldn't load default.cfg - I am missing essential files - verify your installation?
0

Napisz skrypt batch lub VBS\JS w któym będziesz według przekazanych parametrów otwierał program z parametrami

0

w tym caly ból ze to ma działać bez zewnetrznych plików jedynie bazując na wpisach w rejestrze systemowym albo w scieżkach szukania... wiem ze to sie da na bazie sciezek szukania to na 100% tylko jak?

druga metoda jest trudniejsza ale pewno mozliwa... nie wierze zeby nie microsoft nie dal takiej mozliwosci skoro w skrocie do programu (de fakto stary dobry pif z win 3.1) mozna ustawic inny katalog roboczy niz katalog z programem

[Dopisane]

piszac osobny skrypt/program to nie sztuka to i ja potrafie zaden problem napisac program który bierze 1 do n parametrow i przekazuje je innemu programowi uruchamiając go w odpowiednim srodowisku etc

0

A nie możesz zamiast

[HKEY_CLASSES_ROOT\et\shell\open\command]
@="\"C:\\Gry\\ET\\et.exe\" +connect \"%1\""

dać

[HKEY_CLASSES_ROOT\et\shell\open\command]
@="\"C:\\Gry\\ET\\et.lnk\" \"%1\""

a w et.lnk odpalać et.exe z parametrem "+connect %1" ?
wtedy w linku możesz ustawić dowolny katalog startowy

0

Jak ci nie odpowiada taki sposób to spróbuj w kluczu HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths dodać klucz et.exe i później jako wartość domyślną pełną sciężkę + nazwę pliku programu, i wartość Path jako ścieżkę do programu.
Głowy nie dam czy to zadziała, ale powinno.

0
Marooned napisał(a)

A nie możesz zamiast

[HKEY_CLASSES_ROOT\et\shell\open\command]
@="\"C:\\Gry\\ET\\et.exe\" +connect \"%1\""

dać

[HKEY_CLASSES_ROOT\et\shell\open\command]
@="\"C:\\Gry\\ET\\et.lnk\" \"%1\""

hehe gada ze nie ejst prawidlową aplikacją systemu windows... pewno windows nie wywluje tej samej metody co przy dwukrotnym kliknieciu ale metode ktora bezposrednio odpala proces (plik wykonywalny)

co do drugiej metody jeszcze nie wyprobowalem zara bede patrzyl czy dziala

ale juz teraz dziekuje za pomoc

[Dopisane]
druga metoda tez nie dziala :/ trza jakos inaczej kombinowac :0

0

A czemu po prostu nie korzystasz z pełnych ścieżek w programie? Wystarczy, że pobierzesz ścieżkę do programu i przykleisz do nazwy pliku.

0

REGEDIT4

[HKEY_CLASSES_ROOT\et]
@="URL:et Protocol"
"URL Protocol"=""

[HKEY_CLASSES_ROOT\et\shell]
@="open"
[HKEY_CLASSES_ROOT\et\shell\open]
@="&Play in this et server"
[HKEY_CLASSES_ROOT\et\shell\open\command]
@="\"P:\\Games\\Wolfenstein - Enemy Territory\\ET.exe\" +set fs_homepath \"P:\\Games\\Wolfenstein - Enemy Territory\\\" +set fs_basepath \"P:\\Games\\Wolfenstein - Enemy Territory\\\" +connect +"ip:port" %1"\"

i don´t know but i think it works...

1 użytkowników online, w tym zalogowanych: 0, gości: 1