Hallo,
ich wollte euch um hilfe beten, da ich ein totaler Anfänger bin. Ich möchte einfach nur ein programm schreiben mit dem ich aus einem Edit feld und mehreren Inputfeldern ein Beitrag posten kann.
Nun bitte ich euch um euere hilfe
Hallo,
ich wollte euch um hilfe beten, da ich ein totaler Anfänger bin. Ich möchte einfach nur ein programm schreiben mit dem ich aus einem Edit feld und mehreren Inputfeldern ein Beitrag posten kann.
Nun bitte ich euch um euere hilfe
Wenn ich mich grade nicht vertue, einfach alles in inputfelder (also mit GUICtrlCreateInput) einfügen, da kannst du ja so viel nehmen wie du möchtest. das dann per GUICtrlRead auslesen und dann in die EditBox eintragen. In meiner Pause kann ich kurz ein Beispiel schreiben, also so gegen neun Uhr. Ansonsten hier mal das was du alle brauchst:
http://www.autoit.de/dokumentation_aktuell/functions/GUICtrlCreateEdit.htm
http://www.autoit.de/dokumentation_…CreateInput.htm
http://www.autoit.de/dokumentation_…GUICtrlRead.htm
was hat das ganze mit Wordpress API zutun?
Um ehrlich zu sein, ich weiß nichtmal was eine API ist... Hab ja eigentlich sehr wenig mit PC's zu tun gehabt, außer zocken. Erst seit ich mit AutoIt zu tun habe jetzt mehr, aber halt auch noch nicht sooo viel. Aber bei der Fragenstellung wollte ich auch mal wenigsten versuchen zu helfen
Application-Programming-Interface (API)
Was ist eine API?
ZitatDie API ist eine Schnittstelle, die ein Softwaresystem bereitstellt, um dieses in andere Programme einzubinden.
Quelle: http://www.gruenderszene.de/lexikon/begrif…g-interface-api
Ok, danke mit der erklärung ich blick da grade noch nicht so durch, werd es mit aber mal anschauen wenn ich wacher bin, dann versteh ich es wahrscheinlich
//Edit: Ok, nochmal durchgelesen, ich denke ich habs jetzt doch verstanden!
Sooo, hab jetzt mal was vorbereitet mit ein paar Beispielen, hoffe es hilft dir
#include <GUIConstants.au3>
#include <EditConstants.au3>
$GUI = GUICreate ( "", 500, 500) ; erstellt dein Fenster
$In1 = GUICtrlCreateInput ("Überschrift", 5, 5, 220, 25) ; erstellt ein Input-Feld
$In2 = GUICtrlCreateInput ("Text1.", 227.5, 5, 220, 25)
$In3 = GUICtrlCreateInput ("Blub, hallo, Test, Text2:/\?12345!§$%", 5, 30, 220, 25)
$In4 = GUICtrlCreateInput ("Ohne Read", 227.5, 30, 220, 25) ; wird später nicht per "GUICtrlRead" übersetzt, um zu zeigen was passiert.
$Edit = GUICtrlCreateEdit ("Hier kommt der Test hin!", 5, 60, 490, 435, $ES_READONLY) ; erstellt ein Edit-Feld
$Send = GUICtrlCreateButton ( "Send", 450, 5, 50, 50) ; erstellt einen Knopf
GUISetState ()
; Eine While-Schleife die deine GUI abfragt
While 1
$msg = GUIGetMsg () ; "liest" was die GUI tut
Switch $msg ; Empfange $msg:
Case $Send ; wenn der Knopf ($Send) gedrückt wird, dann
_Edit () ; wird die Funktion "_Edit ()" aufgerufen
Case $GUI_EVENT_CLOSE ; wenn du auf schließen klickst
Exit ; beende das Script
EndSwitch ; beende die "Switch"-Auswahl
WEnd ; beende die While-schleife
Func _Edit () ; die Funktion die aufgerufen wurde
$1 = GUICtrlRead ( $In1 ) ; liest dein Input-Feld (wird benötigt, ansonsten würde nichts sinnvolles rauskommen (siehe $In4))
$2 = GUICtrlRead ( $In2 )
$3 = GUICtrlRead ( $In3 )
GUICtrlDelete ( $Edit ) ; löscht das Editfeld um es
$Edit = GUICtrlCreateEdit ($1 & @CRLF & $2 & " Hier kann dann auch noch etwas eingefügt werden, das jedes mal gesendet wird! " & $3 & @CRLF & @CRLF & "$In4-Ausgabe: " & $In4, 5, 60, 490, 435, $ES_READONLY); hier wieder zu erstellen, mit neuem Inhalt (aus den Inputfeldern)
EndFunc ; beendet die Funktion und ruft wieder die While-Schleife auf (einmalige Funktion)
//Edit: hab jetzt noch das #include <EditConstants.au3> und das $ES_READONLY dran gehängt, damit man die EditBox nicht von Hand ändern kann, sondern nur durch den send-Button.
Er möchte keinen Text aus Inputfeldern zusammensetzen und in eine Editbox eintragen, sondern aus einem eigenen Program heraus einen Beitrag in einen Wordpress Blog erstellen.
Aufgabe 1 wäre demnach - Finde die passende API und dessen Dokumentation. Dafür benötigt man noch keine Programmierkenntnise ... also durchaus auch von einem Anfänger zu lösen.
Ich möchte einfach nur ein programm schreiben mit dem ich aus einem Edit feld und mehreren Inputfeldern ein Beitrag posten kann.
Also so wie ich das verstehe, möchte er den Text schon aus mehreren Inputfeldern zusammenfügen. was er mit dem Editfeld wollte habe ich nicht verstanden und es so aufgefasst das er es da zusammenfügen will um es dann kopieren zu können.
Er möchte [...] aus einem eigenen Program heraus einen Beitrag in einen Wordpress Blog erstellen.
Aufgabe 1 wäre demnach - Finde die passende API und dessen Dokumentation. Dafür benötigt man noch keine Programmierkenntnise ... also durchaus auch von einem Anfänger zu lösen.
So hab ich das auch verstanden
Aber dann wäre mein Programm ja eigentlich garnicht so falsch oder? weil er muss es ja trotzdem irgendwo eintragen
insofern müsste er es jetzt quasi nur noch schaffen einen zweiten Button einzufügen der dann den Inhalt aus der EditBox an den Blog sendet oder? Bzw den einen Button so verändern das es das Direkt macht.
Das klingt bei dir so einfach, ist aber eigentlich der kompliziertere Teil der Aufgabe
Ein Freund hat mir schon bischen geholfen und nun brauche ich hilfe bei der authenfizierung. ich habe kein plan wie ich das machen soll
[autoit]#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <IE.au3>
#include <Array.au3>
Global $oWinHTTP = ObjCreate("winhttp.winhttprequest.5.1")
Func EasyPost($sAddr, $sPost)
$oWinHTTP.Open("POST", $sAddr, False)
$oWinHTTP.SetRequestHeader("User-Agent", "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 4.0.20506)")
$oWinHTTP.SetRequestHeader("Content-Type", "application/x-www-form-urlencoded")
$oWinHTTP.Send($sPost)
Return $oWinHTTP.ResponseText
EndFunc ;==>EasyPost
Func EasyGet($sAddr, $sPost)
$oWinHTTP.Open("GET", $sAddr, False)
$oWinHTTP.SetRequestHeader("User-Agent", "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 4.0.20506)")
$oWinHTTP.SetRequestHeader("Content-Type", "application/x-www-form-urlencoded")
$oWinHTTP.Send("")
Return $oWinHTTP.ResponseText
EndFunc ;==>EasyPost
Func _URLEncode($toEncode, $encodeType = 0)
Local $strHex = "", $iDec
Local $aryChar = StringSplit($toEncode, "")
If $encodeType = 1 Then;;Encode EVERYTHING
For $i = 1 To $aryChar[0]
$strHex = $strHex & "%" & Hex(Asc($aryChar[$i]), 2)
Next
Return $strHex
ElseIf $encodeType = 0 Then;;Practical Encoding
For $i = 1 To $aryChar[0]
$iDec = Asc($aryChar[$i])
If $iDec <= 32 Or $iDec = 37 Then
$strHex = $strHex & "%" & Hex($iDec, 2)
Else
$strHex = $strHex & $aryChar[$i]
EndIf
Next
Return $strHex
ElseIf $encodeType = 2 Then;;RFC 1738 Encoding
For $i = 1 To $aryChar[0]
If Not StringInStr("$-_.+!*'(),;/?:@=&abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890", $aryChar[$i]) Then
$strHex = $strHex & "%" & Hex(Asc($aryChar[$i]), 2)
Else
$strHex = $strHex & $aryChar[$i]
EndIf
Next
Return $strHex
EndIf
EndFunc ;==>_URLEncode
Func _JSON_Decode($sString)
Local $iIndex, $aVal, $sOldStr = $sString, $b
$sString = StringStripCR(StringStripWS($sString, 7))
If Not StringRegExp($sString, "(?i)^\{.+}$") Then Return SetError(1, 0, 0)
Local $aArray[1][2], $iIndex = 0
$sString = StringMid($sString, 2)
Do
$b = False
$aVal = StringRegExp($sString, '^"([^"]+)"\s*:\s*(["{[]|[-+]?\d+(?:(?:\.\d+)?[eE][+-]\d+)?|true|false|null)', 2) ; Get value & next token
If @error Then
ConsoleWrite("!> StringRegExp Error getting next Value." & @CRLF)
ConsoleWrite($sString & @CRLF)
$sString = StringMid($sString, 2) ; maybe it works when the string is trimmed by 1 char from the left ?
ContinueLoop
EndIf
$aArray[$iIndex][0] = $aVal[1] ; Key
$sString = StringMid($sString, StringLen($aVal[0]))
Switch $aVal[2] ; Value Type (Array, Object, String) ?
Case '"' ; String
; Value -> Array subscript. Trim String after that.
$aArray[$iIndex][1] = StringMid($sString, 2, StringInStr($sString, """", 1, 2) - 2)
$sString = StringMid($sString, StringLen($aArray[$iIndex][1]) + 3)
ReDim $aArray[$iIndex + 2][2]
$iIndex += 1
Case '{' ; Object
; Recursive function call which will decode the object and return it.
; Object -> Array subscript. Trim String after that.
$aArray[$iIndex][1] = _JSON_Decode($sString)
$sString = StringMid($sString, @extended + 2)
If StringLeft($sString, 1) = "," Then $sString = StringMid($sString, 2)
$b = True
ReDim $aArray[$iIndex + 2][2]
$iIndex += 1
Case '[' ; Array
; Decode Array
$sString = StringMid($sString, 2)
Local $aRet[1], $iArIndex = 0 ; create new array which will contain the Json-Array.
Do
$sString = StringStripWS($sString, 3) ; Trim Leading & trailing spaces
$aNextArrayVal = StringRegExp($sString, '^\s*(["{[]|\d+(?:(?:\.\d+)?[eE]\+\d+)?|true|false|null)', 2)
Switch $aNextArrayVal[1]
Case '"' ; String
; Value -> Array subscript. Trim String after that.
$aRet[$iArIndex] = StringMid($sString, 2, StringInStr($sString, """", 1, 2) - 2)
$sString = StringMid($sString, StringLen($aRet[$iArIndex]) + 3)
Case "{" ; Object
; Recursive function call which will decode the object and return it.
; Object -> Array subscript. Trim String after that.
$aRet[$iArIndex] = _JSON_Decode($sString)
$sString = StringMid($sString, @extended + 2)
Case "["
MsgBox(0, "", "Array in Array. WTF is up with this JSON shit?")
MsgBox(0, "", "This should not happen! Please post this!")
Exit 0xDEADBEEF
Case Else
ConsoleWrite("Array Else (maybe buggy?)" & @CRLF)
$aRet[$iArIndex] = $aNextArrayVal[1]
EndSwitch
ReDim $aRet[$iArIndex + 2]
$iArIndex += 1
$sString = StringStripWS($sString, 3) ; Leading & trailing
If StringLeft($sString, 1) = "]" Then ExitLoop
$sString = StringMid($sString, 2)
Until False
$sString = StringMid($sString, 2)
ReDim $aRet[$iArIndex]
$aArray[$iIndex][1] = $aRet
ReDim $aArray[$iIndex + 2][2]
$iIndex += 1
Case Else ; Number, bool
; Value (number (int/flaot), boolean, null) -> Array subscript. Trim String after that.
$aArray[$iIndex][1] = $aVal[2]
ReDim $aArray[$iIndex + 2][2]
$iIndex += 1
$sString = StringMid($sString, StringLen($aArray[$iIndex][1]) + 2)
EndSwitch
If StringLeft($sString, 1) = "}" Then
StringMid($sString, 2)
ExitLoop
EndIf
If Not $b Then $sString = StringMid($sString, 2)
Until False
ReDim $aArray[$iIndex][2]
Return SetError(0, StringLen($sOldStr) - StringLen($sString), $aArray)
EndFunc ;==>_JSON_Decode
$apiUrl = "http://***********************/"
$nonce = EasyPost($apiUrl, "json=core.get_nonce&controller=core&method=get_nonce")
$nonce1 = StringReplace($nonce, '{"status":"ok","controller":"core","method":"get_nonce","nonce":"', "")
$nonce2 = StringReplace($nonce1, '"}', "")
$post = EasyPost($apiUrl, "json=posts.create_post&controller=posts&method=create_post&nonce=" & $nonce2 & "&status=publish&title=test123")
[/autoit][autoit][/autoit][autoit]ConsoleWrite($post)
[/autoit][autoit][/autoit][autoit]Exit
[/autoit]Benutzt wird das Plugin: http://wordpress.org/plugins/json-api/other_notes/
Hm, schade, da kann ich dann leider nicht weiter helfen
Ich denke diese Webseite wird dein Problem auf magische Weise lösen...
Edit BugFix: Forenregeln beachten!
Edit Christoph: Jawoll