Tak nejak nevim, do jakeho klubu muj dotaz spada, tyka se totiz primarne Windows, ale obavam se, ze ani programovani v Cecku se nakonec dost mozna nevyhnu.
O co jde: cilem je najit zpusob, jak ve Windows (pokud jsou v tom odlisnosti, tak konkretne me zajimaji XP) z prikazove radky pro libovolny soubor spustit aplikaci, ktera je s timto souborem asociovana, a v ni soubor otevrit (cili provest totez, jako kdybych v Exploreru na dotycnem souboru udelal dvojclick).
Svymi vlastnimi vyzkumy jsem dospel ke dvema zpusobum: start soubor a cmd /c soubor. Oba maji jednu spolecnou nevyhodu - nezvladnou soubory vsech nazvu - pokud ma soubor v nazvu nektere znaky (jinak v nazvu povolene), tak to proste nerozdejchaj (kazdej trochu jinak, ale proste ne) - konkretne to je napriklad leva zavorka (kupodivu prava nikoliv, s tou je to v pohode) a par dalsich (tusim striska, ampersand, apostrof - ale temahle uz si nejsem jistej, mam to nekde napsany, musel bych se podivat). Jinymi slovy pokud clovek napise cmd /c "0.png", tak je to v pohode, ovsem pokud se soubor nedejboze jmenuje trochu jinak, tak cmd /c "0().png" proste neprojde.
Takze dotaz cislo jedna je, jestli neni jeste nejaky jiny zpusob, jak to udelat, ktery by skutecne fungoval spolehlive pro vsechny na Windows povolene nazvy souboru (zrovna totiz zavorkama se nektery veci stazeny z netu primo hemzi a furt to prejmenovavat me nebavi).
Dotaz cislo dve - pokud zadny lepsi zpusob neni, tak urcite musi jit napsat nejaky uplne trivialni program v Cecku, ktery pres WinAPI proste patricny proces spusti (to snad nemuze byt nic sloziteho - urcite je nejaka funkce, co vrati program, ktery je s danym souborem asociovan - kuprikladu v Jave za pouziti SWT to udelat umim, ale to mi prijde jako trochu zbytecne nabubrele reseni) - jenze jelikoz WinAPI vubec neovladam, tak bych potreboval pokud mozno kompletni funkcni zdrojak. :-) Co ale hur - zaroven bych potreboval, abych si ho mohl prelozit a nemusel na to pouzit zadny placeny Visual Studio nebo tak podobne. Coz teda nevim, jestli vubec jde - je mi jedno, co pro to budu muset stahnout, treba Borland dodava nejaky free command-line utility, co jakztakz neco prelozit umi, tak nevim, jestli i MS neco takoveho nema a jestli by to nestacilo. Nebo kdyby to slo cygwinem, taky muze byt. Ale musi to byt free.
Bredy: Mimochodem kdysi jsme se tu bavili o fork() a cygwinu, tak skutecne tam tuhle metodu implementovanou maj (jak, to samozrejme stale nevim), ale narazil jsem na nejaky povidani ohledne toho v jednom PDFku, co je s cygwinem dodavany, tak pokud chces, muzu ho nekde vystavit a muzes si to tam precist. |