Drag and drop working directory Windows 10-en

 ( answ | 2019. június 30., vasárnap - 22:34 )

Windows 10 alatt van egy python programom, amire rá kell húzni a feldolgozandó fájlt (Fájlkezelőben), ami mellé létrehoz egy kimeneti fájlt. Ez jól is működött több gépen, míg az egyiken IOError-al kilépett. Kiderült hogy az adott gépen a C:\Windows\System32 mappája mindig a working directory drag and dropnál és nem az a mappa, amiben a programom és a fájl is van. Persze ezt javítani fogom a programban úgy, hogy a paraméterként kapott fájl útvonalát fogom venni, azonban érdekel hogy mégis mi alapján dönti el a Windows 10, hogy mi legyen a working directory drag and dropnál és ezt hol lehet állítani?

Köszönöm.

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

A "python program" az micsoda pontosan? Tehát amire ráhúzod a bemeneti file-t. Egy .py file? Vagy pedig valamilyen előfordított .exe?

Elsőnek azt nézném meg, hogy nincs-e valamilyen beállítás, hogy a .py file-okat automatikusan adminisztrátorként indítsa. Ugyanis az UAC-nál szokott ez lenni a viselkedés, hogy a C:\Windows\System32 lesz az aktuális könyvtár, pl. ha command ablakot nyitsz UAC használatával. Ennek eredetileg az az oka, hogy ne lehessen úgy trükközni, hogy adminként nem odafigyelve véletlenül lefuttatsz valami olyat relatív hivatkozással, ami a sima usered home könyvtárában van, és kártékony file.

Egy .py fájl. Python 2.7.16 for Windows futtatja, amit C:\Python27 mappába telepítek és path-hoz is hozzáadom persze ezt.
Ellenőrözni fogom milyen joggal fut, illetve UAC beállítást is holnap.

amire rá kell húzni

Így tippre: amire rá kell húzni, na annak az objektumnak lesz egy default könyvtára, szerintem abban indul el a program.

"annak az objektumnak lesz egy default könyvtára"
És ezt hogyan lehet megadni?

Jobb klikk, properties.

Nekem ott csak egy "Hely:" tulajdonság van, ami nem módosítható (és igen ott található a fájl).

Ha a programnak csinálsz egy parancsikont, azon adod meg a WorkingDirectory-t és arra Drop-polsz, akkor jól működik?

Jó ötlet, holnap megnézem.