Jump to content

CoffeeFiend

Patron
  • Posts

    4,973
  • Joined

  • Last visited

  • Donations

    0.00 USD 
  • Country

    Canada

Everything posted by CoffeeFiend

  1. It's not hard to do, but the voices available change between versions of the OS (and languages installed too) so most of the time using the default voice is the best option. Otherwise you have to enumerate the voices are available (many are only available for a particular language) using the GetVoices method and then use one of those -- and usually there is only one, which is the default one anyway. And if you do that, then you better have pretty solid error handling too, because you will eventually run into problems (especially across different languages -- there may be zero voices for a particular LCID so you have to fallback to something else). And the default voice is usually the most advanced/recent as well so it's the one that already sounds best (i.e. Anna on Win 7 vs Mark, Mike and Sam), whereas the others may even be far older SAPI 4 voices. Also, no matter which voice you use, some words won't sound right so you'll have to make use of phonemes & SSML.
  2. Try running the Win 7 Upgrade Advisor. The hardware is above the minimum requirements so it should run. As for how fast, it's a single core CPU, the 2GB of RAM is also shared (used as video memory) and I expect them to have a WEI score of 2.x (out of 8). It'll run, but don't expect it to be really fast.
  3. This is the deal killer. Win 7's speed recognition is actually quite good (I use it in a project) but supports only so many languages: English (U.S.), English (U.K.), German (Germany), French (France), Spanish (Spain), Japanese, Chinese (Traditional), and Chinese (Simplified). It's pretty good really, but I wouldn't hold my breath for Portuguese support. Last I've tried the other big name (Dragon NaturallySpeaking) it wasn't better than Win7's voice recognition in any significant way (definitely not worth the $100 to $800 price tag!) and it supports less languages too (no Portuguese either as jaclaz said earlier)... You just might be up that famous creek, without a paddle...
  4. Option Explicit Dim wsh Set wsh=WScript.CreateObject("WScript.Shell") wsh.Run "http://www.google.com" That will open google.com in the default browser.
  5. Easily (WMI truly rocks for remotely getting infos like that). The ScreenWidth and ScreenHeight of the Win32_DesktopMonitor WMI class will return the native res of a LCD (don't have a CRT around anymore to see if that tends to return sane values sadly). As for Win32_VideoController, it's only for Vista+, so you'd also need to make use of Win32_DisplayConfiguration for older systems (after reliably detecting the OS) but they're not incredibly useful anyway. The main issue will be systems with multiple monitors/projectors (or maybe those with multiple GPUs). This will be a somewhat error prone process no matter what. As for single display systems, IIRC QRes does check the capabilities before trying to set a mode but I could be mistaken (never had a problem with it before).
  6. That's ultimately what needs to be protected against writes (API calls and various apps *should* fail then). I don't see what would make it problematic but I haven't given that much thought, and there just may be some issues. Setting complex ACLs on registry entries can be kind of a pain though, and either ways it would require some testing on his end too (at a prior employer we used to have a "guinea pig" group precisely for this kind of stuff).
  7. I didn't mean it was a bad thing that it had more features (that's usually a good thing), but merely that I had something simpler (trivial) in mind. And this is where I more or less guess different (we are basically guessing indeed). Lots of work places don't allow wallpapers and want to enforce that. This removes the current wallpaper once run, but users can still set one up again using the usual ways, and many programs (windows' desktop slideshow, the popular webshots desktop, etc) will add one over and over again. So if it's like one of those workplaces (which may or may not be the case) then there is more to it, and it will require some thinking to come up with a proper solution instead of a band aid fix. It's hard to just guess the big picture accurately i.e. what he's trying to accomplish "overall" -- and I don't think the need is "just remove the wallpapers once and let people add one again later". That was neither (C++ and assembly, which would need to be compiled first before they can be used). The end result would be the same as Glen9999's tool when used with "none 0". Again, this removes the current wallpaper when run, but you have to be aware of the "limitations".
  8. Well, not on every system for sure (at least, it doesn't on a vanilla install of Win 7), and it doesn't actually work on XP either if you didn't manually set the "Display the full path in the title bar" option either (because you *are* getting the name of the window and using that as a path), nor does it work on special folders. That was my point: it's not exactly a robust nor reliable way of doing this. Working with SHDocVw takes care of all that (works across OS'es, regardless of locale or settings, and works with special folders too)
  9. Kind of over-delivering I was thinking of a simple/blind "nuke the wallpaper" option ala (code not actually tested) SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, "", SPIF_SENDWININICHANGE); or even push SPIF_SENDWININICHANGE ;2 push 0 ;(pointer to zero length string, but zero works too) push 0 push SPI_SETDESKWALLPAPER ;0x14 call SystemParametersInfoA but this can accomplish this (albeit you have to pass cmd line args for that) and a bunch more (setting wallpaper with options, setting more registry entries) Although this only solves part of the problem. Users can still set wallpapers by hand after that (even though not so convenient). Many small programs who cycle wallpapers will happily override this every few minutes, like webshots desktop, or Win7's desktop slideshow. A complete solution would check for Win 7 and disable desktop slideshow, likely change some settings using group policy, and you could even change the permissions on those registry keys... A "proper fix" would require some thought and some testing too.
  10. You could set it in the registry (set HKCU\Control Panel\Desktop\Wallpaper to nothing or just delete the key). But making it "refresh" without logging off and on won't be so simple (the old rundll trick isn't working anymore, and restarting explorer.exe is pretty extreme), so you'd basically have to write a small program which would make the Win32 API call for that (it might as well "fix" the registry too...).
  11. It's really not that hard to port (if a C# guy like me was able to do it then it should be easy for a C++ guy), but there's already tons of such code on the web (to decode DigitalProductID's), even in C++, like here. Google will find plenty of relevant hits if you search with terms like DigitalProductID and C++. These kinds of apps have been around for just about forever, so it should be pretty easy to find source code for most major languages.
  12. @wakillon: that doesn't work at all (at least using Win 7 x64). It only gets the last part of the path (name of the Window), so FileExists always returns false, so nothing gets reopened, and you're left without explorer.exe running at all. It also wouldn't sort alphabetically nor remove dupes which is fixable (but you can't just try to reopen all windows like that either; some may open faster than others so opening them so quickly/at once will result in them not being sorted even if your "list" was). Even if you got the full folder paths from the window title, it wouldn't handle explorer windows opened in "special" locations properly (like "My Computer"), and killing explorer.exe is pretty drastic IMO. Then again, allen2's solution didn't work either -- lots of messageboxes, every window flashed then it gave me the "restart?" screen for a split sec (and there you are thinking "oh no, I'm not sure I saved everything I had open!"), and if I click yes, then I just get a crapload of explorer windows opened -- all in My Documents... I would personally use the SHDocVw COM object for this (it's meant exactly for this kind of stuff -- controlling explorer and IE windows). To use such a COM object in C#, you have to manually add a reference to it by going to solution explorer > references > right click and select add > COM tab > double click on "Microsoft Internet Controls 1.1". This will add an interop assembly to your project. Then you can do something like this (very basic, no error handling or anything; too trivial to bother with a namespace, and you might have to increase the delay for slower computers -- it might be a good idea to make it an optional cmd line arg): using System; using System.Collections.Generic; using System.Linq; using System.Diagnostics; static class Program { [STAThread] static void Main(string[] args) { List<string> openedWindows = new List<string>(); //enum opened windows SHDocVw.ShellWindows shellWindows = new SHDocVw.ShellWindows(); foreach (SHDocVw.InternetExplorer e in shellWindows) if (!e.FullName.Contains("iexplore")) openedWindows.Add(e.Application.Document.Folder.Self.Path); //close them foreach (SHDocVw.InternetExplorer e in shellWindows) if (!e.FullName.Contains("iexplore")) e.Quit(); //get ordered, unique windows only var fixedList = (from w in openedWindows orderby w select w).Distinct(); //restart previously opened windows foreach (string s in fixedList) { Process.Start("Explorer.exe", s); System.Threading.Thread.Sleep(500); //wait long enough otherwise they won't open up "ordered" } } } Scripting languages like vbscript/jscript would make it pretty easy to retrieve opened windows & reopen them, but sorting in vbscript (nevermind sorting unique entries) is a real pain (e.g. write your own bubble sort, or using a disconnected recordset or similar solution), whereas LINQ (in C# or other .NET languages) lets us do this in one short line (using orderby + distinct). Tested working under Win 7 x64 (english system)
  13. By that, I assume you mean a processor with a 1155 socket. ASUS wise, indexpensive and decent would be the P8H67-M. H67 chipset, 4 DIMM slots, 2 PCI-e x16 slots, 6 SATA ports (2 of which being the 6Gb/s kind), 2x USB 3 ports, good build quality, etc. Not bad for about $120. Gigabyte wise, there's the GA-H67MA-UD2H, which for about $5 more than the ASUS, will also give you an eSATA port and a DisplayPort output (not that I really see a point for that one). The main difference left between the 2 is the ASUS has 2 PCI slots, whereas this one has 2 PCI-e x1. But overall they're quire similar. Still at the same price, Gigabyte has a P67 board: the GA-P67A-UD3. H67 is the choice if you want Intel's onboard video. P67 does away with that, and gives you some extra possibilities like using 2 video cards at x8 (assuming the board is designed for that). This board has a bunch more USB ports, an extra digital output for sound, and a few more slots (it has both PCI and PCI-e x1). ASUS wise, if you want P67, then for 5$ more, you can get a P8P67-M. It has a couple less slots and USB ports than the Gigabyte and no spdif out, but it has a firewire if you have a use for it. It uses a UEFI BIOS but I'm not completely confident in that yet (not "mature" enough IMO). Most of the cheaper boards are either missing stuff I consider critical (like having only 2 DIMM slots), or don't have USB3, or are of questionable quality, or only save you like $5. There might still be some good picks though.
  14. It somewhat depends what you're going to be using. I don't need anything anywhere near that fancy to develop in C#. The i7 980x, assuming that your tools can make use of all 6 cores efficiently, and only when it's actively using all 6, then it will probably be 10% faster (barely noticeable), but for like $700 more than a i7 2600k. For anything that doesn't make use of a large number of cores (mostly everything) then the i7 2600k will run faster due to its faster single threaded perf (by around 30%) despite being LOTS cheaper. And the 980X uses a socket that's going to be replaced very soon (by 1356 or 2011), whereas the i7 2600k is already using one of the new sockets (1155). 1366 boards tend to be pricier too. So that's got to be one of the easiest choices to make ever...
  15. Because you already know where they are supposed to be and you don't look at it anyway? That and good looks too. Nevermind that if you use more than one keyboard layout then some of the buttons won't have the right labels no matter which keyboard you have, and they're probably only available in plain old english/US version too. This is language neutral I guess. I'd really love to have one for the lovely mechanical switches (nothing else feels anywhere near as good -- I miss my old AT101W though), but no bend in the rows and none of the other extras either (like volume buttons or mute which are quite handy) makes me hold back. It's one of those love/hate things, where I love some features from both types and hate some from both too. It seems like you can't have your cake and eat it too.
  16. Well, it depends on a lot of factors for sure, like mold size and complexity, what kind of tolerances you need, what metal alloy it needs to be made from (different kinds of processes e.g. using it for macromelt or whatever else), and of course the localized labor price depending on where you're getting it made (labor is probably a lot cheaper in Mexico than in Canada), and if you include the mold design labor in the price (or just getting it machined), the level of overall service and whether you're getting any conformance guarantees from your mold manufacturer might vary the cost, etc. Loads of factors. Well, I mean if he wants extra buttons and a different physical layout altogether (buttons in different places), there's going to be more custom work there. And if you need special functions, or fancier controls (like a "slider" for zooming), or a number of buttons (as in, more than 104 or whatever) that isn't supported by one of the cheap specialty keyboard controllers, then it's a custom microcontroller job (adds a lot to the price), or a custom IC built for you (cheap when in very large quantities). Same for the touchpad (cheapest thing to do would be to add a USB hub chip on the PCB and combine them that way (but again, custom PCB there too)... It all depends how fancy you want to get I guess. Either ways, if you have to ask how much it costs, then you can't afford it. Same here. I'd be buying a Das Keyboard Model S Ultimate today if it had a slight bend in the rows like Microsoft does in their "comfort" series keyboards. It sucks having to chose between nice, niiiiiice switches and a comfortable layout I might still order one sometime soon.
  17. That would likely work, for simple customizations. However, he seems to want custom placement of keys, custom number of keys, with an added touchpad, etc. That's fairly major. It means having to design a new custom PCB and/or membrane and a new custom case too, and that's assuming it works with a standard keyboard controller IC and that they don't have to use something fancier (microcontroller with custom firmware, along with drivers for the PC). You'd have to count the [expensive] hours of the engineer who will route the PCB/membrane, the ones who will do the mechanical CAD for the case and stuff, those who would write various code for it... Then getting a custom mold made for the injection molding process which by itself costs thousands... Several setup and tooling costs for the PCB, the parts assembly (electronic parts and mechanical parts), the injection molding place setting up their machines with your mold, etc. Often you'll get all these things done by different companies too (and you want to get quotes from several, which takes a fair amount of time, and might be a PITA to meet them if they're not local too) I'd say about $50000 USD and you've got a finished product. That's assuming they won't just say "no", because most companies who do stuff like this don't want to waste their engineer's time on something that won't sell in any volume -- there's no profit to make there. They'd rather use their engineers' time to develop a product that they will sell large amounts of, with a margin of profit on each (and as such, only deal with businesses, who also happen have the kind of qualified personnel required to coordinate all this on hand). Developing custom products costs real money (I work for such an OEM), especially in low quantities. Keyboards are only inexpensive because of mass production on a really large scale. TL;DR: forget it.
  18. File > Save As > change "Save as type" to CSV (or whatever) That's just as easy. I just mean, you don't actually want it to play stuff, or do other tasks besides searching (seemingly not) Just PM me a link to the Excel file (or CSV, doesn't matter one bit) and I'll take care of it tomorrow after work if that works for you (somewhat busy right now and it's almost midnight too, but I'll get around to it)
  19. Well, first of all, I would export that data in another format that's somewhat more usable. Getting data from excel programmatically kind of sucks, and it's rather error prone. A simple database (even a simple one table flat design -- sqlite would work fine), or even just a CSV or XML or plain old text file... Anything you can easily retrieve data from. Then it's just a matter of having a trivial program where you can type text, and it does a substring search from that data, and then displays the relevant entries. Very simple system... Assuming that's all you want it to do (show song names). The actual implementation would depend based on language/stack used... in C# I'd probably throw something together quickly that works like this (not exactly an enterprise-grade, robust system but it would do the job in a pinch): 1-loading the data into a plain old DataSet (sucking the data in using the Microsoft Jet OLE DB 4.0 provider, to read from the CSV file directly -- mind you it could read from Excel directly if you really wanted to...) 2-have a plain old DataGridView to show the data 3-add a DataView (having the DataSet as its source; you'd simply databind the DataGridView to this to view the data) -- this is what would handle the filtering ("searching") for you 4-have a textbox where the drunks can simply type what they're searching for, and have the TextChanged event handler set the filtering on the DataView (using its RowFilter property). That would take less than a page of code. It's simple enough that price ought to be zero. Again, that is assuming I'm understanding your needs perfectly (just search for songs and nothing else) There might be pre-made apps for this kind of stuff. No idea...
  20. The one your hardware has good drivers written for. Every OS that came out in the last decade or so, fully updated and with good drivers should be rock solid pretty much. I've had no stability issues with XP/Vista/7 (nor on servers) that weren't caused by misbehaving drivers or broken hardware. But the later versions of Windows (Vista/7) have some extra stuff that help, like WDDM video drivers which make them more "tolerant" of video driver issues, which means far fewer BSODs and hangs, even with broken drivers. Long story short, if you have stability problems, update your drivers or test your hardware. It's extremely unlikely that the OS itself is at fault.
  21. I hadn't seen that picture, or it hadn't loaded, or he edited his post, or I wasn't awake or something... A x2 4000+ is a bit borderline for HD video (at least when not helped by a video card). *Some* 720p content would probably play fine with the right software and settings but that's about it. I don't really see a way around buying a new video card if you want to watch HD contents.
  22. So you can have a far slower computer overall and have more completely pointless and wasted video memory (you don't seem to understand what it's used for at all)? Sure, it's not my computer... The settings are in the BIOS. I knew it was a T180, and I knew where to find that page, but the page is extremely vague: Basically, it could be any processor from 3 different lines of CPUs (assuming this even covers all the options they actually shipped with), of wildly varying speeds and different number of cores. That's like a hundred different models total.
  23. Under "Adapter" where? In what particular utility? Definitely NOT. Decoding HD video is very much CPU bound. Video memory does absolutely NOTHING for it. If anything, I'd lower it seeing T180's ship with XP. XP can do with very little (I remember setting Intel GMA to like 8MB back then -- worked just fine), this way you have more for your apps, which will make things somewhat faster (but not fix your video problem). Unless you happen to play some games that need this much video RAM (yet are OK with such a REALLY slow onboard GPU) then don't bother. Setting it higher will only accomplish one thing: starve your OS & apps of useful memory, hence making them slower. The other solution is a video card which would help (new video cards are great for this) but you don't want to get one so... The one thing you can do right now is making sure you have codecs and/or a player that's reasonably "efficient" at playing HD video. MPC works great for this IMO. It would be helpful to know what CPU you have as well.
  24. I suggest you have a look at the specifications again. 1GB isn't your video memory, it's your system's entire memory. Your video card shares that ("borrows" from it). specs: AMD Turion X2 Dual Core 2.2Ghz (1mb cache) 14.1″ WXGA (1280×800 Widescreen) Hi-Definition Brightview Display ATi Mobility Radeon 3200 (IGP – shared memory) 1gb DDR2 RAM 320Gb hard drive Regarding that dxdiag screenshot (display tab), that seems to report weird stuff regardless. On this box with a Radeon 4850 512MB (system has 8GB), it reports something around 3.5GB, and on another box with a Radeon 3200 IGP and 4GB of shared system RAM, it shows around 2GB. Using an IGP which may be set to dynamically change its memory usage, you may even get stranger stuff... Don't ask me why they'd pair a dual core CPU with so little RAM...
  25. PostgreSQL will, and it's free. MySQL too (if it's sufficient for your needs). What's best depends on what you're doing and need... The only limitation AFAIK is the expiry after 6 months. Edit: as for Firebird, last I tried it I wasn't so impressed (poor toolset, poor VS integration, etc -- it's been a while though) but it's a decent RDBMS too.
×
×
  • Create New...