Hallo
warum arbeitet dieser CODE
[autoit]
DllCall("InpOut32.dll","short","Out32","short",0x378,"short",$port,"short",0)
nur in AUTOIT V3.1
und nicht in AutoIT V3.2XXX
und wie krieg ich den da zum laufen ??
geht um das ansprechen des LPT PORT
hier ne fertige au3 ( einfach mit AutoIT V3.1 in eine EXE compilieren
funktioniert wunderbar
ps.: inpout23.dll googlen und in windows system32 kopieren.
Spoiler anzeigen
;LPT1_von_pc_ausgeben
;funktioniert nur, wenn skript mit Auto It V3.1 in exe konvertiert wird.
;ansonsten schwerer Ausnahmefehler
$pfad = @WorkingDir&"\"
[/autoit] [autoit][/autoit] [autoit]If FileExists( $pfad&"LPT1_von_PC_ausgeben.ini") Then
iniexists()
Else
MsgBox (4,"LPT1_von_PC_ausgeben","kann "& $pfad&"LPT1_von_PC_ausgeben.ini"&" nicht finden -- wird erstellt")
iniWrite( $pfad&"LPT1_von_PC_ausgeben.ini", "LPT1_0x378_out", "port", "255 ;hier den anzusteuernden Port eintragen")
iniWrite( $pfad&"LPT1_von_PC_ausgeben.ini", "LPT1_0x378_out", "schleife", "1 ; 1 für Ja -- 0 für NEIN")
exit
EndIf
Exit
[/autoit] [autoit][/autoit] [autoit];-------------
[/autoit] [autoit][/autoit] [autoit]Func iniexists()
$schleife = IniRead( $pfad&"LPT1_von_PC_ausgeben.ini", "LPT1_0x378_out", "schleife", "1")
If $schleife = 1 Then
schleife()
ElseIf $schleife = 0 Then
nur_ein_mal()
Else
MsgBox(4,"LPT1_von_PC_ausgeben","Bitte in " & $pfad&"LPT1_von_PC_ausgeben.ini "&" schleife eintragen")
Exit
EndIf
Exit
[/autoit] [autoit][/autoit] [autoit]EndFunc
[/autoit] [autoit][/autoit] [autoit];---------------------
[/autoit] [autoit][/autoit] [autoit]Func nur_ein_mal()
[/autoit] [autoit][/autoit] [autoit]$port = IniRead($pfad&"LPT1_von_PC_ausgeben.ini", "LPT1_0x378_out", "port", "0")
[/autoit] [autoit][/autoit] [autoit]DllCall("InpOut32.dll","short","Out32","short",0x378,"short",$port,"short",0)
[/autoit] [autoit][/autoit] [autoit]EXIT
[/autoit] [autoit][/autoit] [autoit]EndFunc
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit];----------------------
[/autoit] [autoit][/autoit] [autoit]Func schleife()
While 1
$port = IniRead($pfad&"LPT1_von_PC_ausgeben.ini", "LPT1_0x378_out", "port", "0")
[/autoit] [autoit][/autoit] [autoit]DllCall("InpOut32.dll","short","Out32","short",0x378,"short",$port,"short",0)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]WEnd
EndFunc
Exit
PPS.:
hier das ganze noch in grün, um ein LPT Signal in den Pc einzulesen
gilt das gleiche wie oben.( geht auch nur mit AUto IT V 3.1)
Spoiler anzeigen
;LPT_in_pc_einlesen
Global $address,$port,$zustand,$pfad,$ini,$wini,$schleife,$tooltip, $sleep
If not Fileexists("c:\LPT1_in_pc_einlesen_pfad.ini") then
iniWrite( "c:\LPT1_in_pc_einlesen_pfad.ini", "LPT1_0x379_in_pc_einlesen", "pfad", @WorkingDir & "\")
;MsgBox(1,"LPT1_in_pc_einlesen","FEHLER -- Die INI mit dem Filename - c:\LPT1_in_pc_einlesen_pfad.ini - Der section - [LPT1_0x379_in_pc_einlesen] - und dem KEY - pfad = workdir - fehlt --- BITTE erstellen")
MsgBox(4,"LPT1_in_pc_einlesen","bitte legen sie die workdirektory fest -- in C:\c:\LPT1_in_pc_einlesen_pfad.ini")
Exit
EndIf
;$pfad1 = @WorkingDir&"\"
[/autoit] [autoit][/autoit] [autoit]$pfad = IniRead( "c:\LPT1_in_pc_einlesen_pfad.ini", "LPT1_0x379_in_pc_einlesen", "pfad", "")
[/autoit] [autoit][/autoit] [autoit];$pfad = $pfad1"\"
[/autoit] [autoit][/autoit] [autoit]$ini = $pfad&"LPT1_in_pc_einlesen.ini"
$wini = $pfad&"LPT1_in_pc_einlesen_work.ini"
If FileExists( $ini ) then
iniexists()
Else
MsgBox (4,"LPT1_in_pc_einlesen","kann "& $ini & " nicht finden -- wird erstellt")
iniWrite( $ini, "LPT1_0x379_in_pc_einlesen", "port", "2 ; hier den anzusteuernden Port eintragen")
iniWrite( $ini, "LPT1_0x379_in_pc_einlesen", "zustand", "1 ; 1 für Ja -- 0 für NEIN")
iniWrite( $ini, "LPT1_0x379_in_pc_einlesen", "schleife", "1 ; 1 für Ja -- 0 für NEIN")
iniWrite( $ini, "LPT1_0x379_in_pc_einlesen", "ToolTip", "1 ; 1 für Ja -- 0 für NEIN")
iniWrite( $ini, "LPT1_0x379_in_pc_einlesen", "sleep", "10 ; 10 ms")
;iniWrite( $ini, "LPT1_0x379_in_pc_einlesen", "pfad", $pfad1)
exit
EndIf
Exit
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit];---------------------------
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Func iniexists()
[/autoit] [autoit][/autoit] [autoit]If FileExists( $wini ) then
alliniexists()
Else
MsgBox (4,"LPT1_von_pc_ausgeben","kann "& $wini & " nicht finden -- wird erstellt")
iniWrite( $wini, "LPT1_0x379_in_pc_einlesen_work", "CODE", "0 ; hier wird der aktuelle wert des portes eingefügt ")
exit
EndIf
Exit
[/autoit] [autoit][/autoit] [autoit]EndFunc
;----------------------------
Func alliniexists()
[/autoit] [autoit][/autoit] [autoit]$address = 0x379
$port = IniRead( $ini, "LPT1_0x379_in_pc_einlesen", "port", "2")
$zustand = IniRead( $ini, "LPT1_0x379_in_pc_einlesen", "zustand", "1")
$schleife= IniRead( $ini, "LPT1_0x379_in_pc_einlesen", "schleife", "1")
$tooltip = IniRead( $ini, "LPT1_0x379_in_pc_einlesen", "ToolTip", "0")
$sleep = IniRead( $ini, "LPT1_0x379_in_pc_einlesen", "sleep", "10")
IF $schleife = 0 Then
keineschleife()
ElseIf $schleife = 1 Then
schleife()
else
EndIf
Exit
[/autoit] [autoit][/autoit] [autoit]EndFunc
[/autoit] [autoit][/autoit] [autoit];-----------------------
[/autoit] [autoit][/autoit] [autoit]Func schleife()
[/autoit] [autoit][/autoit] [autoit]while 1
[/autoit] [autoit][/autoit] [autoit]$schleife= IniRead( $ini, "LPT1_0x379_in_pc_einlesen", "schleife", "1")
IF $schleife = 0 Then
Exit
EndIf
sleep($sleep)
[/autoit] [autoit][/autoit] [autoit]$result = DllCall("inpout32.dll", "short", "Inp32", "short", $address,"short",$port,"short",$zustand)
[/autoit] [autoit][/autoit] [autoit]IniWrite( $wini, "LPT1_0x379_in_pc_einlesen_work", "CODE", $result[0])
[/autoit] [autoit][/autoit] [autoit]IF $tooltip = 1 Then
ToolTip($result[0],0,0)
EndIf
WEnd
EndFunc
exit
;---------------
[/autoit] [autoit][/autoit] [autoit]Func keineschleife()
$result = DllCall("inpout32.dll", "short", "Inp32", "short", $address,"short",$port,"short",$zustand)
IniWrite( $wini, "LPT1_0x379_in_pc_einlesen_work", "CODE", $result[0])
IF $tooltip = 1 Then
ToolTip($result[0],0,0)
Else
EndIf
EndFunc
PPPS.:
Wäre über eine HILFE sehr dankbar.
da ich jetzt alles über die ini-files schieben muss...
braucht Rechenleistung ohne ENDE.