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

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

Demek istedigin bu mu:

Visual Fox Pro
1

2
3
4
5
6
7
8
9
10
11
12
13
14
#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

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

Yen yaz 1907'ye yolla FB gelsin evinde yensin.
(sonra salaklar ciksin alin terine şike desin)

3

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

Üstat,

Çok teşekkür ederim smile

Bende şöyle bir şey yapıverdim.

Visual Fox Pro
1

2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
* 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

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

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
1

2
3
4
5
6
7
8
9
10
11
12
13
14
#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.

Yen yaz 1907'ye yolla FB gelsin evinde yensin.
(sonra salaklar ciksin alin terine şike desin)

6

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.

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

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 tane 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
1

2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#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 tane 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.

Yen yaz 1907'ye yolla FB gelsin evinde yensin.
(sonra salaklar ciksin alin terine şike desin)

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
1

2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
*!*    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ü