TWAIN - Brightness, Saturation, Contrast und Hue verändern ?

Reticent

Erfahrenes Mitglied
Hallo Alle zusammen,

ich kämpfe schon seit 3 Tagen gegen TWAIN. :(
Und zwar in meiner Software steure ich eine Kamera an. Uns es läuft alles super.
Jetzt kommt der Pukt. Wenn ich jetzt in einem anderen Programm den Acquire-Dialog von TWAIN aufrufe und dort Parameter für z.B. Saturation oder Brightness verändere, hat es auswirkung auf alles adnere. D.h. wenn ich jetzt meine Anwendung starte, dann kann ich die z.B Brightness-Parameter für Kamera egal wie einstellen, die TWAIN Sachen werde auch beim Anzeigen der aufgenommenen Bildern mit berechnet.
Es ist schwer genau zu erklären.

Meine Frage ist: Wie kann ich die TWAIN-Einstellungen aus meinem Program auf default setzen?

bitte bitte helft mir. es ist sehr sehr sehr dringen.
bin für jede Idee dankbar!
 
ach so. Noch was. vielleicht hilfreich.

wenn ich meine Kamera aus und dann anmache, und danach meine Anwendung starte, werde die alle Parameter in Default versetzt und alles vird ganz normal angezeigt.
 
hm.... Keiner weiss Bescheid... Egal. Ich habe rausgefunden, dass es ausreichend ist die Kamera im Hardware Manager einfach deaktivieren und dann wieder aktivieren. Dann werden die Einstellungen im TWAIN resetet, sobald ich meine Anwendung starte.

Und jetzt möchste ich es aus dem Code machen.
Ich habe etwas gefunden und gebastelt:
Code:
	HDEVINFO DeviceInfoSet; 
	SP_DEVINFO_DATA DeviceInfoData = {sizeof(SP_DEVINFO_DATA)}; 

	SP_PROPCHANGE_PARAMS m_par;
	memset(&m_par, 0, sizeof(SP_PROPCHANGE_PARAMS)); 

	m_par.ClassInstallHeader.cbSize = sizeof(SP_CLASSINSTALL_HEADER); 
	m_par.ClassInstallHeader.InstallFunction = DIF_PROPERTYCHANGE; 
	m_par.StateChange = DICS_PROPCHANGE; 
	m_par.Scope = DICS_FLAG_GLOBAL; 
	m_par.HwProfile = 0; 

	DeviceInfoSet = SetupDiGetClassDevs((LPGUID)&GUID_DEVCLASS_IMAGE, NULL, NULL, DIGCF_PRESENT);
	if(DeviceInfoSet == INVALID_HANDLE_VALUE) 
	{ 
		AfxMessageBox("SetupDiGetClassDevs error "); 
		return; 
	} 


	int i=0;
	while (SetupDiEnumDeviceInfo(DeviceInfoSet,i,&DeviceInfoData)) 
	{
		i++;
		if (DeviceInfoData.DevInst == 1)//statt 1 die echte ID verwenden
		{
			// prepare for the call to SetupDiCallClassInstaller 
			if(!SetupDiSetClassInstallParams(DeviceInfoSet, &DeviceInfoData, (SP_CLASSINSTALL_HEADER *) &m_par, sizeof(SP_PROPCHANGE_PARAMS))) 
			{
				AfxMessageBox("SetupDiSetClassInstallParams error "); 
				return;
			}
			// stop and restart the device

			if(!SetupDiCallClassInstaller(DIF_PROPERTYCHANGE, DeviceInfoSet, &DeviceInfoData)) 
			{ 
				AfxMessageBox("SetupDiCallClassInstaller error "); 
				return ; 
			} 
			break;
		}
	}
und es muss auch funktionieren. Leider Bekomme ich jetzt eine Fehlermeldung:
fatal error LNK1181: cannot open input file 'D:\Program.obj'

Hat jemand eine Ahnung warum?
 
Zuletzt bearbeitet:
hab gefunden. Der Pfad für 'Additional dependencies' war falsch.

jetzt kommt aber der blödeste, BLÖDESTE Fehler:
LNK2019: unresolved external symbol ....

Heisst es, dass ich irgend eine Header-Datei in mein Projekt aufnehmen soll?
 
ok. Das:

#pragma comment(lib, "setupapi.lib")

löst das Problem.

Vielleicht hilft der thread jemandem.
 
Zurück