1

Konu: Registry değerlerini düğüm olarak okumak.

Herkese iyi haftalar.

Foxpro ile Windows registry'den bir değerin  node ( düğüm ) değerlerini okumak istiyorum. Şöyle ki.

Okumak istediğim Üst değer :

HKEY_CURRENT_USER\Printers\Connections


Elde etmek istediğim alt değerler :

HKEY_CURRENT_USER\Printers\Connections\,,AlininBilgisayari,HP Officejet 6000 E609a Series
HKEY_CURRENT_USER\Printers\Connections\,,VelininBilgisayari,EPSON Stylus D120 Series
HKEY_CURRENT_USER\Printers\Connections\,,HakaninBilgisayari,EPSON Stylus Photo RX685 Series Yeni

Yardımlar ve öneriler için imdiden teşekkürler ...

Uğur
-------------------------------------------------------------------------------------------------------------
Hayat bir bisiklete binmek gibidir. Pedalı çevirmeye devam ettiğiniz sürece düşmezsiniz. Claude Peppeer
Kusuru söylenmeyen adam, ayıbını hüner sanır.  Türk Atasözü

2 Son düzenleyen, cetinbasoz (28.06.2010 17:56:32)

Re: Registry değerlerini düğüm olarak okumak.

Demek istedigin bu mu:

Visual Fox Pro
#DEFINE HKEY_CLASSES_ROOT           -2147483648  && BITSET(0,31)

#DEFINE HKEY_CURRENT_USER           -2147483647  && BITSET(0,31)+1
#DEFINE HKEY_LOCAL_MACHINE          -2147483646  && BITSET(0,31)+2
#DEFINE HKEY_USERS                  -2147483645  && BITSET(0,31)+3
LOCAL ARRAY laOptions[1]
 
lcKey    = 'Software\Microsoft\Windows NT\CurrentVersion\Time Zones'
LOCAL loReg as 'registry' OF HOME()+'ffc\registry.vcx'
loReg = NEWOBJECT('registry', HOME()+'ffc\registry.vcx')
loReg.EnumOptions(@laOptions, m.lcKey, HKEY_LOCAL_MACHINE,.T.)
 
for ix=1 to alen(laOptions)
   ? laOptions[m.ix]
endfor

3 Son düzenleyen, ugurlu2001 (29.06.2010 08:46:22)

Re: Registry değerlerini düğüm olarak okumak.

Üstat,

Çok teşekkür ederim smile

Bende şöyle bir şey yapıverdim.

Visual Fox Pro
* Author : Ugur YILMAZ

 
? GetSysPrinters()
 
FUNCTION GetSysPrinters
    LOCAL lcEnvironment As String , lcRun, lcTemp, lcSil1,LcSil3, lcString As String, llFirstFlag
    lcString = ""
    llFirstFlag = .F.
 
TEXT TO m.lcSil1
 
! REG.EXE VERSION 3.0
 
ENDTEXT
 
TEXT TO m.lcSil2
 
HKEY_CURRENT_USER\Printers\Connections
ENDTEXT
 
TEXT TO m.lcSil3
 
