Jump to content

Registry Key Değeri 0 Olmadığı Halde Niye 0 Diyor?


radyofon
 Share

Recommended Posts

Registry' da bir key değerini baktırıyorum ve key değeri 3 olmasına rağmen 0' mı diye kontrol ettirdiğimde 0 olduğunu söylüyor. Halbuki bu komutu başka keyleri kontrolde kullanmıştım ve hata vermiyordu. Yardımcı olur musunuz? İşte kodlar:
[code]

--Internet Explorer Güvenilen Siteler Bölgesi Program aracılığıyla pano erişimine izin ver--

Dialog.TimedMessage("Internet Explorer Ayarları", "Internet Explorer 'Güvenlik' 'Güvenilen Siteler Bölgesinde' 'Program aracılığıyla pano erişimine izin ver' ayarları kontrol ediliyor.", 5000, MB_ICONNONE)
iepano = Registry.GetValue(HKEY_CURRENT_USER, "\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\2\\1407", "0", false);
if (iepano) then
Dialogiepano = Dialog.Message("Internet Explorer Ayarları", "Internet Explorer 'Güvenilen Siteler Bölgesinde' 'Program aracılığıyla pano erişimine izin ver' ayarları yapılmış.", MB_OK, MB_ICONINFORMATION);
else
Dialogiepano1 = Dialog.Message("Internet Explorer Ayarları", "Internet Explorer 'Güvenilen Siteler Bölgesinde' 'Program aracılığıyla pano erişimine izin ver' ayarları yapılmamış!\r\n\r\nSizin için ayarları yapmamı ister misiniz?", MB_YESNO, MB_ICONINFORMATION);
if (Dialogiepano1 ==IDYES) then
Registry.SetValue(HKEY_CURRENT_USER, "\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\2", "1407", 0, REG_DWORD);
end
end
[/code]
Link to comment
Share on other sites

[font=tahoma,geneva,sans-serif]Kodlamada bariz hata var. Bu şekilde deneyin ;[/font]

[font=tahoma,geneva,sans-serif][CODE]
iepano = Registry.GetValue(HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\2", "1407", false);
if (iepano) == "1" then
Dialog.Message("Değer", "Değer 1", MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);
else
Dialog.Message("Değer", "Değer "..iepano, MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);
end
[/CODE][/font]

Link to comment
Share on other sites

@DivaneTR Teşekkürler!..
== 1 then vermeden de yeterli oluyor diye biliyordum. Daha önceki kodlamaları bu şekilde yapmıştım. Daha sağlıklı çalışması için onları da değiştirmem gerekiyor anlaşılan. Peki şöyle bir şey doğru mu? Onu da mı değiştirmeliyim?
if (ieg1) and (ieg2) then
yerine
if ((ieg1) and (ieg2)) == 1 then
mi olmalı?
[code]
Dialog.TimedMessage("Internet Explorer Ayarları", "Internet Explorer 'Gizlilik' ayarları kontrol ediliyor.", 5000, MB_ICONNONE);
ieg1 = Registry.DoesKeyExist(HKEY_CURRENT_USER, "\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\P3P\\History\\....");
ieg2 = Registry.DoesKeyExist(HKEY_CURRENT_USER, "\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\P3P\\History\\.....");
if (ieg1) and (ieg2) then
Dialogieg1 = Dialog.Message("Internet Explorer Ayarları", "Internet Explorer 'Gizlilik' ayarları yapılmış.", MB_OK, MB_ICONINFORMATION);
else
Dialogieg2 = Dialog.Message("Internet Explorer Ayarları", "Internet Explorer 'Gizlilik' ayarları yapılmamış!\r\n\r\nSizin için ayarları yapmamı ister misiniz?", MB_YESNO, MB_ICONQUESTION);
if (Dialogieg2 == IDYES) then
Registry.CreateKey(HKEY_CURRENT_USER, "\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\P3P\\History\\.....");
Registry.CreateKey(HKEY_CURRENT_USER, "\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\P3P\\History\\.........");
Registry.SetValue(HKEY_CURRENT_USER, "\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\P3P\\History\\...........", "", 1, REG_DWORD);
Registry.SetValue(HKEY_CURRENT_USER, "\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\P3P\\History\\........", "", 1, REG_DWORD);
end
end

[/code]

Link to comment
Share on other sites

[color=#000000][size=4]if ... then diyebilmeniz için ortada bool bir değer olmalı (true veya false). Oysa registry anahtarından size dönen veri number tipinde. Karşılaştırma işlemleri veri tiplerine göre yapılır, Registry.DoesKeyExist() komutu bool tipinde veri depolar. Dolayısıyla if (ieg1) and (ieg2) then yapısı doğrudur.[/size][/color]

Link to comment
Share on other sites

Bu koddaki hata nerede? IE' de gerekli ayar yapılmış olmasına rağmen yapılmamış diyor. == "1" hatalı çalışıyor.
[code]
Dialog.TimedMessage("Internet Explorer Ayarları", "Internet Explorer 'Internet Bölgesinde' 'Karışık İçeriğe İzin Ver' ayarı kontrol ediliyor.", 5000, MB_ICONNONE)
iekar2 = Registry.GetValue(HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\3\\1609", 0, false);
if (iekar2) == "1" then
Dialogiekar3 = Dialog.Message("Internet Explorer Ayarları", "Internet Explorer 'Internet Bölgesinde' 'Karışık İçeriğe İzin Ver' ayarı yapılmış.", MB_OK, MB_ICONINFORMATION);
else
Dialogiekar4 = Dialog.Message("Internet Explorer Ayarları", "Internet Explorer 'Internet Bölgesinde' 'Karışık İçeriğe İzin Ver' ayarı yapılmamış!\r\n\r\nSizin için ayarları yapmamı ister misiniz?", MB_YESNO, MB_ICONINFORMATION);
if (Dialogiekar2 == IDYES) then
Registry.SetValue(HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\3", "1609", 0, REG_DWORD);
end
end
[/code]

Link to comment
Share on other sites

[font=tahoma,geneva,sans-serif]Çünkü ezbere gidip, syntax'a aykırı hareket ediyorsunuz. iekar2 değişkenini setvalue formatında yazmışsınız ama komut getvalue. Mesela ordaki 0 değeri karşılıksız.[/font]

[font=tahoma,geneva,sans-serif][code]iekar2 = Registry.GetValue(HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\3", "1609", true);[/code][/font]

[font=tahoma,geneva,sans-serif]Bu şekilde değiştirip deneyin.[/font]

Link to comment
Share on other sites

Evet üstad!. İşi çözdüm.
[code]
Dialog.TimedMessage("Internet Explorer Ayarları", "Internet Explorer 'Internet Bölgesinde' 'Karışık İçerike görüntüle' ayarı kontrol ediliyor.", 5000, MB_ICONNONE)
iekar2 = Registry.GetValue(HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\3", "1609", true);
if (iekar2) == "0" then
Dialogiekar3 = Dialog.Message("Internet Explorer Ayarları", "Internet Explorer 'Internet Bölgesinde' 'Karışık içerik görüntüle' ayarı yapılmış.", MB_OK, MB_ICONINFORMATION);
else
Dialogiekar4 = Dialog.Message("Internet Explorer Ayarları", "Internet Explorer 'Internet Bölgesinde' 'Karışık içerik görüntüle' ayarı yapılmamış!\r\n\r\nSizin için ayarları yapmamı ister misiniz?", MB_YESNO, MB_ICONINFORMATION);
if (Dialogiekar2 == IDYES) then
Registry.SetValue(HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\3", "1609", 0, REG_DWORD);
end
end
[/code]

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...