|
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Make-Grafik
Anmeldungsdatum: 08.10.2012 Beiträge: 29
|
Verfasst am: 06.05.2013, 04:52 Titel: [ gelöst ] AutoItX3.dll --- Methoden / Objekte in FreeBAS... |
|
|
Hallo Community!
Vorab: Ich war nicht sicher ob das eher ins Bibliotheken Unterforum gehörter oder hierhin... Falls ich hier komplett falsch bin, würde ich gerne darum bitten den Thread zu verschieben. Dankeschön
Also, ich möchte gerne die AutoItX3.dll in FreeBASIC nutzen. Allerdings beinhaltet sie Methoden. Ich muss demnach daraus ein Objekt erzeugen und das kriege ich einfach nicht hin. Habe schon bereits gegoogelt und das was ich kann / weiß angewendet, aber ohne Erfolg.
Ich habe euch eine *.zip hochgeladen wo alles wichtige enthalten ist.
http://www.file-upload.net/download-7558195/AutoItX3.zip.html
Also, in der *.zip Datei solltet ihr folgendes vorfinden:
1.: Code.bas
Hier seht ihr meinen Versuch die AutoItX3.dll zu verwenden...
Ich kompiliere sie mit folgenden Einstellungen: fbc -s console "Code.bas"
2.: AutoItX3.bi
Hier versuche ich Methoden aus der AutoItX3.dll zu deklarieren. In der Code.bas inkludiere ich dann einfach die AutoItX3.bi. Wie ich bereits sagte habe ich alles angewendet was ich bereits kann und weiß. Habe also versucht da was mit "SUB" oder "FUNCTION" zu zaubern. Ohne Erfolg...
3.: AutoItX3.dll
Nun ja, die DLL selber...
4.: AutoItX.chm
Dies ist eine (nicht von mir geschriebene) Dokumentation über die AutoItX3.dll. Diese ist auf Englisch. Dort stehen alle Methoden drin die die AutoItX3.dll enthält. Vorerst möchte ich nur die Methode "ClipPut" und "ClipGet" verwenden.
5.: ERROR.txt
Hier habe ich meine Fehlermeldung dokumentiert welche mir der FreeBASIC editor 1.0.7.6c entgegen schmeißt. Habe alles 1 zu 1 kopiert. (Sind nur 3 Zeilen )
Ich weiß ja nicht ob ihr tatsächlich die Dateien benötigt um mir weiterzuhelfen. Habe nur sicherhalbs halber einfach mal hochgeladen. Schaden kanns ja nicht.
Wie gesagt: Ich schaffe es einfach nicht die Methoden aufzurufen die in der AutoItX3.dll vorhanden sind. Ich hoffe ihr könnt und werdet mir hier weiterhelfen. Ich brauche im Grunde nur einen Denkanstoß oder Lesematerial. Ich selber habe nichts gefunden. Kahm noch nie gut mit Google zurecht.
LG. Make _________________ Hmn :/ Mal schaun was es bringt...
Zuletzt bearbeitet von Make-Grafik am 06.05.2013, 13:29, insgesamt einmal bearbeitet |
|
Nach oben |
|
|
storky
Anmeldungsdatum: 06.01.2013 Beiträge: 68
|
Verfasst am: 06.05.2013, 05:46 Titel: |
|
|
Hallo,
deine autoitx3.bi war nicht richtig, die Funktionen die du angegeben hattest waren nicht in der dll vorhanden.
Ich habe die mal korrigiert.
AutoItX3.bi:
Code: | #inclib "AutoItX3"
extern "C"
Declare function AU3_Init Lib "AutoItX3" Alias "AU3_Init" as integer
Declare Function AU3_ClipGet Lib "AutoItX3" Alias "AU3_ClipGet" (sValue As ZString, ByVal size As integer) As Integer
Declare Function AU3_ClipPut Lib "AutoItX3" Alias "AU3_ClipPut" (sValue As ZString) As Integer
Declare Function AU3_error Lib "AutoItX3" Alias "AU3_error" () As Long
end extern |
Code.bas:
Code: | #Include "AutoItX3.bi"
Dim test As ZString*6
Dim Leng As Integer
test = "hallo"
leng = Len(test)
Print AU3_Init()
Print AU3_ClipPut(test)
Print AU3_ClipGet(test, leng)
Print AU3_error()
Print test
Sleep
|
Dann macht es irgendwas ohne abzustürzen. Ich habe keine Ahnung was die dll für einen Sinn hat... und auch nicht von AutoIt.
Wenn da jetzt irgendwas nicht funktioniert, muss dir jemand anderes weiterhelfen.
Aber die dll hat noch mehr Einträge, ich empfehle "dependency walker" das ist ein Programm, dass die Prozeduren einer dll auflisten kann und anzeigt welche libs diese dll wiederum braucht.
Hier mal der Inhalt von AutoItX3.dll
AU3_AutoItSetOption
AU3_BlockInput
AU3_CDTray
AU3_ClipGet
AU3_ClipPut
AU3_ControlClick
AU3_ControlCommand
AU3_ControlDisable
AU3_ControlEnable
AU3_ControlFocus
AU3_ControlGetFocus
AU3_ControlGetHandle
AU3_ControlGetPosHeight
AU3_ControlGetPosWidth
AU3_ControlGetPosX
AU3_ControlGetPosY
AU3_ControlGetText
AU3_ControlHide
AU3_ControlListView
AU3_ControlMove
AU3_ControlSend
AU3_ControlSetText
AU3_ControlShow
AU3_ControlTreeView
AU3_DriveMapAdd
AU3_DriveMapDel
AU3_DriveMapGet
AU3_IniDelete
AU3_IniRead
AU3_IniWrite
AU3_Init
AU3_IsAdmin
AU3_MouseClick
AU3_MouseClickDrag
AU3_MouseDown
AU3_MouseGetCursor
AU3_MouseGetPosX
AU3_MouseGetPosY
AU3_MouseMove
AU3_MouseUp
AU3_MouseWheel
AU3_Opt
AU3_PixelChecksum
AU3_PixelGetColor
AU3_PixelSearch
AU3_ProcessClose
AU3_ProcessExists
AU3_ProcessSetPriority
AU3_ProcessWait
AU3_ProcessWaitClose
AU3_RegDeleteKey
AU3_RegDeleteVal
AU3_RegEnumKey
AU3_RegEnumVal
AU3_RegRead
AU3_RegWrite
AU3_Run
AU3_RunAsSet
AU3_RunWait
AU3_Send
AU3_SendA
AU3_Shutdown
AU3_Sleep
AU3_StatusbarGetText
AU3_ToolTip
AU3_WinActivate
AU3_WinActive
AU3_WinClose
AU3_WinExists
AU3_WinGetCaretPosX
AU3_WinGetCaretPosY
AU3_WinGetClassList
AU3_WinGetClientSizeHeight
AU3_WinGetClientSizeWidth
AU3_WinGetHandle
AU3_WinGetPosHeight
AU3_WinGetPosWidth
AU3_WinGetPosX
AU3_WinGetPosY
AU3_WinGetProcess
AU3_WinGetState
AU3_WinGetText
AU3_WinGetTitle
AU3_WinKill
AU3_WinMenuSelectItem
AU3_WinMinimizeAll
AU3_WinMinimizeAllUndo
AU3_WinMove
AU3_WinSetOnTop
AU3_WinSetState
AU3_WinSetTitle
AU3_WinSetTrans
AU3_WinWait
AU3_WinWaitA
AU3_WinWaitActive
AU3_WinWaitActiveA
AU3_WinWaitClose
AU3_WinWaitCloseA
AU3_WinWaitNotActive
AU3_WinWaitNotActiveA
AU3_error
DllCanUnloadNow
DllGetClassObject
DllRegisterServer
DllUnregisterServer
^^Die können noch alle in die .bi rein, aber dazu hab ich jetzt keine Lust. Wenn du eine Funktion davon brauchst, dann google einfah den Namen, sieh dir die Parameter an und trag sie nach.
Gruß
Edit: Ich hab das mit deiner Docu überlesen, da steht eig auch alles drin
Zuletzt bearbeitet von storky am 06.05.2013, 20:04, insgesamt einmal bearbeitet |
|
Nach oben |
|
|
Make-Grafik
Anmeldungsdatum: 08.10.2012 Beiträge: 29
|
Verfasst am: 06.05.2013, 13:25 Titel: |
|
|
Oh jo,...
Dankeschön
Funktioniert nun einwandfrei!
Nun ja, ClipPut setzt in den Zwischenspeicher einen beliebigen String.
ClipGet holt ihn da wieder raus.
Der Sinn der AutoItX3.dll ist es, Mausklicke sowie Tastenanschläge zu simulieren. Zudem können Informationen aus Fenster (Position, Größe, Titel, Style usw.) Kinderleicht erfragt und auch gesetzt werden.
Es ist zum automatisieren fremder GUIs sehr gut geeignet.
Nur kurz als Information
Okey, danke für die Hilfe _________________ Hmn :/ Mal schaun was es bringt... |
|
Nach oben |
|
|
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1874 Wohnort: D59192
|
Verfasst am: 06.05.2013, 19:48 Titel: |
|
|
Hä?
das funktioniert einwandfrei?
AutoItX3.bi:
...
Declare Function AU3_ClipPut Lib "AutoItX3" Alias "AU3_ClipGet" (sValue As ZString) As Integer _________________ Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater. |
|
Nach oben |
|
|
storky
Anmeldungsdatum: 06.01.2013 Beiträge: 68
|
Verfasst am: 06.05.2013, 20:02 Titel: |
|
|
Ah, nun macht die dll doch Sinn. Vorhins konnte ich nicht erkennen was das werden soll, nun kommt tatsächlich die Zwischenablage wieder raus.
Upsi
Make-Grafik hat das bestimmt selbst gefixt, er hätte aber ruhig bescheid geben können.
Ich änder das mal ab für eventuelle Hilfesuchende. |
|
Nach oben |
|
|
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1874 Wohnort: D59192
|
Verfasst am: 06.05.2013, 20:30 Titel: |
|
|
Hi,
ich meine AU3_ClipGet(BUFFER, BUFFERSIZE) muss auch etwas anders geprogt werden:
Code: | #Include "AutoItX3.bi"
Dim As String test = "freeBASIC"
AU3_Init()
AU3_ClipPut(test)
test =" " ' BUFFER
Dim As Integer leng= Len(test) ' BUFFERSIZE
AU3_ClipGet(test, leng)
Print leng '1 wenn erfolgreich
Print test
Print AU3_error()
Sleep
|
_________________ Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater. |
|
Nach oben |
|
|
Make-Grafik
Anmeldungsdatum: 08.10.2012 Beiträge: 29
|
Verfasst am: 06.05.2013, 22:45 Titel: |
|
|
Zitat: |
Make-Grafik hat das bestimmt selbst gefixt, er hätte aber ruhig bescheid geben können. |
Öhmm
Hätte ich
Aber eigentlich wollte ich erst einmal die ganzen Funktionen in FreeBASIC verfügbar machen. Wollte danach das Ergebnis veröffentlichen weil diese DLL doch schon sehr praktisch ist. Sie enthält eine Fülle von Funktionen die man immer mal wieder brauchen kann.
Nur als kleine Übersicht was die DLL kann. Für alle die es interessiert:
- Zwischenablage setzen / abfragen
- Netzlaufwerke hinzufügen / löschen oder auch Details abfragen
- *.ini File bearbeitung
- Pixelfarbe auf Desktop suchen (Um beispielsweise bestimmte Bilder / Farben zu finden)
- Tastenanschläge simulieren
- ToolTip anzeigen lassen
- Maus und Tastatur sperren / entsperren (Lässt sich über Taskmanager kinderleicht beenden. Also man kann keine Viren damit programmieren)
- CD Laufwerk öffnen oder schließen
- Abfragen ob Adminrechte zur Verfügung stehen
- Mausklicke simulieren (Tastendrücke, Drag and Drop, Mausrad usw...)
- Mausbewegungen durchführen
- Abfragen ob Prozesse existieren
- Prozesse beenden oder Priorität ändern
- Auf Ausführung eines Prozesses warten
- Anwendungen (*.exe, *.bat, *.com, *.pif) starten und nach bedarf auf Ausführung warten
- Registery bearbeitung (lesen, schreiben, löschen)
- Sleep Anweisung (Bestimmte anzahl an Millisekunden das Progamm stoppen)
- Control bearbeitung (anklicken, verschieben, Status ändern usw.)
- Control Informationen beschaffen (größe, position, text [z.b. Bei Buttons], usw...)
- Fenster bearbeitung (verschieben, Status ändern, Fenstertitel setzen usw.)
- Fenster Informationen beschaffen (größe, position, handle, Fenstertitel, Status, usw.)
Wie man hoffentlich erkennen kann, ist die DLL wirklich praktisch um andere GUI's vollständig zu automatisieren. Aus diesen Grund möchte ich alle Funktionen in FreeBASIC verfügbar machen.
LG. Make _________________ Hmn :/ Mal schaun was es bringt... |
|
Nach oben |
|
|
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1874 Wohnort: D59192
|
|
Nach oben |
|
|
ichhalt
Anmeldungsdatum: 26.01.2013 Beiträge: 39
|
Verfasst am: 12.05.2013, 12:27 Titel: |
|
|
Autoit wird ja oft fuer metin 2 hacks benutzt |
|
Nach oben |
|
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|