\
ENDTEXT
 
 
    lcRun = "RUN Reg.Exe query "+'"HKEY_CURRENT_USER\Printers\Connections"' + " >"+ GetEnv("TEMP")+"\Env.txt"
    &lcRun
    m.lcEnvironment = Strtran(FileToStr((GetEnv("TMP")+"\Env.TXT")),Chr(13)+Chr(13),Chr(13))
    lcTemp = "Sysinfo"
    =StrToFile(lcTemp,(GetEnv("TMP")+"\Env.TXT"),0)
 
    m.lcEnvironment = Strtran(m.lcEnvironment, m.lcSil1,"")
    m.lcEnvironment = Strtran(m.lcEnvironment, m.lcSil2,"")
    m.lcEnvironment = Strtran(m.lcEnvironment, m.lcSil3,"")
    m.lcEnvironment = Strtran(m.lcEnvironment, "\","")
 
    FOR i = 1 TO Len(m.lcEnvironment)
 
        IF Substr(m.lcEnvironment,m.i,1) = Chr(13)
            IF llFirstFlag = .T.
                m.lcString = m.lcString + "
;"
                llFirstFlag = .F.
            ENDIF
        ELSE
            m.lcString = m.lcString + SubStr(m.lcEnvironment,m.i,1)
            m.llFirstFlag = .T.
        ENDIF
    EndFor
 
    m.lcString = Substr(m.lcString,1,Len(m.lcString)-1)
 
    RETURN (m.lcString)
 
    *!*    _ClipText = m.lcEnvironment
    *!*    http://support.microsoft.com/kb/188135/tr
    *!*    http://www.chip.com.tr/ipucu/windows-script-host-8217-u-kullanmak_456.html
    *!*    http://support.microsoft.com/kb/244675/EN-US/
    *!*    http://fox.wikis.com/wc.dll?Wiki~UseOfRegistry
ENDFUNC
Uğur
-------------------------------------------------------------------------------------------------------------
Hayat bir bisiklete binmek gibidir. Pedalı çevirmeye devam ettiğiniz sürece düşmezsiniz. Claude Peppeer
Kusuru söylenmeyen adam, ayıbını hüner sanır.  Türk Atasözü

4

Re: Registry değerlerini düğüm olarak okumak.

Bu arada sadece .F. değeri dönüyor. Ne kadar normal?


Visual Fox Pro
#DEFINE HKEY_CLASSES_ROOT           -2147483648  && BITSET(0,31)

#DEFINE HKEY_CURRENT_USER           -2147483647  && BITSET(0,31)+1
#DEFINE HKEY_LOCAL_MACHINE          -2147483646  && BITSET(0,31)+2
#DEFINE HKEY_USERS                  -2147483645  && BITSET(0,31)+3
LOCAL ARRAY laOptions[1]
 
lcKey    = 'HKEY_CURRENT_USER\Printers\Connections'
LOCAL loReg as 'registry' OF HOME()+'ffc\registry.vcx'
loReg = NEWOBJECT('registry', HOME()+'ffc\registry.vcx')
loReg.EnumOptions(@laOptions, m.lcKey, HKEY_LOCAL_MACHINE,.T.)
 
for ix=1 to alen(laOptions)
   ? laOptions[m.ix]
endfor
Uğur
-------------------------------------------------------------------------------------------------------------
Hayat bir bisiklete binmek gibidir. Pedalı çevirmeye devam ettiğiniz sürece düşmezsiniz. Claude Peppeer
Kusuru söylenmeyen adam, ayıbını hüner sanır.  Türk Atasözü

5

Re: Registry değerlerini düğüm olarak okumak.

O zaman onlar key degildir. Ben yanlis anladim galiba.

6 Son düzenleyen, ugurlu2001 (29.06.2010 11:58:35)

Re: Registry değerlerini düğüm olarak okumak.

Belkide ben yanlış anlatmışımdır smile

Üstat, Registry'deki TW yapısındaki bir değerin alt değerlerini almaya çalışmıştım.

Uğur
-------------------------------------------------------------------------------------------------------------
Hayat bir bisiklete binmek gibidir. Pedalı çevirmeye devam ettiğiniz sürece düşmezsiniz. Claude Peppeer
Kusuru söylenmeyen adam, ayıbını hüner sanır.  Türk Atasözü

7

Re: Registry değerlerini düğüm olarak okumak.

Merhaba Uğur

Sanırım senin istediğin bu:
http://www.news2news.com/vfp/?example=1 … &xpg=6

... ama maalesef bu hali ile (bende) çalışmiyor. Belki ama fikir açısından işine yarıyabilir.

Bir projenin bitmesi için 3 seçenek vardır: hızlı, ucuz, iyi. Bu seçeneklerden iki tanesini seçiniz.

8

Re: Registry değerlerini düğüm olarak okumak.

Uğur, sanırım Çetin Beyin Foxite'deki önerisi tam senin istediğin:
http://www.foxite.com/archives/read-or- … 143745.htm

Visual Fox Pro
#Define HKEY_CURRENT_USER -2147483647

Local loReg As Registry OF Home()+'FFC\Registry.VCX'
Local lcKey, lnResult
loReg = Newobject('Registry', Home()+'FFC\Registry.VCX')
lcKey    = 'Software\Microsoft\VisualFoxPro\9.0\Options'
 
LOCAL ARRAY aOptions[1]
lnResult = loReg.Enumoptions(@aOptions, m.lcKey, HKEY_CURRENT_USER)
 
IF m.lnResult = 2 && default
ENDIF
IF m.lnResult = 0
CREATE CURSOR myRegValues (option c(50), value c(200))
APPEND FROM ARRAY aOptions
BROWSE
endif
Bir projenin bitmesi için 3 seçenek vardır: hızlı, ucuz, iyi. Bu seçeneklerden iki tanesini seçiniz.

9

Re: Registry değerlerini düğüm olarak okumak.

Mehmet abi, Çetin Üstat 'ın kodunu arşivime aldım. Hatırlatma için tekrardan teşekkürler smile

Uğur
-------------------------------------------------------------------------------------------------------------
Hayat bir bisiklete binmek gibidir. Pedalı çevirmeye devam ettiğiniz sürece düşmezsiniz. Claude Peppeer
Kusuru söylenmeyen adam, ayıbını hüner sanır.  Türk Atasözü

10

Re: Registry değerlerini düğüm olarak okumak.

Kod ayni kod da sen alt anahtarlarimi, opsiyonari mi aliyorsun:) En sondaki parametre farkli.

