A scanner must first be selected by calling the ImGearIsisScannerSession.SetScannerAsync method in order for the ImGearIsisScannerSession.ScanAsync method to work or any of the ImGearIsisScanner methods to work. When a scanner is selected, the ImGearIsisScanner.Selected property returns True. A scanner can be unloaded by calling the UnloadAsync method.
The SetScannerAsync method has two overloads. You can specify a load option for a scanner selection dialog or to specify that the currently selected scanner should be used. This is demonstrated below:
C# Example | ![]() |
---|---|
// Show the scanner selection dialog with a list of connected drivers. m_ScannerSession.SetScannerAsync(ImGearIsisLoadScannerOption.ShowConnectedDriverList, (setScannerStatus) => { if (setScannerStatus.Status == ImGearIsisStatus.Completed) { buttonScan.IsEnabled = true; // Display the name of the selected scanner. labelSelectedScanner.Content = m_ScannerSession.Scanner.Name; // You could use the GetTagAsync method or GetAllTagsAsync method here // to get the current scanner settings and display them. } }); |
VB.NET Example | ![]() |
---|---|
' Show the scanner selection dialog with a list of connected drivers. m_ScannerSession.SetScannerAsync( ImGearIsisLoadScannerOption.ShowConnectedDriverList, Function(setScannerStatus) If setScannerStatus.Status = ImGearIsisStatus.Completed Then buttonScan.IsEnabled = True ' Display the name of the selected scanner. ' You could use the GetTagAsync method or GetAllTagsAsync method here ' to get the current scanner settings and display them. labelSelectedScanner.Content = m_ScannerSession.Scanner.Name End If Return Nothing End Function) |
Or you can pass an ImGearIsisScanner object to set the specified scanner. You can get a collection of connected scanners and a collection of undetected scanners by calling the ImGearIsisScannerSession.GetScannersAsync method. This is demonstrated below:
C# Example | ![]() |
---|---|
private void buttonGetScanners_Click(object sender, RoutedEventArgs e) { // Get the connected scanners and add them to a list box. m_ScannerSession.GetScannersAsync((connected, undetected, status) => { if (status.Status != ImGearIsisStatus.Completed) { MessageBox.Show(status.StatusMessage); return; } foreach (ImGearIsisScanner scanner in connected) { listBox1.Items.Add(scanner); } // You could also get the undetected scanners. //foreach (ImGearIsisScanner scanner in undetected) //{ // listBox2.Items.Add(scanner); //} buttonSetConnectedScanner.IsEnabled = true; }); } private void buttonSetConnectedScanner_Click(object sender, RoutedEventArgs e) { // Set the scanner that is selected in the connected list. if (listBox1.SelectedItem != null) { m_ScannerSession.SetScannerAsync(listBox1.SelectedItem as ImGearIsisScanner, (status) => { if (status.Status != ImGearIsisStatus.Completed) { MessageBox.Show(status.StatusMessage); return; } buttonScan.IsEnabled = true; // Display the name of the selected scanner. labelSelectedScanner.Content = m_ScannerSession.Scanner.Name; // You could use the GetTagAsync method or GetAllTagsAsync method here // to get the current scanner settings and display them. }); } } |
VB.NET Example | ![]() |
---|---|
Private Sub buttonGetScanners_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles Button3.Click ' Get the connected scanners and add them to a list box. m_ScannerSession.GetScannersAsync( Function(connected, undetected, status) If status.Status <> ImGearIsisStatus.Completed Then MessageBox.Show(status.StatusMessage) Return Nothing End If For Each scanner As ImGearIsisScanner In connected listBox1.Items.Add(scanner) Next ' You could also get the undetected scanners. 'foreach (ImGearIsisScanner scanner in undetected) '{ ' listBox2.Items.Add(scanner); '} buttonSetConnectedScanner.IsEnabled = True Return Nothing End Function) End Sub Private Sub buttonSetConnectedScanner_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles Button4.Click ' Set the scanner that is selected in the connected list. If listBox1.SelectedItem IsNot Nothing Then m_ScannerSession.SetScannerAsync( TryCast(listBox1.SelectedItem, ImGearIsisScanner), Function(status) If status.Status <> ImGearIsisStatus.Completed Then MessageBox.Show(status.StatusMessage) Return Nothing End If buttonScan.IsEnabled = True ' Display the name of the selected scanner. ' You could use the GetTagAsync method or GetAllTagsAsync method here ' to get the current scanner settings and display them. labelSelectedScanner.Content = m_ScannerSession.Scanner.Name Return Nothing End Function) End If End Sub |