Is it possible to change the maximum WIA scanning resolution? - wia

I have to use the Canon 9000F scanner in a project. I am having some troubles with the TWAIN driver (see: Are memory issues common when scanning 2400 DPI pictures with TWAIN?), so I tried WIA as an alternative, but the built in scanning dialog only allows a maximum resolution of 600 DPI, but I know that at least 1200 DPI should be possible.
Is it possible to override these values?
Where do the limitations come from? Is this caused by the driver or is this configured somewhere in WIA itself?
If I went to down to a lower level and do all these scanning functions myself would I face the same limitations?
Question no longer relevant. Decided to use the TWAIN driver.

I'm sure you've probably found another solution by now, but I stumbled across this post today while I was fighting a similar problem and I'd like to share my workaround.
In my case, we are using a Plustek A320 scanner which supports up to 1600dpi optical resolution. The actual TWAIN driver seems to cause issues (frequent memory errors like you were seeing) so I wanted to try it using the WIA driver. Of course, the resolutions that WIA lets you choose only go up to 600.
What I eventually settled on was some driver inf hackery. I edited the 261U.inf file packaged with the driver installer, adding the bolded line in along with this section:
[IPCProduct.DeviceData.WIA]
TwainDS=%TwainDSName%
Server=local
MicroDriver="mic-261U.dll"
UI DLL=sti.dll
UI Class ID={4DB1AD10-3391-11D2-9A33-00C04FA36145}
Resolutions="75, 100, 300, 600, 1200"
I then manually reinstalled the driver through Device Manager, explicitly selecting the appropriate .inf file. After a reboot, I'm able to select the 1200dpi resolution when initiating a scan via the Windows Image Acquisition wizard.

Related

How to detect opengl driver version without context?

I have an application that doesn't start with some Intel HD graphics drivers, as the crash (in ig4icd32.dll) can come before our 3D engine is initialized the safer way to show a popup to request to the user to update his driver is do it before the OpenGL is created.
So my question is how can I retrieve the driver information (vendor and version number) before the window is created?
PS: It only impact few users on thousand that use a very old version of driver that have a bug, with more recent driver there is no issue. The popup is intend to warn the user to make sure that he will update drivers.
Update: I took a look to dxdiag and device manager, the driver version they give for my Nvidia card doesn't match the one which is return by Nvidia with OpenGL
I found the solution here, I had to use with "Win32_VideoController" instead of "Win32_OperatingSystem" in the query.
And here is the list of fields we can query.
Be careful, the version number is the one that we can find in the device manager and it doesn't necessary match one given by Nvidia or AMD to the user.
PS: It may have simpler way to retrieve same data by using other APIs.

Is it possible to add display panel brightness support to an existing Windows display driver?

So, keep the stock driver, but add some other driver plus Windows register configuration that tells Windows how to do brightness at the hardware level?
Is that even possible within Windows? Or does it need to be built into the graphics driver itself?
(I'm specifically asking about Intel's "Legacy Backlight Brightness (LBB) I/O Register". Which works on a lot of Intel GPUs.)
For reference, I'm not really grokking all the jargon: http://msdn.microsoft.com/en-us/library/windows/hardware/ff569755(v=vs.85).aspx

VB6 with Images behaving strange, Any Expert?

I am facing really strange problem in my vb6 Application. It is working fine on every other machines but when I run it on my client's machine, Images do not show properly.
This is how problem looks like
Specifications:
Windows 8 Pro (6.2 Build 9200) 32 Bit
Processor Architecture 64 Bit
Core 2 Duo T9600 2.80 Ghz
Dell Latitude 6400.
I have deployed the same application on many other machines and tested on different resolutions with different Operating systems. Everywhere it is working prefect. but not working properly on client's Machine.
Without more information it is hard to be sure, but here is a guess:
Starting in Windows 7, if the system notices you have a monitor with excessive resolution it automatically chooses a high DPI setting.
If your program is not DPI-aware then one of several forms of appcompat are applied (based on the version of Windows, some system options, and application characteristics). Depending on which remediation is attempted by Windows, bitmap graphics can end up scaled and pixelated or not scaled and show as "smaller than expected."
Just to add fuel to the fire, people often try to do UI layout using ScaleMode = vbPixels and/or manual conversions and rely on a fixed ratio between these virtual pixels and actual screen metrics. Hard-coding 15 Twips/Pixel (1440/96) is very common because 96 DPI VGA (and VGA-derivative) square-pixeled screens were in use for a long time.
This fallacy can cause such a program to size controls improperly even when others get resized by the DPI remediation.
You might try reading though High DPI for information on this subject.
In the case of something like a Form backdrop image you either need several bitmaps of varying sizes from which you choose at runtime or else you'll need to scale the image yourself.

Finding the graphics card device ID without drivers installed

I need to create an automated process in which a script detects the graphics card type on first boot, then installs the appropriate drivers, which will be included in the image, before performing the next steps. The target platform is Win XP Pro.
I came across some WMI code which can get hardware information but since it uses a PNPSignedDriver class I would presume that it requires drivers to be installed before it can detect the device.
I can't use devcon, as it isn't redistributable. Am I right in assuming that WMI cannot help me here, and if so what are my other options?
Thanks,
Bill.
WMI does seem to be the way to do this, as found here. I will confirm after testing.
EDIT - Not sure if this is possible, WMI can only get the name of the display adapter not the device ID of the card, and before the drivers are installed this is something generic like "Video Controller (VGA)". I will update this page if I find a way.

Windows: Is it *possible* to create a (virtual) video card driver?

i want to create a virtual monitor. The way this would work is that the virtual monitor would appear in a window on my desktop. As far as Windows knows it is just another monitor.
It occurs to me that it would, as a practical matter, have to be done as video card driver (i.e. rather than the video going out a wire to an LCD panel, it would go into another window on the desktop).
Does what i'm describing sound, technically, possible? (from a DDK point of view)
Note: i can't use a virtual pc, because no virtual PC has resolutions high enough for my needs. Also because it's not what i asked for.
Note: My reasons are unimportant, but i can make some up:
i want to test my application under high-dpi settings (288dpi)
i want to create a monitor that my iPad can VNC to
the family TV runs on the main monitor
the hijacker is monitoring the bus, and he'll blow it up if he suspects we're getting the passengers off
i'm trying to expand the limits of human knowledge and understanding, for the good of all man-kind
I'd say it's definitely possible, since that's what virtualization tools do for their guest utilities, but I wouldn't be able to tell you how in details. I'd suggest looking at the VirtualBox guest driver code as a starting point:
http://www.virtualbox.org/browser/trunk/src/VBox/Additions/WINNT/Graphics
(This is released under GPL as far as I'm aware.)
It's definitely possible, see for example the UltraVNC mirror driver. But I don't know of any virtual video driver that makes source code available.
I have been searching for something similar and I found a nice solution: spacedesk. You can download it here: http://spacedesk.ph/
In windows, it installs an extra monitor, which you can open in a browser or a viewer. Enjoy!
Don't know about Windows, but for X (Linux) there is Xvfb (X Virtual Frame Buffer), which is quite a useful thing.

Resources