Banyak aplikasi (khususnya alat pengembang) mengharuskan Anda menambahkan path ke variabel lingkungan PATH di Windows. Saya tahu apa yang dilakukan, tetapi bagi saya ini terasa tingkat rendah
Apakah tidak ada alternatif untuk ini dan variabel lingkungan lainnya, menyebabkan efek yang sama pada Windows? Misalnya, bisakah perangkat lunak dikembangkan dengan cara yang berbeda dan mengelolanya dengan teknik lain?
.bat
file Windows akan tetap setelah berhenti. Anda dapat mengubah perilaku ini jika Anda tidak ingin itu terjadi dengansetlocal
danendlocal
, meskipun.App Paths
pengaturan registri dapat digunakan untuk mendaftarkan aplikasi yang dapat dieksekusi di seluruh sistem atau untuk pengguna individu seperti menambahkan direktori aplikasi kePATH
. Jadi aplikasi dapat dimulai dengan menulis hanya nama yang dapat dieksekusi di baris perintah.Untuk detail lebih lanjut tentang
App Paths
memeriksa artikel ini http://msdn.microsoft.com/en-us/library/windows/desktop/ee872121.aspx atau kunci registriHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths
sumber
App Paths
digunakan olehShellExecute()
fungsi, tetapi tidak olehCreateProcess()
fungsi, oleh karena itu beberapa aplikasi yang memulai program lain mungkin tidak dapat menemukan executable yang terdaftar hanya diApp Paths
.App Paths
tidak berfungsiCreateProcess()
, itu berarti bahwa mereka tidak akan bekerja dari command prompt, atau powershell prompt. Tetapi itu berarti Anda dapat menggunakanstart
perintah, yang memang digunakanShellExecute
.>start notepad++ readme.txt
Setiap aplikasi dapat dibuat portabel ketika sedang dikembangkan. Tidak perlu menggunakan variabel PATH.
Tekniknya adalah untuk mendapatkan jalur peluncuran aplikasi dan menggunakannya untuk meluncurkan modul aplikasi lain secara relatif ke jalur peluncuran ini. jalur pencarian dll sudah termasuk jalur aplikasi jadi ini berlaku untuk executable lain atau modul / data yang menyusun aplikasi.
sumber
program.exe
dari Command Prompt. Jikaprogram.exe
merupakan bagian dari aplikasi protable yang dipasang di beberapa folder acak , dan tidak termasuk dalam Path, itu tidak akan ditemukan.Satu-satunya solusi lain adalah dengan meletakkan semua file dalam direktori yang sama dengan yang dapat dieksekusi, sehingga jalur tidak diperlukan untuk mengakses file. Atau tentukan pintasan untuk dieksekusi dengan nama jalur default.
Solusi ini digunakan oleh banyak aplikasi, untuk alasan ini: hindari menambahkan diri ke PATH.
sumber
Iya. Apa yang akan saya lakukan dalam kasus ini, (jika Anda memiliki program untuk menginstal atau yang lainnya, tetapi Anda tidak dapat mengakses variabel Path) hanya membuatnya sehingga biner (program yang dapat dieksekusi) diinstal ke dalam folder
C:\Windows
atauC:\Windows\System32
. Kemudian Anda akan bisa menyebutnya dari baris perintah atau pemrograman, dengan hanyaprogram
,program /option
atauprogram -o
, atau apa pun itu.Ini benar-benar akan optimal untuk menambahkannya ke
%Path%
variabel sistem, dan jika menargetkan Windows Vista, 7, atau 8, Anda dapat meminta pengguna untuk meningkatkan hak istimewa dan mengizinkannya untuk mengaksesnya. Tetapi jika itu entah bagaimana bukan pilihan, maka Anda setidaknya harus dapat melakukan apa yang saya katakan di atas.sumber
Itu akan menjadi "Tingkat rendah", jika Anda menerapkan LD_PRELOAD dengan mengaitkan beberapa panggilan FileOpen (), bukan dengan menempatkan .dll ke folder program. Beberapa implementasi aufs / unionfs mungkin menjadi solusi lain.
sumber