radyofon Posted September 13, 2012 Share Posted September 13, 2012 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] Quote Link to comment Share on other sites More sharing options...
DivaneTR Posted September 13, 2012 Share Posted September 13, 2012 [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] Quote Link to comment Share on other sites More sharing options...
radyofon Posted September 13, 2012 Author Share Posted September 13, 2012 @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] Quote Link to comment Share on other sites More sharing options...
DivaneTR Posted September 14, 2012 Share Posted September 14, 2012 [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] Quote Link to comment Share on other sites More sharing options...
radyofon Posted September 15, 2012 Author Share Posted September 15, 2012 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] Quote Link to comment Share on other sites More sharing options...
DivaneTR Posted September 15, 2012 Share Posted September 15, 2012 [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] Quote Link to comment Share on other sites More sharing options...
radyofon Posted September 15, 2012 Author Share Posted September 15, 2012 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] Quote Link to comment Share on other sites More sharing options...
DivaneTR Posted September 15, 2012 Share Posted September 15, 2012 [font=tahoma,geneva,sans-serif]İyi güzel de, ayar yaparken değeri yine 0 olarak giriyorsunuz. Programı kapatıp açtığınızda yine ayar yapılmamış diyecek ?[/font] Quote Link to comment Share on other sites More sharing options...
radyofon Posted September 15, 2012 Author Share Posted September 15, 2012 Zaten ayarın 0 olması gerekiyor. 1609 value için DWORD değeri 0 yapılacak. Amaç ilk olarak dword değerinin 0 olup olmadığına bakmak ve 0 değilse 0 yapmak. Eğer 0 ise hiçbir şey yapmamak. Quote Link to comment Share on other sites More sharing options...
DivaneTR Posted September 16, 2012 Share Posted September 16, 2012 [font=tahoma,geneva,sans-serif]Pardon ben yanlış görmüşüm, else koymuşsun. Bu haliyle doğru [img]http://www.tnctr.com//public/style_emoticons/default/turned.gif[/img] [/font] Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.