11

Re: Registry değerlerini düğüm olarak okumak.

Üstat,

Resimle daha kolay olucak sanırım:

http://cid-9474c2711375e188.office.live … E_Info.JPG

Uğur
-------------------------------------------------------------------------------------------------------------
Hayat bir bisiklete binmek gibidir. Pedalı çevirmeye devam ettiğiniz sürece düşmezsiniz. Claude Peppeer
Kusuru söylenmeyen adam, ayıbını hüner sanır.  Türk Atasözü

12

Re: Registry değerlerini düğüm olarak okumak.

Arkadaşlar kodun son düzenlenmiş hali aşağıdaki gibi.

Visual Fox Pro
*!*    Author: Cetin Basoz 

*!*    READ a node from Registry
 
CLEAR
#DEFINE HKEY_CLASSES_ROOT           -2147483648  && BITSET(0,31)
#DEFINE HKEY_CURRENT_USER           -2147483647  && BITSET(0,31)+1
#DEFINE HKEY_LOCAL_MACHINE          -2147483646  && BITSET(0,31)+2
#DEFINE HKEY_USERS                  -2147483645  && BITSET(0,31)+3
LOCAL ARRAY laOptions[1]
 
lcKey    = 'Printers\Connections'
LOCAL loReg as 'registry' OF HOME()+'ffc\registry.vcx'
loReg = NEWOBJECT('registry', HOME()+'ffc\registry.vcx')
loReg.EnumOptions(@laOptions, m.lcKey, HKEY_CURRENT_USER,.T.)
 
for ix=1 to alen(laOptions)
   ? laOptions[m.ix]
ENDFOR

Çetin Üstadım, ayrıca teşekkürler, sen el atmadan önce uzun bir süre REG.EXE, StrtoFile, FileToSTR ... vs.. ile boğuşmuştum. Sen el atınca herşeyin şekli değişiyor smile

Ellerine sağlık.

Uğur
-------------------------------------------------------------------------------------------------------------
Hayat bir bisiklete binmek gibidir. Pedalı çevirmeye devam ettiğiniz sürece düşmezsiniz. Claude Peppeer
Kusuru söylenmeyen adam, ayıbını hüner sanır.  Türk Atasözü