Jump to content

bphlpt

Patron
  • Posts

    2,342
  • Joined

  • Last visited

  • Days Won

    2
  • Donations

    0.00 USD 
  • Country

    United States

Everything posted by bphlpt

  1. I would suggest sending NoelC a PM and ask him to please comment in this thread if he is aware of anything. Cheers and Regards
  2. Actually, I've done some more investigation about this. What I was specifically asking about was whether "{impersonationLevel=impersonate}!" was needed or not. From looking here, (yes, its an older post but it still seems to apply), that has nothing at all to do with VBS vs JS, but is rather part of the WMI Security Settings, which can be used by any scripting method. It is primarily useful when dealing with remote computers. It's meaning has also changed over the years and it is now supposed to be the default behavior of WMI version 1.5 or later, however "For backward and potentially forward compatibility, you should always explicitly set impersonationLevel." So if WPI will never be used to interact with a remote computer, and/or if WPI will always deal with machines that have WMI version 1.5 or later installed, then I guess either of the two forms I posted above seem to be equivalent, even in Javascript. But you want to do as suggested, "For backward and potentially forward compatibility, you should always explicitly set impersonationLevel.", then use the first form that includes "{impersonationLevel=impersonate}!". Cheers and Regards
  3. Glad to hear it. LOL I thought the extra spaces made it more readable Cheers and Regards
  4. Thanks. I thought it might have been something like that. Since the conversion from the OperatingSystemSKU number to the "friendly" word version is totally under the control of getOSsku(), or getOSeditionID(), I would think that translations could be provided by the translators of WPI, so that all languages that WPI is available in could have the messages in their language. Isn't that the purpose of the translated versions? For a language that hasn't had a translation provided, everything would be in English. Isn't that the way it's supposed to work? Now if the OperatingSystemSKU number isn't always accurate, then that's a whole different problem. I guess I just don't understand why it is able to be used for some OS versions and not for others. With your changes it's even shorter now. Paste this into wmi.js. ( Comment out or rename the existing getOSver() and getOSeditionID(). ) It works for me. If it still doesn't for you, please tell me exactly what it does or what error message you get. There is no reason it shouldn't work. function getOSver() { position="wmi.js"; whatfunc="getOSver()"; if (szOSVerCache==NOT_FOUND) setOSverOSedID(); // this function is called often - get it once and cache the result return szOSVerCache; }function getOSeditionID(){ position = "wmi.js"; whatfunc = "getOSeditionID()"; if (szEditionIDCache==NOT_FOUND) setOSverOSedID(); // this function is called often - get it once and cache the result return szEditionIDCache;}function setOSverOSedID() { position="wmi.js"; whatfunc="setOSverOSedID()"; try { objItem = new Enumerator(GetObject("winmgmts:\\\\" + "." + "\\root\\CIMV2").ExecQuery("SELECT * FROM Win32_OperatingSystem", "WQL", wbemFlagReturnImmediately | wbemFlagForwardOnly)).item(); var Caption = objItem.Caption; var OSSKU = objItem.OperatingSystemSKU; if (Caption.indexOf("8.1") != -1) { szOSVerCache = "Win8.1"; szEditionIDCache = getOSsku(OSSKU); } else if (Caption.indexOf("2008") != -1) { szOSVerCache = "08"; szEditionIDCache = getOSsku(OSSKU); } else if (Caption.indexOf("8") != -1) { szOSVerCache = "Win8"; szEditionIDCache = getOSsku(OSSKU); } else if (Caption.indexOf("7") != -1) { szOSVerCache = "Win7"; szEditionIDCache = getOSsku(OSSKU); } else if (Caption.indexOf("Vista") != -1) { szOSVerCache = "Vista"; szEditionIDCache = getOSsku(OSSKU); } else if (Caption.indexOf("2012") != -1) { szOSVerCache = "12"; szEditionIDCache = Caption; } else if (Caption.indexOf("2003") != -1) { szOSVerCache = "03"; szEditionIDCache = Caption; } else if (Caption.indexOf("XP") != -1) { szOSVerCache = "XP"; szEditionIDCache = Caption; } else if (Caption.indexOf("2000") != -1) { szOSVerCache = "2K"; szEditionIDCache = Caption; } } catch(ex) { ; } }EDIT: Sorry, typo. If you tried it before now, try it again.Cheers and Regards
  5. But you are doing something wrong because I have never had it fail or give me any problems whatsoever any of the numerous times I have done it. I don't think it should make a difference, but do you have SP1 installed? Is this a completely "stock" Windows 7 Ultimate, or have you done any updates? You say you have installed "mobile device center", so what else have you installed? When I have done a "manual" install in the past, I have gotten it completely up to date with WU (except anything I don't ever plan on using such as extra language updates, Bing, IE11, etc which I hide) before I switch to MU. Could it be some kind of setting or tweak that you did to IE? Which version of IE are you running? I have not used IE11 and don't plan to until I've heard better reports about it, I've heard of too many problems, so if you have IE11 that would be one of the first things I would blame and I would suggest going back to IE10. Cheers and Regards
  6. You must have something else wrong with your system. I have not experienced or heard of ClassicShell causing stability issues. Cheers and Regards
  7. I noticed that Francesco included 2012 in his code for getOSver(), while you did not. Was that on purpose? I also noticed that he specifically called out "Home Edition" and "Professional Edition" in his code for getOSeditionID(), while you just used the Caption. Was that on purpose? You also did not include 2012 in getOSeditionID(). Was that on purpose? It's a shame that OperatingSystemSKU and getOSsku() aren't more complete and match the way you want szEditionIDCache to read. Could they be extended so that was so? If they were, then getOSeditionID() would essentially be reduced to szEditionIDCache = getOSsku(objItem.OperatingSystemSKU). I did like Francesco's use of "if ... else if" statements, which accomplish the same purpose of my "break" suggestion, and I suppose are a little easier to read. Assuming that you wanted to recognize 2012 in both getOSver() and getOSeditionID(), and you meant to use Francesco's code re XP in getOSeditionID(), and OperatingSystemSKU and getOSsku() are able to be used for 2012 in getOSeditionID(), then this also includes Francesco's "if ... else if" statements: function getOSver3() { position="wmi.js"; whatfunc="getOSver()"; if (szOSVerCache==NOT_FOUND) // this function is called often - get it once and cache the result { try { var Caption=new Enumerator(GetObject("winmgmts:\\\\" + "." + "\\root\\CIMV2").ExecQuery("SELECT * FROM Win32_OperatingSystem", "WQL", wbemFlagReturnImmediately | wbemFlagForwardOnly)).item().Caption; if (Caption.indexOf("8.1") != -1) szOSVerCache="Win8.1"; else if (Caption.indexOf("2008") != -1) szOSVerCache="08"; else if (Caption.indexOf("8") != -1) szOSVerCache="Win8"; else if (Caption.indexOf("7") != -1) szOSVerCache="Win7"; else if (Caption.indexOf("Vista") != -1) szOSVerCache="Vista"; else if (Caption.indexOf("2012") != -1) szOSVerCache="12"; else if (Caption.indexOf("2003") != -1) szOSVerCache="03"; else if (Caption.indexOf("XP") != -1) szOSVerCache="XP"; else if (Caption.indexOf("2000") != -1) szOSVerCache="2K"; } catch(ex) { } } return szOSVerCache; } function getOSeditionID(){ position = "wmi.js"; whatfunc = "getOSeditionID()"; if (szEditionIDCache == NOT_FOUND) // this function is called often - get it once and cache the result { try { objItem = new Enumerator(GetObject("winmgmts:\\\\" + "." + "\\root\\CIMV2").ExecQuery("SELECT * FROM Win32_OperatingSystem", "WQL", wbemFlagReturnImmediately | wbemFlagForwardOnly)).item(); var Caption = objItem.Caption; var OSSKU = objItem.OperatingSystemSKU; if (szOSVerCache == "Win8.1") szEditionIDCache = getOSsku(OSSKU); else if (szOSVerCache == "Win8") szEditionIDCache = getOSsku(OSSKU); else if (szOSVerCache == "Win7") szEditionIDCache = getOSsku(OSSKU); else if (szOSVerCache == "08") szEditionIDCache = getOSsku(OSSKU); else if (szOSVerCache == "Vista") szEditionIDCache = getOSsku(OSSKU); else if (szOSVerCache == "12") szEditionIDCache = getOSsku(OSSKU); else if (szOSVerCache == "03") { if (Caption.indexOf("Standard") != - 1) szEditionIDCache = "Standard Edition"; else if (Caption.indexOf("Enterprise") != - 1) szEditionIDCache = "Enterprise Edition"; else if (Caption.indexOf("Web") != - 1) szEditionIDCache = "Web Edition"; else if (Caption.indexOf("Datacenter") != - 1) szEditionIDCache = "Datacenter Edition"; else if (Caption.indexOf("Itanium") != - 1) szEditionIDCache = "Itanium Edition"; } else if (szOSVerCache == "XP") { if (Caption.indexOf("Home") != -1) szEditionIDCache="Home Edition"; else if (Caption.indexOf("Professional") != -1) szEditionIDCache="Professional Edition"; } else if (szOSVerCache == "2K") { if (Caption.indexOf("Professional") != - 1) szEditionIDCache = "Professsional Edition"; else if (Caption.indexOf("2000 Server") != - 1) szEditionIDCache = "Server Edition"; else if (Caption.indexOf("2000 Advanced Server") != - 1) szEditionIDCache = "Advanced Server Edition"; else if (Caption.indexOf("Datacenter") != - 1) szEditionIDCache = "Datacenter Edition"; } } catch(ex) { ; } } return szEditionIDCache;} I was tempted to replace: if (szOSVerCache == "Win8.1") szEditionIDCache = getOSsku(OSSKU); else if (szOSVerCache == "Win8") szEditionIDCache = getOSsku(OSSKU); else if (szOSVerCache == "Win7") szEditionIDCache = getOSsku(OSSKU); else if (szOSVerCache == "08") szEditionIDCache = getOSsku(OSSKU); else if (szOSVerCache == "Vista") szEditionIDCache = getOSsku(OSSKU); else if (szOSVerCache == "12") szEditionIDCache = getOSsku(OSSKU); else if (szOSVerCache == "03") ... with: szEditionIDCache = getOSsku(OSSKU); if (szOSVerCache == "03") ...but didn't on the off chance that szOSVerCache was not set correctly.getOSver() and getOSeditionID() could really be combined into a single function and the overall logic would then be easier. Like this: function getOSver() { position="wmi.js"; whatfunc="getOSver()"; if (szOSVerCache==NOT_FOUND) setOSverOSedID(); // this function is called often - get it once and cache the result return szOSVerCache; }function getOSeditionID(){ position = "wmi.js"; whatfunc = "getOSeditionID()"; if (szEditionIDCache==NOT_FOUND) setOSverOSedID(); // this function is called often - get it once and cache the result return szEditionIDCache;}function setOSverOSedID() { position="wmi.js"; whatfunc="setOSverOSedID()"; try { objItem = new Enumerator(GetObject("winmgmts:\\\\" + "." + "\\root\\CIMV2").ExecQuery("SELECT * FROM Win32_OperatingSystem", "WQL", wbemFlagReturnImmediately | wbemFlagForwardOnly)).item(); var Caption = objItem.Caption; var OSSKU = objItem.OperatingSystemSKU; if (Caption.indexOf("8.1") != -1) { szOSVerCache="Win8.1"; szEditionIDCache = getOSsku(OSSKU); } else if (Caption.indexOf("2008") != -1) { szOSVerCache="08"; szEditionIDCache = getOSsku(OSSKU); } else if (Caption.indexOf("8") != -1) { szOSVerCache="Win8"; szEditionIDCache = getOSsku(OSSKU); } else if (Caption.indexOf("7") != -1) { szOSVerCache="Win7"; szEditionIDCache = getOSsku(OSSKU); } else if (Caption.indexOf("Vista") != -1) { szOSVerCache="Vista"; szEditionIDCache = getOSsku(OSSKU); } else if (Caption.indexOf("2012") != -1) { szOSVerCache="12"; szEditionIDCache = getOSsku(OSSKU); } else if (Caption.indexOf("2003") != -1) { szOSVerCache="03"; if (Caption.indexOf("Standard") != - 1) szEditionIDCache = "Standard Edition"; else if (Caption.indexOf("Enterprise") != - 1) szEditionIDCache = "Enterprise Edition"; else if (Caption.indexOf("Web") != - 1) szEditionIDCache = "Web Edition"; else if (Caption.indexOf("Datacenter") != - 1) szEditionIDCache = "Datacenter Edition"; else if (Caption.indexOf("Itanium") != - 1) szEditionIDCache = "Itanium Edition"; } else if (Caption.indexOf("XP") != -1) { szOSVerCache="XP"; if (Caption.indexOf("Home") != -1) szEditionIDCache="Home Edition"; else if (Caption.indexOf("Professional") != -1) szEditionIDCache="Professional Edition"; } else if (Caption.indexOf("2000") != -1) { szOSVerCache="2K"; if (Caption.indexOf("Professional") != - 1) szEditionIDCache = "Professsional Edition"; else if (Caption.indexOf("2000 Server") != - 1) szEditionIDCache = "Server Edition"; else if (Caption.indexOf("2000 Advanced Server") != - 1) szEditionIDCache = "Advanced Server Edition"; else if (Caption.indexOf("Datacenter") != - 1) szEditionIDCache = "Datacenter Edition"; } } catch(ex) { ; } }Edit or eliminate 2012 as appropriate. And this might could be simplified further with some work on getOSsku(). Just a suggestion.Cheers and Regards
  8. Unfortunately, it depends on what exactly was "shorted", what it was shorted to, how long it was shorted, were any parts already stressed in any way, did the short physically damage the board at all such as damaging a trace or solder joint in some way, etc, so it is impossible to say. You could run a system stress test which might give you more confidence that it is working fine now, but I'm not sure what else you could really do. Cheers and Regards
  9. If the builds are meant to be shared only for that then the sharing should be "Invite based" and not shared with everyone. this will also help keeping tester audiance more helpfull as most testers will at least have a tiny bit of technical knoledge. A problem with this logic is that if it was invite only, with a thread for feedback , then can you imagine how many folks would look at all the great looking pics and complain "Why can't I try this, too?" There would be just as much whining as now, no additional feedback, and less publicity for the app. Altogether a losing proposition. @Hap, while I greatly appreciate you not posting your "solution", and I understand you are annoyed by the way BM set it up, I think it is incredibly disrespectful for you to even mention your "solution" at all, especially in this thread! If nothing else you should have opened your own thread. This thread is about support for Aero Glass, not for working around its protections. In fact, on some boards, working around software protections is considered the same as discussing warez and is grounds for being banned from the board. Cheers and Regards
  10. My question is that since the system uses high heat and pressure, which aren't free, how much more (potential) energy is produced than is used in its creation? Since the energy used could be gotten form other renewable sources such as hydro-electric, wind, or whatever, this could still be useful to run all the engines that currently depend on oil such as cars and planes, but it is a matter that needs to be acknowledged. Cheers and Regards
  11. I know this doesn't help you at all, but issues like this is why I have chosen to not update to IE11 yet. I've stuck with IE10. I'm not aware of any feature IE11 has that I need. Of course I very rarely use IE at all, preferring chrome or Opera, or even Firefox instead. Cheers and Regards
  12. Maybe not, but since your intermittent problems began while the drive was still installed in your laptop and the drive was your OS drive, then when you removed the drive and replaced it with your SSD the problems went away, the problems could have been connector related, either barely loose or the slightest bit of corrosion. Just the matter of unplugging the HDD and securely plugging in the SSD could have fixed the problem. Since the WD utility said the drive is OK, it probably is, so as long as you are using it as external storage, and another copy of the data on it is stored elsewhere as well, then you are probably fine. Just keep an eye on it and don't keep the only copy of anything mission critical on it. Cheers and Regards
  13. By the way, when looking at MS for code examples, when they check objWMIService, they seem to do it like this: objWMIService=GetObject("winmgmts:{impersonationLevel=impersonate}!\\\\" + "." + "\\root\\CIMV2");rather than like this: objWMIService=GetObject("winmgmts:\\\\" + "." + "\\root\\CIMV2");They both seem to work in my very simple tests. Does anyone know if there is any real difference? Just curious. Cheers and Regards
  14. The problem you are running into is in your "if" statements. You are executing all of them one after another. So if you find "8.1", of course you are going to find "8" in the next statement so it will get set to "Win8". Overall, your searches for "8.1", "8", and "2008" can potentially interfere with each other. There are two basic ways to handle this, and whichever way you do it will require a slightly different order of the "if" statements to get the correct result. 1) If you are going to execute all of the "if" statements, you need to start with the most general search and get more specific as you go. In this case that just means switching the order of the first two "if" statements: if (Caption.indexOf("8") != -1) szOSVerCache="Win8"; if (Caption.indexOf("8.1") != -1) szOSVerCache="Win8.1"; if (Caption.indexOf("7") != -1) szOSVerCache="Win7"; if (Caption.indexOf("2008") != -1) szOSVerCache="08"; if (Caption.indexOf("Vista") != -1) szOSVerCache="Vista"; if (Caption.indexOf("2003") != -1) szOSVerCache="03"; if (Caption.indexOf("XP") != -1) szOSVerCache="XP"; if (Caption.indexOf("2000") != -1) szOSVerCache="2K"; 2) You could also only execute the "if" statements until you find a match then quit checking. In that case you need to start with the most specific search and get get more general as you go. This would mean moving your test for "2008" up before your search for "8", and then adding a "break" statement as part of every "if": findOS: { if (Caption.indexOf("8.1") != -1) { szOSVerCache="Win8.1"; break findOS; } if (Caption.indexOf("2008") != -1) { szOSVerCache="08"; break findOS; } if (Caption.indexOf("8") != -1) { szOSVerCache="Win8"; break findOS; } if (Caption.indexOf("7") != -1) { szOSVerCache="Win7"; break findOS; } if (Caption.indexOf("Vista") != -1) { szOSVerCache="Vista"; break findOS; } if (Caption.indexOf("2003") != -1) { szOSVerCache="03"; break findOS; } if (Caption.indexOf("XP") != -1) { szOSVerCache="XP"; break findOS; } if (Caption.indexOf("2000") != -1) { szOSVerCache="2K"; break findOS; } }While I like that concept, since it seems pointless to keep checking once you found what you are looking for, I like it even better if I make it more compact, flexible and expandable through the use of arrays: var OSoptions = ["8.1", "2008", "8", "7", "Vista", "2003", "XP", "2000"] var OSdesignation = ["Win8.1", "08", "Win8", "Win7", "Vista", "03", "XP", "2K"] for (var i=0, len=OSoptions.length; i<len; i++) { if (Caption.indexOf(OSoptions[i]) != -1) { szOSVerCache=OSdesignation[i]; break; } } In either case, to further shorten the code, and this is more of a programming style preference, unless the values that are set here for objWMIService, colItems, objItem, and enumItems are used elsewhere, and I don't THINK they are, but they are globals so someone needs to confirm this, then Caption can be set in one line by: var Caption=new Enumerator(GetObject("winmgmts:\\\\" + "." + "\\root\\CIMV2").ExecQuery("SELECT * FROM Win32_OperatingSystem", "WQL", wbemFlagReturnImmediately | wbemFlagForwardOnly)).item().Caption; So, to me, your two choices are either: function getOSver() { position="wmi.js"; whatfunc="getOSver()"; if (szOSVerCache==NOT_FOUND) // this function is called often - get it once and cache the result { try { var Caption=new Enumerator(GetObject("winmgmts:\\\\" + "." + "\\root\\CIMV2").ExecQuery("SELECT * FROM Win32_OperatingSystem", "WQL", wbemFlagReturnImmediately | wbemFlagForwardOnly)).item().Caption; if (Caption.indexOf("8") != -1) szOSVerCache="Win8"; if (Caption.indexOf("8.1") != -1) szOSVerCache="Win8.1"; if (Caption.indexOf("7") != -1) szOSVerCache="Win7"; if (Caption.indexOf("2008") != -1) szOSVerCache="08"; if (Caption.indexOf("Vista") != -1) szOSVerCache="Vista"; if (Caption.indexOf("2003") != -1) szOSVerCache="03"; if (Caption.indexOf("XP") != -1) szOSVerCache="XP"; if (Caption.indexOf("2000") != -1) szOSVerCache="2K"; } catch(ex) { } } return szOSVerCache; }or: function getOSver() { position="wmi.js"; whatfunc="getOSver()"; if (szOSVerCache==NOT_FOUND) // this function is called often - get it once and cache the result { try { var Caption=new Enumerator(GetObject("winmgmts:\\\\" + "." + "\\root\\CIMV2").ExecQuery("SELECT * FROM Win32_OperatingSystem", "WQL", wbemFlagReturnImmediately | wbemFlagForwardOnly)).item().Caption; var OSoptions = ["8.1", "2008", "8", "7", "Vista", "2003", "XP", "2000"] var OSdesignation = ["Win8.1", "08", "Win8", "Win7", "Vista", "03", "XP", "2K"] for (var i=0, len=OSoptions.length; i<len; i++) { if (Caption.indexOf(OSoptions[i]) != -1) { szOSVerCache=OSdesignation[i]; break; } } } catch(ex) { } } return szOSVerCache; }and personally I prefer the last one. Since they are constants, you may also define the OSoptions and OSdesignation arrays in globals.js to make getOSver() even shorter, but I think it probably makes more sense to leave it here for better readability, unless you could use those arrays elsewhere in addition to here. Cheers and Regards
  15. Definitely also try the short version in all those places as well. I think it should work, but I'm not sure about in Win8+. Sorry I don't have a full test bed set up to do proper testing. Of course if I could find a full reference I would also feel a lot more confident. Cheers and Regards
  16. Did you try the "long" or the "short" one-line version? Cheers and Regards
  17. Sorry for the delay in response. I think that this code has essentially the same logic and will give the same results that your version of getIEver() does, and perhaps more reliably. But it might be able to still be improved. function getIEver(){ position="wmi.js"; whatfunc="getIEver()"; var svcVer = RegKeyValue("HKLM\\Software\\Microsoft\\Internet Explorer\\svcVersion").split('.').slice(0,2).join('.'); var verVer = RegKeyValue("HKLM\\Software\\Microsoft\\Internet Explorer\\Version").split('.').slice(0,2).join('.'); var IEver = svcVer || verVer; if (svcVer && IEver == "9.10") IEver = svcVer; if (verVer && IEver == "9.10") IEver = verVer; return IEver;} I'm not completely satisfied with the two "if" statements. Both are always executed and I don't know if that is necessary or not. I know, at least for Win7, that for IE10 that Version = 9.10 and svcVersion will hold the actual Version, but can svcVersion ever be 9.10? Your code implied that it can. Sorry for being a noob at this, but I'm afraid I'm having a hard time getting my head around when it is necessary to use svcVersion vs Version. ( eg If svcVersion exists is Version really necessary? And if svcVersion does not exist, and Version = 9.10, then you're screwed since the "if" statements will fail, right? I'm confused. ) I referred to here, which still does not list IE11 and it is not clear to me what changes are required for Win8+. ( Do svcVersion and Version reverse their roles for Win8+? ) This might be able to be shortened all the way down to this: function getIEver(){ position="wmi.js"; whatfunc="getIEver()"; return RegKeyValue("HKLM\\Software\\Microsoft\\Internet Explorer\\svcVersion").split('.').slice(0,2).join('.') || RegKeyValue("HKLM\\Software\\Microsoft\\Internet Explorer\\Version").split('.').slice(0,2).join('.');}It works for IE10 on Win7x64. I really wish I could find a table that showed what svcVersion & Version will contain for each version of IE for each version of Windows. I haven't found a complete reference yet. I'll be interested in your thoughts.Cheers and Regards
  18. Is there a documented list of all possible values of both: "HKLM\\Software\\Microsoft\\Internet Explorer\\Version" "HKLM\\Software\\Microsoft\\Internet Explorer\\svcVersion" for all available versions of IE that you need to check for? If so, I'd be happy to help check the logic of function getIEver(). I'd also need to know the exact format of what you need returned. (I assume it is x.xx for any version less than 10.0 and xx.xx for anything larger?) Cheers and Regards
  19. I'm not going to refute smithlynn602's suggestion, because I've never used that application so I can't comment whether it's good or bad, but be aware that he apparently only joined here to make that recommendation, so I would take that with a big grain of salt. Cheers and Regards
  20. "Competitor" perhaps, but I don't think there is 100% overlap, so I believe there are people that like to use both to be able to get all of the features available in each program. Cheers and Regards
  21. Might he just be talking about removing the drive from its USB enclosure to expose the SATA connectors? Cheers and Regards
  22. Certainly not, and noone accused you of having said that , ... Sorry, that was meant in response to buyerninety I confess I was lazy and only looked at the second link, not wanting to bother downloading a .pdf file, and assuming the two links were about similar topics. My fault. But I still stand by what I said in my last post: and from what you have posted, I believe you agree. Cheers and Regards
  23. I did not say that tcp/ip traffic compression is not possible. Of course it is. I said that no registry tweak by itself can accomplish it. It depends on software at the web server and in the browser. I have yet to find any reference anywhere that any registry tweak can "enable" it, or turn it off for that matter. From buyerninety's link: But then: And it also won't work: Cheers and Regards
  24. Well, the definition of HQ obviously changes over time. At one time, 640x480 was HQ for computer use, and 4K images are coming soon, so it really seems rather arbitrary. Today, video seems to be considered as HQ if it is 720p or larger, so you could go with that definition. It might also depend on the purpose you have for the image and the actual subject matter and quality of the image, not just on the dimensions. For images intended for computer desktop wallpaper, I've seen some images that can be "stretched" to fit and still seem to look very nice, while others start looking distorted or blurry if displayed at anything but the actual dimensions. Some smaller images are great to use "tiled", and others could be used for cellphone wallpaper. Windows explorer and similar software can sort images by dimensions without using any extra "program", but sorting by aspect ratio is more difficult. I would think there are other programs out there that can do that, but I've not looked for one. Good job on "rolling your own". Other than sorting by size, you might also consider sorting by subject matter, (seascapes, mountains, lakes, forest, space, architecture, fantasy, movies, cars, people, animals, etc), basic color, or whatever. Being able to sort in multiple ways, including size, would depend on each image being properly tagged, which will take you awhile if they are not tagged already, then using software that can sort via those tags. Good luck in your quest. Cheers and Regards
  25. Welcome! Cheers and Regards
×
×
  • Create New...