Her pc de olan dosya adres uzantıları. (Örn. c:\ gibi)

Başlatan EMG81, 06 Kasım 2012, 17:53:57

EMG81

Merhaba,

Öğrenmek istediğim şey şu. Her pc de olan ve kullanıcıya göre değişmeyen adres yoluna ihtiyacım var. Mesela "c:\" gibi. Belgelerim gibi klasörler pc nin kullanıcı adına göre tanımlanıyorlar. Onada bir örnek vermek gerekirse,
"C:\Users\xxxxx bilgisayar\Documents" gibi.

C:\ işimi görmüyor. Sebebi ise bu gün yaşadığım bir problem.. Win7 yüklü bir pc ye ne yaptıysam yapayım, c sine erişim izni veremedim. Nette yazılanların neredeyse hepsini denedim.
C:\ fix her pc de var ama D:\ yok. Yada dediğim gibi belgelerim klasörüne erişmek için pc nin adı gerekli. Ben her pc de olan ve şu C:\ gibi erişim sorunu yaratmayan bir adres arıyorum.

Teşekkürler.

t2

#1
Bu klasöre bir program ile mi erişmek istiyorsunuz?  Geliştirme ortamında bunlar tanımlanmıştır. User desktop user documnets gibi değişken belirtilerise her bilgisayarda o klasöre erişileibilir.

Programınız bir setup ise (inno setup mesela) onun içinde de belirtilmiş. Belgeler klasörüne bişeyyap diyorsun yapıyor. programfiles'a yap dersen onuda yapar.

Windows yüklü bilgisayarın Çalıştır ksımına gelelim
%USERPROFILE%\
yazıp entere basalım.
güzel bir klasör açılacaktır. buraya dosya kopyalayabilir  klasör açabiliriz.

EMG81

Programım ile birlikte çalışan programlar var. Programım exe yani setuplı değil. C:\ içersindeki programlara erişip onlar ile çalışıyor vs. (Bunlara fazla takılmayalım.)

Bu gün karşılaştığım şey,

C kendisine hiçbirşeyi eriştirmiyordu. Bu sorunu C->Özellikle->Güvenlik kısmından izin vererek aşabiliyor olmamız gerekir di. Kendi pc im de ve başka birkaç pc de denedim sorun yok. İzin verilince problem ortadan kalkıyor fakat bu işi yapmak istediğim pc buna bir türlü izin vermiyor. (Buna da fazla takılmayalım)

İstediğin şey sorunsuz, her pc de olan bir dosya adresi.
Desktop mantıklı ama masa üstünü gereksiz yere kirletmeye gerek yok.

fatih6761

Üzgünüm ama her PC de olan bir adres ne yazık ki yok.
Alıntı yapılan: EMG81 - 06 Kasım 2012, 17:53:57
C:\ fix her pc de var ama D:\ yok. Yada dediğim gibi belgelerim klasörüne erişmek için pc nin adı gerekli. Ben her pc de olan ve şu C:\ gibi erişim sorunu yaratmayan bir adres arıyorum.
Bir hatayı düzeltelim. C fix diye birşey yoktur. İstediğiniz gibi C, D, Z olarak sistem diskini adresleyebilirsiniz. Sistemlerde C bölümü olmaz zorunda değildir. Bilgisayar ağ üzerinde çalışıyor da olabilir. Bu durumda Ev klasörü ve içeriği ( Belgeler, masaüstü, resimler vs.. ) o ağ adresinde barınır. Bunun için absolute (kesin) adresler yerine relative (soyut) adresler kullanın. Bunlara Sembol adresler de denir. %USERPROFILE% VE %WINDIR% gibi...

ErsinErce

aynı klasörde ise direk yazabilirsiniz hocam ya da bir üst klasörde ise ..\ şeklinde, iki üst klasörde ise ..\..\ şekli de olabilir
1-2 diye aynı klasör altında klasörler olsun programınız 1'in içindeyken yan programlar 2nin içindeyse ..\2\ diyerekte ulaşabilirsiniz

EMG81

Alıntı yapılan: fatih6761 - 06 Kasım 2012, 19:16:12
Üzgünüm ama her PC de olan bir adres ne yazık ki yok. Bir hatayı düzeltelim. C fix diye birşey yoktur. İstediğiniz gibi C, D, Z olarak sistem diskini adresleyebilirsiniz. Sistemlerde C bölümü olmaz zorunda değildir. Bilgisayar ağ üzerinde çalışıyor da olabilir. Bu durumda Ev klasörü ve içeriği ( Belgeler, masaüstü, resimler vs.. ) o ağ adresinde barınır. Bunun için absolute (kesin) adresler yerine relative (soyut) adresler kullanın. Bunlara Sembol adresler de denir. %USERPROFILE% VE %WINDIR% gibi...

Haklısınız ama 100 bilgisayardan 95 inde C diski vardır ve bu %95 lik rakam bana yeterli.
Program files içerine atıp çalışacağım sanırım..

Alıntı yapılan: ErsinErce - 06 Kasım 2012, 19:26:29
aynı klasörde ise direk yazabilirsiniz hocam ya da bir üst klasörde ise ..\ şeklinde, iki üst klasörde ise ..\..\ şekli de olabilir
1-2 diye aynı klasör altında klasörler olsun programınız 1'in içindeyken yan programlar 2nin içindeyse ..\2\ diyerekte ulaşabilirsiniz

