Portadresse ausgeben?
Verfasst: 13.02.2010 21:34
Ich suche nach einer Möglichkeit die Portadressen von LPT zu ermitteln.
Da bei mir im PC kein LPT vorhanden war, habe ich mir eine PCI-Karte mit zwei LPT-Anschlüssen gekauft.
Ich weiß, das sie mit $E080 bzw. $E480 aufgerufen werden können. Mir wäre es aber lieber, erstmal
vorhandene LPT-Schnittstellen aufzulisten und dazu die Adressen.
Zum ersteren habe ich hier was schönes von Danilo gefunden und etwas korrigiert:
Nur fehlen hier die Portadressen, welche die Structure nicht anbietet. Gibt es da evtl. noch eine andere Möglichkeit?
Ich würde mich sehr freuen, wenn ihr mir da weiterhelfen könntet.
Grüße, Falko
Da bei mir im PC kein LPT vorhanden war, habe ich mir eine PCI-Karte mit zwei LPT-Anschlüssen gekauft.
Ich weiß, das sie mit $E080 bzw. $E480 aufgerufen werden können. Mir wäre es aber lieber, erstmal
vorhandene LPT-Schnittstellen aufzulisten und dazu die Adressen.
Zum ersteren habe ich hier was schönes von Danilo gefunden und etwas korrigiert:
Code: Alles auswählen
;Source aus dem englischen Forum Danilo
;http://www.purebasic.fr/english/viewtopic.php?p=24276#p24276
Dim buffer.PORT_INFO_2(1000)
pcbNeeded.l=0
pcReturned.l=0
!PUSH dword v_pcReturned
If EnumPorts_(#Null,2,@buffer(),SizeOf(PORT_INFO_2)*1000,@pcbNeeded.l,@pcReturned)
For a = 0 To pcReturned-1
If buffer(a)\pPortName
Debug "FOUND: "+PeekS(buffer(a)\pPortName)
Debug " - " +PeekS(buffer(a)\pMonitorName)
Debug " - " +PeekS(buffer(a)\pDescription)
Select buffer(a)\fPortType
Case #PORT_TYPE_WRITE : Debug " - "+"PORT_TYPE_WRITE"
Case #PORT_TYPE_READ : Debug " - "+"PORT_TYPE_READ"
Case #PORT_TYPE_REDIRECTED : Debug " - "+"PORT_TYPE_REDIRECTED"
Case #PORT_TYPE_NET_ATTACHED : Debug " - "+"PORT_TYPE_NET_ATTACHED"
EndSelect
EndIf
Next a
Debug "END."
Else
Error$ = Space(1000)
FormatMessage_(#FORMAT_MESSAGE_FROM_SYSTEM,#FORMAT_MESSAGE_FROM_HMODULE,GetLastError_(),0,Error$,Len(Error$),0)
MessageRequester("ERROR",Error$,#MB_ICONERROR)
EndIf
Nur fehlen hier die Portadressen, welche die Structure nicht anbietet. Gibt es da evtl. noch eine andere Möglichkeit?
Ich würde mich sehr freuen, wenn ihr mir da weiterhelfen könntet.
Grüße, Falko