Solved

Get handle of my scanner

Posted on 2010-09-08
10
1,433 Views
Last Modified: 2012-08-13
I installed an ActiveX component, but all of its functions require you to know the OLE_HANDLE of the scanner, for example:
    function ScannerAvailable(hWnd: OLE_HANDLE): WordBool;
    function OpenScanner(hWnd: OLE_HANDLE): Integer;
    function CloseScanner(hWnd: OLE_HANDLE): Integer;
The scanner is a USB scanner, how do I get its handle to start and stop scanning?

Details:
  Scanner: Fujitsu fi-60F
  IDE: Delphi 7
  ActiveX Control: Fujitsu Scanner Control (Version 5.20) FiScn.ocx
0
Comment
Question by:rfwoolf
  • 5
  • 5
10 Comments
 
LVL 13

Author Comment

by:rfwoolf
ID: 33626346
FYI There is a link to the MSDN about a function  called EnumerateWiaDevices but this may be incorrect and I may need some help using this in Delphi
http://msdn.microsoft.com/en-us/library/ms629852(VS.85).aspx
0
 
LVL 13

Author Comment

by:rfwoolf
ID: 33626470
There's also a Windows type library that enumerates image devices, but I'm still trying to figure out how to get a handle:
http://www.delphigroups.info/2/3/936314.html
==================================
I have imported
"Microsoft Windows Image Acquisition 1.01 Type Library"
using the Project / Import Type Library menu option. The file
WIALib_TLB.pas was created automatically.
I can get a list of cameras attached to my PC by doing:
procedure TForm1.FormCreate(Sender: TObject);
var
I: Integer;
Dev: IWiaDeviceInfo;
begin
wia.Connect;
Caption := IntToStr(wia.Devices.Count);
lb.Items.Clear;
for I := 0 to wia.Devices.Count - 1 do
begin
Dev := wia.Devices.Item[I] as IWiaDeviceInfo;
lb.Items.Add(Dev.Name + ' (' + Dev.Id + ')');
end;
end;
0
 
LVL 5

Accepted Solution

by:
briangochnauer earned 500 total points
ID: 33631540
Handle to do what?

Have you read through this?
http://msdn.microsoft.com/en-us/library/ms630814(VS.85).aspx
0
Gigs: Get Your Project Delivered by an Expert

Select from freelancers specializing in everything from database administration to programming, who have proven themselves as experts in their field. Hire the best, collaborate easily, pay securely and get projects done right.

 
LVL 13

Author Comment

by:rfwoolf
ID: 33632300
You can see from the functions I listed in the question stuff like open scanner, see if its available, scan an image, etc
0
 
LVL 5

Expert Comment

by:briangochnauer
ID: 33663070
Then you would notice that there is nothing in the documentation stating a 'handle' is available.
'Handle' is a generic term not a specification. Check the documentation for the ActiveX control you installed or contact the developer that created the ActiveX control.
Or you could always use the Microsoft API for free.
0
 
LVL 13

Author Comment

by:rfwoolf
ID: 33739816
"Or you could always use the Microsoft API for free."
You mean Windows Image Acquisition (WIA)?
Unfortunately I couldn't find much in the way of example source code for Delphi - in fact I've spent a great deal of time trying to get the snippets of code that I *did* find to work.

"Check the documentation for the ActiveX control you installed or contact the developer that created the ActiveX control."
Yeah, unfortunately Fujitsu are dragging their feet on this - I have to pay to use their SDK but on their Japanese website they say it's free - AND the SDK comes with the scanner anyway -- well just the ActiveX library.
Here's an image:
delphi.jpg
0
 
LVL 5

Expert Comment

by:briangochnauer
ID: 33743452
Upload the generated TLB file (FiScnLib_tlb.pas) and I'll take a look;
0
 
LVL 13

Author Closing Comment

by:rfwoolf
ID: 33861778
Gave up
0
 
LVL 5

Expert Comment

by:briangochnauer
ID: 33862499
too bad :(   I don't think you needed the and with the the component dropped on the form you should have been able to do a;
FiScn1.Scan;
or
FiScn1.Start;
or something like that.

Could have been determined by looking at the FiScnLib_tlb.pas I asked for; or sending the OCX to me;
 
0
 
LVL 5

Expert Comment

by:briangochnauer
ID: 33862507
meant to say;
 don't think you needed the handle with the the component dropped on the form .
0

Featured Post

Gigs: Get Your Project Delivered by an Expert

Select from freelancers specializing in everything from database administration to programming, who have proven themselves as experts in their field. Hire the best, collaborate easily, pay securely and get projects done right.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Creating an auto free TStringList The TStringList is a basic and frequently used object in Delphi. On many occasions, you may want to create a temporary list, process some items in the list and be done with the list. In such cases, you have to…
Have you ever had your Delphi form/application just hanging while waiting for data to load? This is the article to read if you want to learn some things about adding threads for data loading in the background. First, I'll setup a general applica…
Microsoft Active Directory, the widely used IT infrastructure, is known for its high risk of credential theft. The best way to test your Active Directory’s vulnerabilities to pass-the-ticket, pass-the-hash, privilege escalation, and malware attacks …
This video shows how to use Hyena, from SystemTools Software, to bulk import 100 user accounts from an external text file. View in 1080p for best video quality.

815 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

12 Experts available now in Live!

Get 1:1 Help Now