Dediğim gibi programım exe ve uzantı exe içersine gömülü. Dışarıdan seçme şansımız yok. (Buna gerek yok) Sanırım C:\Program Files uzantısı her pc de olmasada %95 inde var. :)

ErsinErce

gömülü kısımda adres belirttiğiniz yere yukarıdaki kombinasyonları yazarak çalıştırabilmeniz lazım =S

esensoy

ortam değişkenlerini neden kullanmadığınızı merak ettim? bir sakıncası mı var?
En tehlikeli an "zafer" anıdır.

fatih6761

Program Files 32-bit sistemlerde sabit. sadece bu klasör var. Ama 64-bit sistemlerde Program Files ve Program Files (x86) klasörleri var. Ve program normalde hangi mimariye aitse (x86, x64) ona göre bu klasörlere yükleniyor.

EMG81

Alıntı yapılan: esensoy - 06 Kasım 2012, 20:58:36
ortam değişkenlerini neden kullanmadığınızı merak ettim? bir sakıncası mı var?

Tam olarak neden bahsettiğinizi anlayamadım..

Alıntı yapılan: fatih6761 - 07 Kasım 2012, 21:19:50
Program Files 32-bit sistemlerde sabit. sadece bu klasör var. Ama 64-bit sistemlerde Program Files ve Program Files (x86) klasörleri var. Ve program normalde hangi mimariye aitse (x86, x64) ona göre bu klasörlere yükleniyor.

Evet. 64 bit pclerde böyle.. Benim pc im dede böyle. Program Files var birde Program Files(86) var. 64 bit programların kurulduğu Program Files ın içersinde exe program çalıştırılamayacak diye bir neden yok. Yani buradan yine başa dönüyoruz ki piyasadaki bilgisyarların %95 inde C:\Program Files var.

Yukarıdaki bahsettiğim yol işimi gördü. Sorun yok.

Yanıtlar için herkese teşekkürler.

t2

Ortam değişkenine misal:  %USERPROFILE%\

Bu her bilgisayarda aynıdır. fakat klasörün yeri ismi farklıdır. bunun gibi çok sayıda değişken var. belgeler klasörüne ve diğer klasörlere hep aynı değişkenle ulaşırsınız.yani bu klasöre git derseniz kullanıcı belgeleri her nerede ise o klasöre gitmiş olursunuz. acaba kullanıcının adı neydi klasörü neydi diye aramazsınız.

bütün bu işlerin otomatiği var. programı her hangi bir bilgisayara kopyalatıp orada çalıştırmak için inno setup kullanabilirsiniz.

64 bit 32 bit durumlarını kullanıcı belgeleri veya programfiles neresiyse oraya kopyala çalıştır gibi ayarları otomatik yaptırabilirsiniz. bu klasörler değişken olarak tanımlanmış. Kullanıcı çok meraklıymış  programfiles  klasörünü eliyle değiştirmiş registryden editlemiş olsun. böyle bir durumda dahi programfiles  her neresiyse orayı bul ve orada çalıştır diyebilirsiniz.
Kısayol oluşturmak başlata görev eklemek. programı kurarken illa ki admin kursun diye ayarlamak zaten mümkün.

INNO Setup burada

{userappdata} & {commonappdata} 
The path to the Application Data folder.

{userdesktop} & {commondesktop} * 
The path to the desktop folder.

{userdocs} & {commondocs} 
The path to the My Documents folder (or on NT 4.0, the Personal folder).

{userfavorites} & {commonfavorites} * 
The path to the Favorites folder. Usage of these constants requires a MinVersion setting of at least "4.1, 4". Only Windows 2000 and later supports {commonfavorites}; if used on previous Windows versions, it will translate to the same directory as {userfavorites}.

{userprograms} & {commonprograms} * 
The path to the Programs folder on the Start Menu.

{userstartmenu} & {commonstartmenu} * 
The path to the top level of the Start Menu.

{userstartup} & {commonstartup} * 
The path to the Startup folder on the Start Menu.

{usertemplates} & {commontemplates} *


{app} 
The application directory, which the user selects on the Select Destination Location page of the wizard.
For example: If you used {app}\MYPROG.EXE on an entry and the user selected "C:\MYPROG" as the application directory, Setup will translate it to "C:\MYPROG\MYPROG.EXE".

{win} 
The system's Windows directory.
For example: If you used {win}\MYPROG.INI on an entry and the system's Windows directory is "C:\WINDOWS", Setup or Uninstall will translate it to "C:\WINDOWS\MYPROG.INI".

{sys} 
The system's System32 directory (System on Windows 95/98/Me).
For example: If you used {sys}\CTL3D32.DLL on an entry and the system's Windows System directory is "C:\WINDOWS\SYSTEM", Setup or Uninstall will translate it to "C:\WINDOWS\SYSTEM\CTL3D32.DLL".

On 64-bit Windows, by default, the System32 path returned by this constant maps to the directory containing 32-bit system files, just like on 32-bit Windows. (This can be overridden by enabling 64-bit mode.)

{syswow64}