Hast du schon das probiert?
[autoit]$szLabel = $ls.GetVersion()
[/autoit]Hast du schon das probiert?
[autoit]$szLabel = $ls.GetVersion()
[/autoit]Hab's mir nicht angeschaut, aber schau mal hier: http://www.autoitscript.com/forum/topic/14…s/#entry1013532
Habe auch noch eine Variante gebastelt. Da der Errorlevel von find.exe anscheinend seit WinNT nicht mehr funktioniert musste ich über eine temporäre Datei gehen.
Das Programm wartet auf das Vorhandensein der Notepad.exe
@echo off
set Zaehler=³²
:LOOP
cls
echo.
echo Programm wird geladen ...
echo.
echo %Zaehler%
call :add ²
tasklist | find /I "notepad.exe" > temp.dat
FOR /F "usebackq" %%A IN ('temp.dat') DO set size=%%~zA
IF %size% NEQ 0 Goto WEITER
Goto LOOP
:WEITER
cls
echo.
echo Fertig geladen
echo.
del temp.dat
goto :eof
:add
set Zaehler=%Zaehler:~0,-1%%1³
goto :eof
Alles anzeigen
Freut mich wenn du es brauchen kannst. Darf ich fragen wofür? Ich werde es wahrscheinlich zum Loggen von Daten verwenden und um Symboliken aus Simatic-Projekten auszulesen.
Hier ein weiteres Beispiel
#include <Array.au3>
#include <Date.au3>
#include "DBF.au3"
Global $hDBF = _DBF_Create("Test.dbf")
If $hDBF = 0 Then
ConsoleWrite("Error creating dbf file ..." & @CRLF)
Exit
EndIf
_DBF_AddField($hDBF, "ID", $DBF_FTInteger, 10, 0)
_DBF_AddField($hDBF, "Time", $DBF_FTString, 24, 0)
_DBF_AddField($hDBF, "Value1", $DBF_FTDouble, 10, 3)
_DBF_AddField($hDBF, "Value2", $DBF_FTDouble, 10, 3)
_DBF_AddField($hDBF, "Value3", $DBF_FTDouble, 10, 3)
_DBF_AddField($hDBF, "Value4", $DBF_FTDouble, 10, 3)
For $i = 1 To 100
_WriteValues($hDBF)
Next
Global $aDBF = _DBF_DBFToArray($hDBF)
_DBF_Close($hDBF)
_ArrayDisplay($aDBF)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Func _WriteValues($hDBF)
$iRecords = _DBF_GetRecordCount($hDBF)
_DBF_WriteIntegerAttribute($hDBF, $iRecords, 0, $iRecords + 1)
_DBF_WriteStringAttribute($hDBF, $iRecords, 1, _Now() & "." & @MSEC)
[/autoit] [autoit][/autoit] [autoit]_DBF_WriteDoubleAttribute($hDBF, $iRecords, 2, Random(1, 100))
_DBF_WriteDoubleAttribute($hDBF, $iRecords, 3, Random(1, 100))
_DBF_WriteDoubleAttribute($hDBF, $iRecords, 4, Random(1, 100))
_DBF_WriteDoubleAttribute($hDBF, $iRecords, 5, Random(1, 100))
EndFunc
Hallo,
ich habe eine DLL aus der ShapeLib Library gebastelt (http://shapelib.maptools.org/). Damit kann man dBase Datenbanken erstellen und bearbeiten. Ist zwar nicht so komfortabel wie die COM-Alternativen, aber man kann sich ja nützliche Wrapper-Funktionen basteln.
Ich hoffe es kann jemand brauchen.
Gruß
funkey
Edit: UDF erweitert und weitere Beispiele angehängt
Was willst du uns hier weismachen?
Beschreib mal genau was du erreichen willst, welches Programm du eventuell ansteuerst, und hänge auch Screenshots an.
Außerdem schlage ich vor du liest dir mal die Hilfe zu den Befehlen durch, die du verwendest. Einfach F1 drücken wenn du den Befehl in SciTE angeklickt hast. Und probiere auch die Hilfe-Beispiele aus, dann wird dir normalerweise alles klar wie es funktioniert.
Es gibt auch noch ProcessWaitClose()
Super wenn wenigstens etwas funktioniert!
Die NrZuName.dll sieht so aus, als ob jemand einfach den C_Code aus Post#1 genommen hätte, leicht geändert und eine DLL darauf erstellt hat. Natürlich nur, wenn diese DLL die andere DLL benutzt.
Der 3. Parameter in SucheTelefonnummer ist glaube ich die Anzahl der Strukturen, die du übergibst, falls du erwartest, dass die Nummer öfters gefunden wird. Da der Wert ByRef (als Pointer --> int*) übergeben wird kann die Funktion den Wert beschreiben. So kommt z.B. 0 zurück, wenn die Nummer nicht gefunden wurde.
Hab mir noch mal den Delphi-Code angeschaut und sehe da eigentlich keinen großen Unterschied.
Du könntest mal versuchen das
Local $aRet = DllCall($hDLL, "none", "SucheTelefonnummer", "str", $sNummer, "struct*", $tEintrag, "int*", 1)
durch das
Local $aRet = DllCall($hDLL, "none", "SucheTelefonnummer", "str", $sNummer, "ptr", DllStructGetPtr($tEintrag), "int", 1)
zu ersetzen.
Wnn das Delphi-Beispiel mit deiner Version der DLL funktioniert, dann sollte sich bestimmt einer finden, der den Code von Delphi nach AutoIt richtig portieren kann. Für mich ist die Delphi/Pascal-Syntax ein bischen selktsam, ich werde mich aber bei Gelegenheit noch einmal damit versuchen.
Funktioniert die Funktion _UseVersion() wenigstens, oder ist da auch noch etwas falsch? Hab nämlich die DLL von hier geladen und da funktionierte nicht mal das DllOpen()!? Kann aber sein, dass die DLL beim Starten noch irgendwelche Abhängigkeiten überprüft und es deshalb nicht funktioniert, keine Ahnung.
Ich hab zwar die DLL nicht, hätte es aber mal so versucht:
#include <Array.au3>
[/autoit] [autoit][/autoit] [autoit]Global $sNummer = "02212154784"
Global $hDLL = DllOpen("RufIdent\Rufid.dll")
_UseVersion(2)
Global $aErgebnis = _SucheTelefonnummer($sNummer)
_ArrayDisplay($aErgebnis)
DllClose($hDLL)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Func _UseVersion($iVersion)
DllCall($hDLL, "none", "UseVersion", "BYTE", $iVersion)
Return @error
EndFunc ;==>_UseVersion
Func _SucheTelefonnummer($sNummer)
Local $tagEintrag = "char markiert;char titel[5];char adel;char namevorsatz;char namezusatz;char geschlecht;char vorname[31];" & _
"char anrede[11];char name[121];char zusatz[121];char ortsteil[41];char strasse[47];char hausnummer[11];char hausnummerzusatz[21];" & _
"char land[4];char plz[6];char ort[71];char vorwahl[11];char telzusatz[16];char telefon[21]"
Local $tEintrag = DllStructCreate($tagEintrag)
[/autoit] [autoit][/autoit] [autoit]Local $aRet = DllCall($hDLL, "none", "SucheTelefonnummer", "str", $sNummer, "struct*", $tEintrag, "int*", 1)
[/autoit] [autoit][/autoit] [autoit]Local $aErgebnis[20]
[/autoit] [autoit][/autoit] [autoit]For $i = 1 To 20
$aErgebnis[$i - 1] = DllStructGetData($tEintrag, $i)
Next
Return $aErgebnis
EndFunc ;==>_SucheTelefonnummer
Alles Gute zum Geburtstag progandy!
Feier schön und ausgiebig! ![]()
Danke, dass du deine reichhaltigen Programmierkenntnisse mit uns teilst. Bleib unserem Forum noch lange erhalten!
![]()
![]()
![]()
![]()
![]()
![]()
Hey water alles Gute zum 53. Geburtstag (Ich hoffe ich habe mich nicht verrechnet)! Genieß den Tag!
Alles Gute zum Geburtstag name22!! ![]()
Facebook unser im Internet,
geheiligt werde dein Login,
dein Spam komme,
dein Like geschehe,
wie auf dem Computer so auf dem Smartphone.
Unseren täglichen Status gib uns heute,
und vergib uns unseren Stubs,
wie auch wir vergeben unseren Stubsern.
Und führe uns nicht ins bloggen,
sondern erlöse uns von den Spammern.
Denn dein sind die Phrases,
und die Uploads und die PMs
in Ewigkeit. Online.
Du könntest zusätzlich zu _FileListToArray() mein _ArrayPatternMatch() verwenden.
#include <File.au3>
#include <Array.au3>
Global $Filter = "*.doc"
Global $a = _FileListToArray(@ScriptDir, $Filter)
_ArrayDisplay($a)
[/autoit] [autoit][/autoit] [autoit]Global $aTest = _ArrayPatternMatch($a, $Filter)
_ArrayDisplay($aTest)
Func _ArrayPatternMatch($aArray, $sPattern)
;funkey May 17, 2010
If UBound($aArray, 0) <> 1 Then Return SetError(1, 0, "") ;no 1D-array
Local $n = UBound($aArray)
Local $aRes[$n], $j = 0
$sPattern = "^\Q" & $sPattern & "\E$"
$sPattern = StringReplace($sPattern, "?", "\E.\Q")
$sPattern = StringReplace($sPattern, "*", "\E.*\Q")
For $i = 0 To $n - 1
If StringRegExp($aArray[$i], $sPattern, 0) Then
$aRes[$j] = $aArray[$i]
$j += 1
EndIf
Next
If $j = 0 Then Return SetError(2, 0, "") ;no match
ReDim $aRes[$j]
Return $aRes
EndFunc
Schon Mitte 20 Offtopic-Beiträge in einem Offtopic-Thread!
![]()
Ich dachte es geht um Userpics. Wer sie reinstellen will, soll sie reinstellen, wer nicht, der nicht.
Ich finde es interessant, wenn man mal ein Bild zu einem Namen hat.
Pünklich zu den Geburtstagen der alt eingesessenen ist Schwester wieder da! ![]()
Aber natürlich auch von mir alles Gute, Gun-Food, jetzt sind wir gleich alt bis zum Dezember. ![]()
Und danke für die viele Arbeit, die du in unser Forum steckst!
[Blockierte Grafik: http://theletter.co.uk/images/lc/gun_egg_frier.jpg]