Windows - spuštění aplikace přes zástupce a přímo - rozdíl
Ahoj,
Doposud jsem žil v tom, že když se spouští aplikace pod Windows, tak je jedno, zda je spuštěna "přímo" v průzkumníkovi, a nebo z plochy přes zástupce.
Mýlil jsem se.
Mám aplikaci. A normálně, když vytvořím zástupce (pravou myší), tak aplikace nenaběhne přes zástupce. Nikdy.
Ovšem pokud přes průzkumníka poklepu na EXE soubor, tak se okamžitě rozeběhne.
V detailech aplikace jsem nic neměnil u zástupce.
Rovněž pracovní adresář je v pořádku.
Můj dotaz je: JAK JE TOTO TECHNICKY VŮBEC MOŽNÉ ?
Někdo by mohl namítnou, že je to drobnost.
Ale toto mi hlava nebere.
A složité věci jsou složeny jen ze spousty drobností.
Ještě jsem nic takového neviděl.
Hádej proč se tedy ptám.
Já jsem také nic takového neviděl. Ale nejsem sám, komu to tak dělá.
Respektive, abych to upřesnil.
Program se sice spustí, ale jen v procesech.
Neobjeví se jeho okno.
Pokud program spustím poklepáním na EXE, ihned se spustí i okno.
Podíval bych se u daného procesu s jakými parametry byl spuštěn. Nějaký rozdíl tam být musí.
Chtěl jsem naznačit, že to asi není standardní chování ... takže je to "v té aplikaci" nebo "ve tvém PC".
Jestli ten program někdo schválně tak udělal, co je na to divného?
Ještě to podrobněji analyzuji, jak píše Wikan.
Není mi známo, že program může detekovat, až na takové úrovni rozdíl.
Některé programy lze spustit s GUI nebo jako službu (bez GUI).
Heh.
Ale to buďto je řešeno přes parametry EXE, a nebo přes jiná EXE (jiný soubor).
Mas u zastupce vyplnenou slizku, ve ktere se ma aplikace spoustet?
Kdyz spustisх primo exe, je jeho pracovni slozka ta, ze ktere jsi ho spustil.
Kdyz spustis zastupce, muze to byt jine a pokud je aplikace "blba" a ceka v pracovni slozce nejake soubory, tak ma smulu.
Navic zastupce umoznuje spusteni s kompatabilitou a s tim se poji virtualizace slozek pro starsi aplikace.
Na to již odpovědi viz výše. (Automaticky vytvořený zástupce.)
To znamena, ze spustit v je vyplneno do slozky s hrou?
A co se tyka tozdilu, Windows maji seznam aplikaci, ktery spousti v ruznych kompatibilnich rezimech. Zastupce to muze "prebyt".
Krome toho, kdyz se aplikace nekolikrat normalne nespusti nebo spusti s problemy, Windows na ni pusti sledovani a nasledne opet nasadi nejakou kompatibilitu.
Jen malý grammar nazi, hrozně to tluče do očí - "přebít" neboli "přetlouct", nikoliv "přebýt", čili "zůstat někde"
automaticky vytvoreny zastupce bezneho .exe obvykle nastavi jeho pracovni adresar. pokud nahodou neni vyplnen, muze se jim myslet system32 nebo adresar prodilu uzivatele. ale nemusi mit pro vsechny usery pravo zapisu.
kliknutim primo na .exe jsem v jeho adresari, opet to same s pravy zapisu.
kdyz mam slozeny prikaz (cmd.exe neco, control.exe neco, cscript.exe neco), cesta se obvykle nastavi podle prvniho .exe, zatimco moje "appka" lezi jinde.
Buď, prosím konkrétní. Jaký OS, jaký program?
Jedná se o legální Windows 11 (64b) Professional
Aplikace je Resident Evil 4 Remake.
Je to rozšířený bug této hry.
Mě ale zajímá, jak to funguje technicky.
Tahle hra měla a stále má mnoho problému souvisejících se spuštěním. Tvůj je patrně jen jeden z mnoha.
Duvodem bude odlišný workdir. (Pokud program bude číst "../a.txt" patrně "při klikani na exe" to bude vuci exe, v pripase zastupce vuci zástupci)
--není li v zástupci urcčen workdir jinak ("Spustit v...")
Taky jsem se s tím u jednoho programu setkal, že mi nešel udělat zástupce (chyba byla něco jako že soubor není platnou aplikací win32 nebo tak nějak). Řešením tehdy bylo udělat dávkový soubor, který aplikaci pouští a zástupce směrovat na něj a vše bylo v pořádku.