Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

[ gelöst ] AutoItX3.dll --- Methoden / Objekte in FreeBAS...

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Make-Grafik



Anmeldungsdatum: 08.10.2012
Beiträge: 29

BeitragVerfasst am: 06.05.2013, 04:52    Titel: [ gelöst ] AutoItX3.dll --- Methoden / Objekte in FreeBAS... Antworten mit Zitat

Hallo Community! lächeln

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 lächeln

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... happy

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 Zunge rausstrecken)



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. Zunge rausstrecken

LG. Make lächeln
_________________
Hmn :/ Mal schaun was es bringt...


Zuletzt bearbeitet von Make-Grafik am 06.05.2013, 13:29, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
storky



Anmeldungsdatum: 06.01.2013
Beiträge: 68

BeitragVerfasst am: 06.05.2013, 05:46    Titel: Antworten mit Zitat

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ß lächeln

Edit: Ich hab das mit deiner Docu überlesen, da steht eig auch alles drin lächeln


Zuletzt bearbeitet von storky am 06.05.2013, 20:04, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Make-Grafik



Anmeldungsdatum: 08.10.2012
Beiträge: 29

BeitragVerfasst am: 06.05.2013, 13:25    Titel: Antworten mit Zitat

Oh jo,...
Dankeschön lächeln

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 lächeln

Okey, danke für die Hilfe grinsen
_________________
Hmn :/ Mal schaun was es bringt...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1874
Wohnort: D59192

BeitragVerfasst am: 06.05.2013, 19:48    Titel: Antworten mit Zitat

Hä?
das funktioniert einwandfrei?

AutoItX3.bi:
...
Declare Function AU3_ClipPut Lib "AutoItX3" Alias "AU3_ClipGet" (sValue As ZString) As Integer lachen
_________________
Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
storky



Anmeldungsdatum: 06.01.2013
Beiträge: 68

BeitragVerfasst am: 06.05.2013, 20:02    Titel: Antworten mit Zitat

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 grinsen

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
Benutzer-Profile anzeigen Private Nachricht senden
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1874
Wohnort: D59192

BeitragVerfasst am: 06.05.2013, 20:30    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Make-Grafik



Anmeldungsdatum: 08.10.2012
Beiträge: 29

BeitragVerfasst am: 06.05.2013, 22:45    Titel: Antworten mit Zitat

Zitat:

Make-Grafik hat das bestimmt selbst gefixt, er hätte aber ruhig bescheid geben können.


Öhmm grinsen
Hätte ich happy

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 lächeln
_________________
Hmn :/ Mal schaun was es bringt...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1874
Wohnort: D59192

BeitragVerfasst am: 07.05.2013, 09:10    Titel: Antworten mit Zitat

Zitat:
Aber eigentlich wollte ich erst einmal die ganzen Funktionen in FreeBASIC verfügbar machen.

So ganz will mir die Idee nicht einleuchten!
Ok, die Lib ist eine schöne Sammlung von WinApi-Funktionen.
Aber warum soll ich WinApi-Funktionen aus einer Lib von AutoIt in C++ geschrieben mühsam in FreeBASIC nutzbar machen?
Die kann ich bei Bedarf einfacher über die windows.bi in FreeBASIC nutzen.

Beispiele:
http://www.freebasic-portal.de/code-beispiele/system/zwischenablage-lesen-schreiben-35.html
http://www.freebasic-portal.de/code-beispiele/system/zwischenablage-lesen-schreiben-2-bilder-228.html
_________________
Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
ichhalt



Anmeldungsdatum: 26.01.2013
Beiträge: 39

BeitragVerfasst am: 12.05.2013, 12:27    Titel: Antworten mit Zitat

Autoit wird ja oft fuer metin 2 hacks benutzt
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
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.

 Impressum :: Datenschutz