Adressdaten von Ebay nach Wawi

  • Hallo All
    bin gerade dabei die Übungen zu Probieren um mich mal einzuarbeiten.

    Eigentlich möchte ich folgendes
    Kundendaten halbautomatisch von Ebay in meine Warenwirtschaft kopieren, mit Vergleich ob der Kunde schon angelegt ist.
    Später soll eine Rückmeldung an Ebay erfolgen wenn das Paket abgeschickt wurde.
    Eber erstmal habe ich Schwierigkeiten mit einem login in einen Shop:

    Spoiler anzeigen


    #include <FF.au3> ; Muss immer da sein


    ;FFStart("http://www.shopseite/") habe ich erstmal auskommentiert
    _FFStart("http://www.shopseite.de/Typo3Shop/ShopLogin.html") ; und nur den Frame aufgerufen

    If _FFIsConnected() Then ; Wenn die Verbindung zum FF hergestellt werden konnte, dann...

    _FFSetValue("ICH", "FORM_LOGIN", "name") ; Setzt in das Element mit dem Namen "" den Benutzernamen ein
    _FFSetValue("meinpswd", "FORM_PASSWD", "name") ; Setzt in das Element mit dem Namen "" den Benutzernamen ein
    sleep (3000)
    ; MouseClick("left", 90,240) ;funktioniert
    ;FFFormSubmit($socket,0,"index") funktioniert gar nicht
    FFClick("Anmelden" , "ID")
    ;FFFormSubmit()

    sleep (3000)
    ;_FFWindowClose() ; Schließt das Fenster wieder

    Else ; Sonst... (Fehlermeldung!)
    MsgBox(64, "Ein Fehler ist aufgetreten", "Eine Verbindung mit dem Mozilla FireFox war nicht möglich!")
    EndIf


    _FFFormSubmit() ergibt :THErequested URL /DummyEntry.htm was not found on this server.

    _FFClick("Anmelden" , "ID") ergibt error uncown function Name

    der Button wird hier Beschrieben:

    Spoiler anzeigen


    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html lang="de"><head>
    <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
    <meta http-equiv='cache-control' content='no-cache'>

    <script src="shoplogin.js" type="text/javascript"></script><title>Shop-Login</title>

    <style type="text/css">
    body { background-color: rgb(230, 238, 246); }
    table {border-color:#111111; }
    th { color:#000099; }
    td { color:#990000; }
    * { font:Verdana,Arial,Helvetica,Sans serif; }
    </style>
    <meta content="Sal@BksNbg.com" name="author">
    <meta content="Inframe Login-Seite" name="description">
    </head>
    <body style="color: rgb(0, 0, 0); background-color: rgb(238, 238, 238) ; " width="100" alink="#000099" link="#000099" vlink="#990099">
    <form action="../DummyEntry.htm" target="_parent" onsubmit="return jsLogin();" method="post" name="LOGIN">
    <input id="FORM_LINK" value="/Shop" name="MyLink" type="hidden"><big>

    </big>
    <table style="padding-top: 5px; padding-bottom: 5px; background-color: rgb(221, 221, 221); width: 160px;" border="0" cellpadding="0" cellspacing="2">
    <tbody>
    <tr>
    <th style="text-align: left;"> <font size="3"><b><span style="color: rgb(204, 0, 0);">Online-Shop</span></b></font>
    <p style="margin: 6px 0pt 9px; font-weight: normal;"><font color="black" size="2">Zugang
    &nbsp;nur für&nbsp; registrierte Kunden !</font></p>
    </th>
    </tr>
    <tr style="font-weight: bold;">
    <td><font face="Arial" size="1"><span style="color: rgb(51, 102, 153);">Login</span>:</font></td>

    </tr>
    <tr>
    <td><font face="Arial"><input style="width: 100%;" name="FORM_LOGIN" id="user"></font></td>
    </tr>
    <tr>
    <td><b><font face="Arial" size="1"><span style="color: rgb(51, 102, 153);">Passwort</span>:</font></b></td>
    </tr>
    <tr>
    <td><font face="Arial"> <input style="width: 100%;" name="FORM_PASSWD" id="pass" type="password"></font></td>
    </tr>
    <tr>
    <td style="text-align: center;"><button type="submit" name="FORM_CMD"><font face="Arial">Anmelden</font></button></td>
    </tr>

    <tr style="color: rgb(51, 102, 153);">
    <td title="Werkzeugleiste, Adresszeile, etc. werden ausgeblendet">
    <input onclick="// alert('Leider nur Vollbild-Modus möglich'); return false;" name="FORM_FullScreen" alt="FullScreen" type="checkbox"><small style="color: rgb(51, 102, 153);"><small>Ganzer
    Bildschirm</small></small> </td>
    </tr>
    <tr>
    <td title="Die Daten werden verschlüsselt übertragen">
    <input // onclick="// alert('Leider nur im abgesicherten Modus vorgesehen.'); return false;" name="FORM_SslMode" alt="SslMode" type="checkbox"><small style="color: rgb(51, 102, 153);"><small>Gesichert</small></small><br>
    </td>
    </tr>
    </tbody>
    </table>
    <input style="visibility: hidden;" name="FORM_REFERER">
    </form>
    </body></html>


    Die Beschreibung der Befehle auf de Willert-Seite haben mir noch nicht geholfen und
    jetzt habe ich schon einiges Probiert und Sripte durchgelesen, stehe aber auf dem Schlauch
    was übersehe ich, oder wo muß ich genauer hinsehen?

    viele Grüße
    jörg

  • Eigentlich möchte ich folgendes
    Kundendaten halbautomatisch von Ebay in meine Warenwirtschaft kopieren, mit Vergleich ob der Kunde schon angelegt ist.
    Später soll eine Rückmeldung an Ebay erfolgen wenn das Paket abgeschickt wurde.

    Schau dir da doch am besten die zahlreichen von ebay bereitgestellten API's an.

    http://developer.ebay.com/quickstartguide/

    Damit wirst du sehr viel schneller und zuverlässiger Daten von der Webseite erhalten können.

    Einmal editiert, zuletzt von misterspeed (10. August 2011 um 15:16)

  • hallo misterspeed,
    danke für den Tipp, ist aber nicht das was ich suche.
    Möchte da etwas unabhängiger sein
    für mich reicht es erstmal schon wenn ich es hinbekomme die Adressdaten mit einem Tastenkürzel zu kopieren und in die entsprechenden Felder der Wawi eintragen kann.
    Die angebotenen Schnittstellen sind mir da zu umfangreich.
    viele Grüße
    jörg

  • Hallo All
    nach ein paar Stunden suchen probieren üben sieht es jetzt so aus:

    Spoiler anzeigen


    #include <GUIConstantsEx.au3> ;funktionen werden eingebunden
    #include <GuiButton.au3>
    #include <WindowsConstants.au3>
    #include <ButtonConstants.au3>

    ;----------------------------------------
    ;Variablen
    Dim $Absender
    Dim $Mitgliedsname
    Dim $VORNAME
    Dim $NACHNAME
    Dim $STRASSE ;mit Hausnummer
    Dim $PLZ
    Dim $ORT

    Dim $FELD1 ; Ebaymitgliedsname
    Dim $FELD2 ;$VORNAME
    Dim $FELD3 ; Nachname
    Dim $FELD4 ; Str SR
    Dim $FELD5 ; plz
    Dim $FELD6 ; ort
    Dim $FELD7 ;

    Dim $BTN_WAWI
    Dim $BTN_EXIT
    DIM $BTN_DRUCK

    $Absender = "Paul Test, Gartenstraße 1, 67234 Murksdorf"


    GUIcreate("Adresskopierer", 800, 300)
    GUIsetstate(@sw_show)
    ;GUICtrlCreateInput ( "text", left, top [, width [, height [, style [, exStyle]]]] )
    ;$NAME = GUICtrlCreateInput ( "text", left, top ,25 ,1 )
    $Mitgliedsname = GUICtrlCreateInput("EBAYNAME", 10, 5, 300, 20)
    $FELD2 = GUICtrlCreateInput("Vorname", 10, 35, 300, 20)
    $FELD3 = GUICtrlCreateInput("Nachname", 10, 65, 300, 20)
    $FELD4 = GUICtrlCreateInput("Straße mit HSNR", 10, 95, 300, 20)
    $FELD5 = GUICtrlCreateInput("Postleitzahl", 10, 125, 300, 20)
    $FELD6 = GUICtrlCreateInput("ORT", 10, 155, 300, 20)
    $BTN_WAWI = GUICtrlCreateButton("WAWI", 10, 200, 90, 50)
    $BTN_DRUCK = GUICtrlCreateButton("ADRESSDRUCK", 115, 200, 90, 50)
    $BTN_EXIT = GUICtrlCreateButton("EXIT", 220, 200, 90, 50)

    GUISetState(@SW_SHOW)
    While 1
    $msg = GUIGetMsg()
    Switch $msg
    Case $GUI_EVENT_CLOSE
    MsgBox (0,"X da","close")
    ExitLoop
    Case $BTN_EXIT
    MsgBox (0,"X-Button","close")
    ExitLoop
    Case $BTN_DRUCK
    MsgBox (0,"DRUCKEN","close")
    Example1()
    Case $BTN_WAWI
    MsgBox (0,"WAWI","close")
    ExitLoop


    EndSwitch
    WEnd

    Func Example1()
    Run(@WindowsDir & "\Notepad.exe", "", @SW_MAXIMIZE)
    WinActivate("[CLASS:Notepad]", "")

    ;If WinActive("[CLASS:Notepad]") Then
    ;MsgBox(0, "", "Das Fenster ist aktiv")
    ;EndIf
    ;Send{ENTER}
    Send ("{ENTER}")
    Send ("ABS:" ,1 )
    Send ("{SPACE}")
    Send ($Absender)
    Send ("{ENTER}")
    $VORNAME = GUICtrlRead($FELD2)
    Send ($VORNAME)
    Send ("{SPACE}")
    $NACHNAME = GUICtrlRead ($FELD3)
    Send ($NACHNAME)
    Send ("{ENTER}")
    $STRASSE = GUICtrlRead ($FELD4)
    Send ($STRASSE)
    Send ("{ENTER}")
    $PLZ = GUICtrlRead($FELD5)
    Send ($PLZ)
    Send ("{SPACE}")
    $ORT = GUICtrlRead($FELD6)
    Send ($ORT)
    Send ("{ENTER}")


    EndFunc

    also kann ich schon mal Buttons abfragen und ein bisschen mit der GUI spielen.
    Wenn Euch noch einige MSGBoxen unsinnig erscheinen die werden wegfallen, helfen mir aber ein wenig das Programm zu verfolgen.
    Was ich nicht gefunden habe ist eine Funktion die mir die Beschreibungstexte vor die Eingabefelder setzt
    Beispiel

    Vorname: (hier kommt das Feld vorname)
    Nachname (hier kommt das feld nachname)

    wer kann mir da helfen?
    und achja das LOGINPROBLEM habe ich noch nicht gelöst
    viele Grüße
    Jörg

  • Hey,

    was meinst du mit Beschreibungsfelder genau? Meinst du etwas, wo du Vorname und Nachname reinschreiben kannst?
    Wenn ja, dann schau dir mal;

    GUICtrlCreateLabel ( "text", left, top [, width [, height [, style [, exStyle]]]] )

    in der Dokumentation an. Das sollte helfen ;)

    Lg
    Maui

  • Hallo Maui
    ja so etwas, hat mir weitergeholfen:

    Spoiler anzeigen

    ;Erstes Autoitscript Start war 10.08.2011
    ;user joerg8051 aus dem Autoit Forum
    ;bis jetzt sind noch viele Positionen und Funktionen offen
    ;MsgBox(4096, "Test", "This box will time out in 10 seconds", 10)
    ;$GesamterText = StringReplace($GesamterText, @CR, @CRLF)

    #include <GUIConstantsEx.au3> ;funktionen werden eingebunden
    #include <GuiButton.au3>
    #include <WindowsConstants.au3>
    #include <ButtonConstants.au3>
    #include <Misc.au3>
    #include <StaticConstants.au3>
    #include <Guiedit.au3>
    #include<Array.au3>
    #include <File.au3>
    #include <GuiRichEdit.au3>


    ;----------------------------------------
    ;Variablen
    ; Datenvariablen
    ;einige Variablen sind noch direkt aus Beispielen die müssen noch gelöscht oder geändert werden
    Dim $PRG
    Dim $Absender
    Dim $Mitgliedsname = "EBAYNAME"
    Dim $VORNAME = "Vorname"
    Dim $NACHNAME
    Dim $STRASSE ;mit Hausnummer
    Dim $PLZ
    Dim $ORT

    ;Steuervariablen
    Dim $FELD1 ; Ebaymitgliedsname
    Dim $FELD2 ;$VORNAME
    Dim $FELD3 ; Nachname
    Dim $FELD4 ; Str SR
    Dim $FELD5 ; plz
    Dim $FELD6 ; ort
    Dim $WAS ; bestimmt was geändert werden soll in den Daten
    Dim $dll = DllOpen("user32.dll")
    DIM $COUNTER1
    DIM $COUNTER2
    DIM $COUNTER3
    DIM $COUNTER4
    DIM $COUNTER5
    DIM $COUNTER6
    DIM $COUNTER7
    DIM $XOFF=250
    Dim $ADR1=1 ; wenn noch keine Adresse eingegeben wurde
    DIM $ADR2=0
    ;Buttonvariablen
    Dim $BTN_WAWI
    Dim $BTN_EXIT
    DIM $BTN_DRUCK
    DIM $BTN_TAB
    Dim $BUTTON8 ;GUICtrlCreateButton("JA EXIT", 30, 50, 170, 30)
    Dim $BUTTON9 ;GUICtrlCreateButton("NEIN WEITER", 30, 100 , 170, 30)
    DIM $GUI2 ;GUIcreate("PROGRAMMENDE", 230, 140)

    $NEU_GUI = 1
    $ENDE_GUI=1
    $EBAY_GUI=1
    $BUTTON7 = 1
    $BUTTON8 = 1
    $BUTTON9 = 1
    $BUTTON10 =1
    $BUTTON11 =1
    $BTN_TAB = 1
    $BUTTON_OK = 1
    $Edit_Ebay=0
    $notice = 12
    $deinInput = 42
    $ADR1= 0
    Local $arTest[15]

    ; Func Variablen
    DIM $Hauptprogramm
    DIM $Input
    DIM $Aendern
    Dim $TESTVARIABLE1

    ;Grundwerte
    $PRG = "Adresskopierer"
    $Absender = "Paul Test, Gartenstraße 1, 67234 Murksdorf"
    DIM $N = 1
    DIM $N = 0
    $Status = 0
    Global $hGUI
    Global $hGUI2
    Global $hGUI3

    Global $Label1, $Label2, $Label3
    Global $Group1


    ;___________________________________________________________________________
    ; ab hier basteln wir die GUI
    ;15.08 GUI muß noch angepaßt werden
    $HAUPTGUI = GUIcreate("Adresskopierer", 800, 300)
    GUIsetstate(@sw_show)

    $FELD1 = GUICtrlCreateInput("NEU", 115, 5, 300, 20)
    $FELD2 = GUICtrlCreateInput("oder", 115, 35, 300, 20)
    $FELD3 = GUICtrlCreateInput("EBAY ", 115, 65, 300, 20)
    $FELD4 = GUICtrlCreateInput("Drücken", 115, 95, 300, 20)
    $FELD5 = GUICtrlCreateInput("oder", 115, 125, 300, 20)
    $FELD6 = GUICtrlCreateInput("Warten", 115, 155, 300, 20)
    $BUTTON1 = GUICtrlCreateButton("EBAYNAME", 10, 5, 90, 20)
    GUICtrlSetState($BUTTON1 , $GUI_DISABLE)
    $BUTTON2 = GUICtrlCreateButton("Vorname", 10, 35, 90, 20)
    GUICtrlSetState($BUTTON2 , $GUI_DISABLE)
    $BUTTON3 = GUICtrlCreateButton("Nachname", 10, 65, 90, 20)
    GUICtrlSetState($BUTTON3 , $GUI_DISABLE)
    $BUTTON4 = GUICtrlCreateButton("Straße HSNR", 10, 95, 90, 20)
    GUICtrlSetState($BUTTON4 , $GUI_DISABLE)
    $BUTTON5 = GUICtrlCreateButton("PLZ", 10, 125, 90, 20)
    GUICtrlSetState($BUTTON5 , $GUI_DISABLE)
    $BUTTON6 = GUICtrlCreateButton("ORT", 10, 155, 90, 20)
    GUICtrlSetState($BUTTON6 , $GUI_DISABLE)


    GUICtrlCreateLabel("VON EBAY", 10, 225, 90, 20)
    $BTN_EBAY = GUICtrlCreateButton("EBAY", 10, 250, 90, 50)

    GUICtrlCreateLabel("ZUR WAWI", 115, 225, 90, 20)
    $BTN_WAWI = GUICtrlCreateButton("WAWI", 115, 250, 90, 50)
    GUICtrlSetState($BTN_WAWI , $GUI_DISABLE) ;jetzt noch nicht

    GUICtrlCreateLabel("druckt sofort!", 220, 225, 90, 20)
    $BTN_DRUCK = GUICtrlCreateButton("ADRESSDRUCK", 220, 250, 90, 50)
    ;GUICtrlSetState($BTN_DRUCK , $GUI_DISABLE)

    GUICtrlCreateLabel("neue Adresse", 325, 225, 90, 20)
    $BTN_Weiter = GUICtrlCreateButton("NEU", 325, 250, 90, 50)
    ;GUICtrlSetState($BTN_Weiter , $GUI_DISABLE)

    GUICtrlCreateLabel("Programmende", 440, 225, 90, 20)
    $BTN_EXIT = GUICtrlCreateButton("EXIT", 440, 250, 90, 50)
    ;GUICtrlSetState($BTN_EXIT , $GUI_DISABLE)

    ;beim ersten Start entscheiden wir wie die Adresse eingegeben wird
    If $ADR1= 0 Then Weiter()
    ;........................


    While (True)

    $aMsg = GUIGetMsg (True)

    Switch $aMsg[0]

    Case $GUI_EVENT_CLOSE
    switch $aMsg[1]
    case $BUTTON8
    exitloop
    case $NEU_GUI
    GUIDelete ($NEU_GUI)
    case $ENDE_GUI
    GUIDelete ($ENDE_GUI)
    Case $EBAY_GUI
    GUIDelete ($EBAY_GUI)

    EndSwitch
    Case $BTN_EBAY
    EBAY_1()


    Case $BTN_DRUCK
    PRINT()

    Case $BTN_WAWI
    AboutDlg ( )
    Case $BTN_EXIT
    PRGEND ( )

    Case $BUTTON7 ;NEUGUI $BUTTON7 = GUICtrlCreateButton("NEU IMPORT"
    GUIDelete ($NEU_GUI)
    FORM_FILL()

    Case $BUTTON8 ;ende GUI er beendet das Programm
    Exit

    Case $BUTTON9 ;weiter im Programm beendet nur die gui
    GUIDelete ($ENDE_GUI)
    Case $BTN_Weiter ;hauptgui NeueAdresse
    Weiter()

    Case $BUTTON10 ; NEU GUI Titel $BUTTON10 = GUICtrlCreateButton("NEU HAND")
    GUIDelete ($NEU_GUI)
    FORM_FILL()
    Eingabe()

    Case $BUTTON11
    GUIDelete ($NEU_GUI)
    ;Case $BUTTON_OK
    ; GUIDelete ($EBAY_GUI)
    ; Insert_Ebay()

    EndSwitch


    WEnd

    Exit (0)

    ;...........................................


    Func PRINT()
    ;nur der erste test
    ;GuictrlsetFont() ?

    $file = FileOpen("drucken.txt", 1)

    ; Prüfen, ob Datei im Schreibmodus geöffnet ist
    If $file = -1 Then
    MsgBox(0, "Fehler", "Die Datei konnte nicht geöffnet werden.")
    Exit
    EndIf

    FileWrite($file, "ABS:")
    FileWrite($file, $Absender & @CRLF)
    FileWrite($file, $VORNAME)
    FileWrite($file, $NACHNAME & @CRLF)
    FileWrite($file, $STRASSE & @CRLF)
    FileWrite($file, $PLZ)
    FileWrite($file, $ORT & @CRLF)

    FileClose($file)

    $datei = FileOpen($file) ;, @ScriptDir, *.txt)
    $print = _FilePrint($datei)

    ;FileClose($file)
    ;FileOpen ( "filename" [, mode ] )

    $PDST = "DHL"
    $PDSTNR= "00000000000"
    ;___________________________________________________________

    ;......hier beginnt ein komplett übernommen funktion aus dem Forum
    ;....so soll es sein jeder hilft wo er kann

    Global $sZeile[6] = [$Absender, $VORNAME, $NACHNAME, $STRASSE,$PLZ, $ORT ]

    ;ConsoleWrite(Main() & @CRLF)

    ;Func Main()
    Local $hGui, $hRichEdit, $iMsg, $sPrint
    $hGui = GUICreate("Richedit", 320, 240)
    $hRichEdit = _GUICtrlRichEdit_Create($hGui, "", 10, 10, 300, 220)
    _GUICtrlRichEdit_SetCharAttributes($hRichEdit, "+un")
    _GUICtrlRichEdit_SetFont($hRichEdit, 10)
    _GUICtrlRichEdit_AppendText($hRichEdit, $sZeile[0] & @CRLF)
    _GUICtrlRichEdit_SetCharAttributes($hRichEdit, "-un")

    _GUICtrlRichEdit_SetFont($hRichEdit, 14)
    _GUICtrlRichEdit_AppendText($hRichEdit, $sZeile[1] )
    _GUICtrlRichEdit_SetFont($hRichEdit, 14)
    _GUICtrlRichEdit_AppendText($hRichEdit, " " )
    _GUICtrlRichEdit_SetFont($hRichEdit, 14)
    _GUICtrlRichEdit_AppendText($hRichEdit, $sZeile[2] & @CRLF)
    _GUICtrlRichEdit_SetFont($hRichEdit, 14)
    _GUICtrlRichEdit_AppendText($hRichEdit, $sZeile[3] & @CRLF)
    _GUICtrlRichEdit_SetFont($hRichEdit, 14)
    _GUICtrlRichEdit_AppendText($hRichEdit, $sZeile[4])
    _GUICtrlRichEdit_SetFont($hRichEdit, 14)
    _GUICtrlRichEdit_AppendText($hRichEdit, " " )
    _GUICtrlRichEdit_SetFont($hRichEdit, 14)
    _GUICtrlRichEdit_AppendText($hRichEdit, $sZeile[5] & @CRLF)

    GUISetState() ; löschen wenn Fester unsichtbar bleiben soll
    $sPrint = _RTF_Print(_GetDC_PrinterNoDialog(), $hRichEdit, "Titel")
    Sleep(9000)
    GUIDelete()
    Return $sPrint
    EndFunc ;==>Main

    Func _GetDC_PrinterNoDialog()
    Local $strcPD, $bRet, $hDC
    Local $PDtags = "align 1;DWORD lStructSize;HWND hwndOwner;handle hDevMode;handle hDevNames;handle hDC;DWORD Flags;WORD nFromPage;WORD nToPage;" & _
    "WORD nMinPage;WORD nMaxPage;WORD nCopies;handle hInstance;LPARAM lCustData;ptr lpfnPrintHook;ptr lpfnSetupHook;ptr lpPrintTemplateName;" & _
    "ptr lpSetupTemplateName;handle hPrintTemplate;handle hSetupTemplate"
    $strcPD = DllStructCreate($PDtags)
    DllStructSetData($strcPD, "lStructSize", DllStructGetSize($strcPD))
    DllStructSetData($strcPD, "Flags", 0x100 + 0x40 + 0x400)
    $bRet = DllCall("Comdlg32.dll", "int", "PrintDlgW", "ptr", DllStructGetPtr($strcPD))
    If $bRet[0] Then Return DllStructGetData($strcPD, "hDC")
    Return 0
    EndFunc ;==>_GetDC_PrinterNoDialog

    Func _RTF_Print($hPrintDc, $hwnd, $DocTitle, $LeftMinMrgn = 1, $TopMinMrgn = 1, $RightMinMrgn = 1, $BottomMinMrgn = 1)
    $TopMinMrgn *= 567
    $LeftMinMrgn *= 567
    $RightMinMrgn *= 567
    $BottomMinMrgn *= 567

    $dotInchX = _WinAPI_GetDeviceCaps($hPrintDc, 88);-----Const LOGPIXELSX = 88
    $dotInchY = _WinAPI_GetDeviceCaps($hPrintDc, 90);-----Const LOGPIXELSY = 90

    $PageW = _WinAPI_GetDeviceCaps($hPrintDc, 8);-----Const HORZRES= 8
    $PageH = _WinAPI_GetDeviceCaps($hPrintDc, 10);-----Const VERTRES = 10
    $PaperW = _WinAPI_GetDeviceCaps($hPrintDc, 110) ;-----Const PHYSICALWIDTH = 110
    $PaperH = _WinAPI_GetDeviceCaps($hPrintDc, 111) ;-----Const PHYSICALHEIGHT = 111

    $OffSetX = _WinAPI_GetDeviceCaps($hPrintDc, 112) ;-----Const PHYSICALOFFSETX = 112
    $OffSetY = _WinAPI_GetDeviceCaps($hPrintDc, 113);-----Const PHYSICALOFFSETY = 113
    $RightMrgn = $PaperW - $PageW - $OffSetX
    $BottomMrgn = $PaperH - $PageH - $OffSetY

    $TwipsInchX = $dotInchX / 1440;-----convert dots to twips [per inch]
    $TwipsInchY = $dotInchY / 1440;-----convert dots to twips [per inch]

    ;--------convert all measurments to twips
    $OffSetX = $OffSetX / $TwipsInchX ;-----convert Left dots to twips
    $OffSetY = $OffSetY / $TwipsInchY ;-----convert Left dots to twips
    $PageW = $PageW / $TwipsInchX ;-----convert Right dots to twips
    $PageH = $PageH / $TwipsInchY ;-----convert Right dots to twips
    $PaperW = $PaperW / $TwipsInchX ;-----convert Paper Width dots to twips
    $PaperH = $PaperH / $TwipsInchY ;-----convert Paper Width dots to twips

    ;----------Set the margins and keep everything in the printable area
    $Left1 = $LeftMinMrgn - $OffSetX
    If $Left1 < 0 Then $Left1 = 0;-----dont print before printable area starts

    $Top1 = $TopMinMrgn - $OffSetY
    If $Top1 < 0 Then $Top1 = 0;-----dont print before printable area starts

    $Right1 = $RightMinMrgn - $RightMrgn
    If $Right1 < 0 Then $Right1 = 0;-----dont print after printable area ends
    $Right1 = $PageW - $Right1 ;+$Left1;- $OffSetX

    $Bottom1 = $BottomMinMrgn - $BottomMrgn
    If $Bottom1 < 0 Then $Bottom1 = 0;-----dont print after printable area ends
    $Bottom1 = $PageH - $Bottom1;+$Top1

    $z = _SendMessage($hwnd, $EM_SETTARGETDEVICE, 0);---0=wrap----anything else is 1 char per page!!!!!
    If $z = 0 Then Return 'Cant find RichEdit Control'

    If _GUICtrlRichEdit_GetTextLength($hwnd) < 1 Then Return 'Nothing to Print.'
    ;---------must have a selection on the richEdit control---------------
    _SendMessage($hwnd, $EM_SETSEL, 0, -1);--ok----select all

    $pgTags = "int Left1;int Top1;int Right1;int Bottom1;int Left2;int Top2;int Right2;int Bottom2;"
    $rgTags = "LONG cpMin;LONG cpMax"
    $dcHTags = "HANDLE hdc;HANDLE hdcTarget;"
    ;------------create a structure for the printed page
    $strcPg = DllStructCreate($dcHTags & $pgTags & $rgTags)
    DllStructSetData($strcPg, "hdc", $hPrintDc);-------------printer
    DllStructSetData($strcPg, "Left1", $Left1);-----twip--------printer
    DllStructSetData($strcPg, "Right1", $Right1);-----twip--------printer
    DllStructSetData($strcPg, "Top1", $Top1);-----twip--------printer
    DllStructSetData($strcPg, "Bottom1", $Bottom1);-----twip--------printer

    ;---------get the pointer to all that will be printed??? {I think????????}
    $a = DllStructGetPtr($strcPg) + DllStructGetSize(DllStructCreate($dcHTags & $pgTags))
    ;-----------use this pointer-----------
    _SendMessage($hwnd, $EM_EXGETSEL, 0, $a)
    ;-----------find the last char of the document to be printed
    $cpMax = DllStructGetData($strcPg, "cpMax")
    ;-----------set the 1st page start char-----------
    $cpMin = 0
    $cpMin2 = -1
    ;-----------------------------------------------------------------------------------
    ;--------create a Document structure for the print job title
    $strDocNm = DllStructCreate("char DocName[" & StringLen($DocTitle & Chr(0)) & "]")
    DllStructSetData($strDocNm, "DocName", $DocTitle & Chr(0))
    $strDoc = DllStructCreate("int Size;ptr DocName;ptr Output;ptr Datatype;dword Type")
    DllStructSetData($strDoc, "Size", DllStructGetSize($strDoc))
    ;---------------insert the document name structure into the document structure
    DllStructSetData($strDoc, "DocName", DllStructGetPtr($strDocNm))
    DllCall("gdi32.dll", "long", "StartDoc", "hwnd", $hPrintDc, "ptr", DllStructGetPtr($strDoc))
    ;-----------------------------------------------------------------------------------
    ;-----------make a loop to format each printed page and exit when-----------
    ;-----$cpMin reaches the $cpMax
    ;-----$cpMin is less than 0---{I have seen -1 but I forget when}---
    ;----ALSO-- ExitLoop if $cpMin = $cpMin 2---if it stops finding the start of next page
    While $cpMax > $cpMin And $cpMin > -1
    ;-----------start a new page-----------
    $StartPage = DllCall("Gdi32.dll", "int", "StartPage", "HANDLE", $hPrintDc)
    ;-----------increment page the count-----------
    ;-----------if not done now it will exit the loop before counting the last page
    ; ;-----------get the 1st char of the next page, {but how does it work ???}
    $cpMin2 = $cpMin
    $cpMin = _SendMessage($hwnd, $EM_FORMATRANGE, True, DllStructGetPtr($strcPg))
    ;----ExitLoop when $cpMin = $cpMin 2---just in case it stops finding the start of next page
    If $cpMin2 = $cpMin Then ExitLoop;---get out of loop before more pages are added
    ; ;-----------set the next page start char-----------
    DllStructSetData($strcPg, "cpMin", $cpMin)
    ;------this sends it to the printer
    $EndPage = DllCall("Gdi32.dll", "int", "EndPage", "HANDLE", $hPrintDc)
    ;-----------end the page and loop again for the next page until the end of document
    WEnd
    _SendMessage($hwnd, $EM_FORMATRANGE, False, 0)
    If $EndPage[0] Then
    $r = 'Sent to the printer.'
    DllCall("Gdi32.dll", "int", "EndDoc", "HANDLE", $hPrintDc)
    Else
    $r = 'Printing aborted.'
    DllCall("Gdi32.dll", "int", "AbortDoc", "HANDLE", $hPrintDc)
    EndIf
    Return $r
    EndFunc ;==>_RTF_Print


    ;__________________________________________________
    func TEST()

    Run("C:\Program Files\Windows NT\Accessories\wordpad.exe")
    WinActivate ( "Dokument - WordPad" )
    WinMove ( "Dokument - WordPad","", 0, 0 , 800 , 600 )
    Sleep (1000)
    Send ('^o')
    Sleep(500)
    Send ("AdressAufkleber")
    SEND (".")
    Send ("RTF")
    Send ("{TAB}")
    Send ("{TAB}")
    Send ("{ENTER}")
    ;WinActivate ( "AdressAufkleber - WordPad" )
    ;WinWaitActive ( "AdressAufkleber - WordPad" )


    ;MouseClick ("left",15,110)
    Sleep(3000)


    MouseMove(250,250)

    ControlClick ("AdressAufkleber - WordPad","","","left" , 1,75,112)
    ;("left",230,50)
    Sleep(3000)
    MouseClick ("left",45,112)
    Sleep(3000)
    ;Send ("ABS:" ,1 )
    ;Send ("{SPACE}")
    ;Send ($Absender)
    ;Send ("{SPACE}")
    ;Send ($PDST)
    ;Send ("{SPACE}")
    ;Send ($PDSTNR )
    ;Send ("{ENTER}")
    MouseClick ("left",75,112)
    Sleep(3000)
    ; Send ($VORNAME)
    ; Send ("{SPACE}")
    ; Send ($NACHNAME)
    ; Send ("{ENTER}")
    MouseClick ("left",112,118))
    Sleep(3000)
    ;Send ($STRASSE)
    ;Send ("{ENTER}")
    MouseClick ("left",112,156))
    Sleep(3000)
    ;Send ($PLZ)
    ;Send ("{SPACE}")
    ;Send ($ORT)
    ;Send ("{ENTER}")


    WinActivate ( "Adresskopierer" )
    WinWaitActive ( "Adresskopierer" )
    Send("{TAB}")
    ;ControlFocus ( "Adresskopierer", "EBAYNAME", "Edit1" )

    ;GUICtrlSetState($BTN_DRUCK , $GUI_DISABLE)


    EndFunc

    Func Insert_Ebay()

    MsgBox (0,"TEST", $Edit_Ebay)
    MsgBox (0,"$notice", $notice )
    $notice = $deinInput
    MsgBox (0,"$notice", $notice )

    EndFunc

    FUNC EBAY_1()
    ;Vorbereiten
    ; dieser Wert wird in das Editfeld eingetragen
    ; ebaypaul,Paul,Test,Probiergasse 12,12345,Dorfhausen
    $deinInput = 42 ;der Wert ist unwichtig vermeide nur Fehlermeldung
    GUISetState(@SW_MINIMIZE,$HAUPTGUI) ; war im Weg
    $EBAY_GUI=GUIcreate("Adresse von Ebay", 230, 140)
    GUISetState(@SW_SHOW, $EBAY_GUI)
    $deinInput=GUICtrlCreateEdit ("",10,10,200,95) ;,$ES_AUTOVSCROLL+$WS_VSCROLL)
    GUISetState ()
    ;Abfragen
    $BUTTON_OK = GUICtrlCreateButton("OK", 30, 100 , 170, 30)
    While (True)

    $InhaltDeinerInput = GUICtrlRead($deinInput)

    $OK_Msg = GUIGetMsg (True)
    Switch $OK_Msg[0]
    Case $BUTTON_OK
    MsgBox (0,"$notice", $InhaltDeinerInput )
    ExitLoop

    Case $GUI_EVENT_CLOSE
    GUIDelete ($EBAY_GUI)
    ExitLoop
    EndSwitch
    WEnd
    GUIDelete ($EBAY_GUI)
    ;Verarbeiten
    $arSplit = StringSplit($InhaltDeinerInput, @CRLF, ";")
    $NAME = $arSplit[3]
    $arSPLNAME = StringSplit($NAME, " ") ;hier trennen wir Vorname mit Nachname
    $PLZORT = $arSplit[7]
    $arSPLPLZORT = StringSplit($PLZORT, " ") ; PLZ ORT Trennung
    $Mitgliedsname = $arSplit[1]
    $VORNAME = $arSPLNAME[1]
    $NACHNAME = $arSPLNAME[2]
    $STRASSE = $arSplit[5]
    $PLZ = $arSPLPLZORT[1]
    $ORT = $arSPLPLZORT[2]

    ;___________________________________________________________
    ;und ab ins Hauptfenster damit
    WinActivate ( "Adresskopierer" )
    WinWaitActive ( "Adresskopierer" )
    Send("{TAB}")
    ControlFocus ( "Adresskopierer", "EBAYNAME", "Edit1" )
    GUICtrlSetData($FELD1, $Mitgliedsname)
    GUICtrlSetData($FELD2, $VORNAME)
    GUICtrlSetData($FELD3, $NACHNAME)
    GUICtrlSetData($FELD4, $STRASSE)
    GUICtrlSetData($FELD5, $PLZ)
    GUICtrlSetData($FELD6, $ORT)
    ;und schon ist das Fenster gefüllt
    ;---------------------------------------
    ;wieder alle Buttons an
    GUICtrlSetState($BTN_EBAY , $GUI_ENABLE)
    GUICtrlSetState($BTN_EXIT , $GUI_ENABLE)
    GUICtrlSetState($BTN_WAWI , $GUI_ENABLE)
    GUICtrlSetState($BTN_DRUCK , $GUI_ENABLE)
    GUICtrlSetState($BTN_Weiter , $GUI_ENABLE)


    EndFunc

    Func Eingabe()
    ;Handeingabe der Adressen für Neukunden usw

    $ADR1=$ADR1+1 ; unterbricht die Case Schleife
    $ADR2=1 ; Wenn der NEUbutton gedrückt wird und adr2 0 ist wird formfill automatisch aufgerufen
    ; jetzt steht ja schon was in der Adresse!
    ;jetzt dafür sorgen das Win im Richtigen Programm ist
    WinActivate ( "Adresskopierer" )
    WinWaitActive ( "Adresskopierer" )
    Send("{TAB}")
    GUICtrlSetState($BTN_EXIT , $GUI_DISABLE) ;exit erstmal aus
    GUICtrlSetState($BTN_EBAY , $GUI_DISABLE) ;ebay braucht jetzt auch keiner
    GUICtrlSetState($BTN_WAWI , $GUI_DISABLE)
    GUICtrlSetState($BTN_DRUCK , $GUI_DISABLE)
    GUICtrlSetState($BTN_Weiter , $GUI_DISABLE)


    GUICtrlCreateLabel("Eingaben mit Tab bestätigen, oder ENDE drücken", 10, 180, 300, 20)
    GUICtrlCreateLabel("Programm erwartet Änderungen", 10, 200, 200, 20)
    ;............................................................
    $dll = DllOpen("user32.dll")
    ControlFocus ( "Adresskopierer", "EBAYNAME", "Edit1" )

    While 1
    Sleep ( 20 ) ;entprellen
    ;nächste Zeile fragt den TAb ab Code 09
    If _IsPressed("09", $dll) Then
    MTLN1() ;hier fragen wir ab ob etwas geändert wurde

    If $N = 2 Then ExitLoop ;änderungen = ja dann weiter gehts

    If _IsPressed("23", $dll) Then PRGEND() ;die Ende Taste gefrückt dann ab zum Ende


    EndIf
    WEnd
    $N = 0
    While 1
    Sleep ( 20 )
    If _IsPressed("09", $dll) Then
    MTLN2()

    If $N = 2 Then ExitLoop
    EndIf
    WEnd
    $N = 0
    While 1
    Sleep ( 20 )
    If _IsPressed("09", $dll) Then
    MTLN3()

    If $N = 2 Then ExitLoop
    EndIf
    WEnd
    $N = 0
    While 1
    Sleep ( 20 )
    If _IsPressed("09", $dll) Then
    MTLN4()

    If $N = 2 Then ExitLoop
    EndIf
    WEnd

    $N = 0
    While 1
    Sleep ( 20 )
    If _IsPressed("09", $dll) Then
    MTLN5()

    If $N = 2 Then ExitLoop
    EndIf
    WEnd
    $N = 0
    While 1
    Sleep ( 20 )
    If _IsPressed("09", $dll) Then
    MTLN6()

    If $N = 2 Then ExitLoop
    EndIf
    WEnd
    $N = 0

    DllClose($dll)
    ;........und die Buttons wieder an
    GUICtrlCreateLabel("", 10, 180, 300, 20)
    GUICtrlCreateLabel("", 10, 200, 300, 20)
    GUICtrlSetState($BTN_EBAY , $GUI_ENABLE)
    GUICtrlSetState($BTN_EXIT , $GUI_ENABLE)
    GUICtrlSetState($BTN_WAWI , $GUI_ENABLE)
    GUICtrlSetState($BTN_DRUCK , $GUI_ENABLE)
    GUICtrlSetState($BTN_Weiter , $GUI_ENABLE)

    EndFunc

    ;.......................................


    Func MTLN1()
    $Mitgliedsname =GUICtrlRead($FELD1)
    If $Mitgliedsname = "EBAYNAME" Then ControlFocus ( "Adresskopierer", "EBAYNAME", "Edit1" )
    If $Mitgliedsname <> "EBAYNAME" Then $N = 2
    EndFunc

    Func MTLN2()
    $VORNAME = GUICtrlRead($FELD2)
    If $VORNAME = "Vorname" Then ControlFocus ( "Adresskopierer", "Vorname", "Edit2" )
    If $VORNAME <> "Vorname" Then $N=2
    EndFunc

    Func MTLN3()
    $NACHNAME = GUICtrlRead ($FELD3)
    If $NACHNAME = "Nachname" Then ControlFocus ( "Adresskopierer", "Nachname", "Edit3" )
    If $NACHNAME <> "Nachname" Then $N = 2
    EndFunc

    Func MTLN4()
    $STRASSE = GUICtrlRead ($FELD4)
    If $STRASSE = "Straße mit HSNR" Then ControlFocus ( "Adresskopierer", "Straße mit HSNR", "Edit4" )
    If $STRASSE <> "Straße mit HSNR" Then $N = 2
    EndFunc

    Func MTLN5()
    $PLZ = GUICtrlRead($FELD5)
    If $PLZ ="Postleitzahl" Then ControlFocus ( "Adresskopierer", "Postleitzahl", "Edit5" )
    If $PLZ <> "Postleitzahl" Then $N=2

    EndFunc

    Func MTLN6()
    $ORT = GUICtrlRead($FELD6)
    If $ORT = "ORT" Then ControlFocus ( "Adresskopierer", "ORT", "Edit6" )
    If $ORT <> "ORT" Then $N=2
    EndFunc


    Func AboutDlg ( )

    $hGUI2 = GUICreate("WAWI", 139, 107, 328, 363, BitOR ($WS_VISIBLE, $DS_MODALFRAME, $WS_CAPTION, $WS_SYSMENU), $WS_EX_DLGMODALFRAME)
    GUICtrlCreateGroup("Info:", 6, 4, 127, 97)
    $Label1 = GUICtrlCreateLabel("01", 16, 48, 90, 17)
    $Label2 = GUICtrlCreateLabel("02", 16, 24, 112, 17)
    $Label3 = GUICtrlCreateLabel("03", 16, 72, 83, 17)
    GUICtrlCreateGroup("", -99, -99, 1, 1)

    EndFunc


    Func Weiter()
    If $ADR2=0 Then FORM_FILL()

    $NEU_GUI=GUIcreate("NEUE ADRESSE", 230, 140)
    ;$hGUI3 = GUICreate("Test", 139, 91, 328, 363, BitOR ($WS_VISIBLE, $DS_MODALFRAME, $WS_CAPTION, $WS_SYSMENU),$WS_EX_DLGMODALFRAME)
    GUISetState(@SW_SHOW, $NEU_GUI)
    $BUTTON7 = GUICtrlCreateButton("NEU IMPORT", 30, 10, 170, 30)
    ;GUICtrlSetState($BUTTON7 , $GUI_DISABLE)
    $BUTTON10 = GUICtrlCreateButton("NEU HAND", 30, 50, 170, 30)
    GUICtrlSetState($BUTTON10 , $GUI_DISABLE) ;damit man nicht versehentlich NEU drückt
    $BUTTON11 = GUICtrlCreateButton("NEIN WEITER", 30, 100 , 170, 30)

    WinActivate ( "NEUE ADRESSE" )
    WinWaitActive ( "NEUE ADRESSE" )
    Send("{TAB}")
    Send("{TAB}")
    ControlFocus ( "Adresskopierer", "PROGRAMMENDE", "Button3" ) ;klappt leider nicht
    sleep(1000)
    GUICtrlSetState($BUTTON10 , $GUI_ENABLE);so jetzt dürfen auch die dussels es gemerkt haben

    ;IF $ADR2=0 Then GUIDelete ($NEU_GUI)


    EndFunc
    Func FORM_FILL()
    ;jetzt dafür sorgen das Win im Richtigen Programm ist
    WinActivate ( "Adresskopierer" )
    WinWaitActive ( "Adresskopierer" )
    Send("{TAB}")
    ControlFocus ( "Adresskopierer", "EBAYNAME", "Edit1" )
    GUICtrlSetData($FELD1, "EBAYNAME")
    GUICtrlSetData($FELD2, "Vorname")
    GUICtrlSetData($FELD3, "Nachname")
    GUICtrlSetData($FELD4, "Straße mit HSNR")
    GUICtrlSetData($FELD5, "Postleitzahl")
    GUICtrlSetData($FELD6, "ORT")
    $Mitgliedsname = "EBAYNAME"
    $VORNAME = "Vorname"
    $NACHNAME = "Nachname"
    $STRASSE = "Straße mit HSNR"
    $PLZ ="Postleitzahl"
    $ORT = "ORT"

    EndFunc


    Func PRGEND ( )
    ;hier war mal mehr
    $ENDE_GUI=GUIcreate("PROGRAMMENDE", 230, 140)
    ;$hGUI3 = GUICreate("Test", 139, 91, 328, 363, BitOR ($WS_VISIBLE, $DS_MODALFRAME, $WS_CAPTION, $WS_SYSMENU),$WS_EX_DLGMODALFRAME)
    GUISetState(@SW_SHOW, $ENDE_GUI)
    $BUTTON7 = GUICtrlCreateButton("SIND SIE SICHER?", 30, 10, 170, 30)
    GUICtrlSetState($BUTTON7 , $GUI_DISABLE)
    $BUTTON8 = GUICtrlCreateButton("JA EXIT", 30, 50, 170, 30)
    GUICtrlSetState($BUTTON8 , $GUI_DISABLE) ;damit man nicht versehentlich EXIT drückt
    $BUTTON9 = GUICtrlCreateButton("NEIN WEITER", 30, 100 , 170, 30)
    WinActivate ( "PROGRAMMENDE" )
    WinWaitActive ( "PROGRAMMENDE" )
    Send("{TAB}")
    Send("{TAB}")
    ControlFocus ( "Adresskopierer", "PROGRAMMENDE", "Button3" ) ;klappt leider nicht
    sleep(500)
    GUICtrlSetState($BUTTON8 , $GUI_ENABLE);so jetzt dürfen auch die dussels es gemerkt haben


    EndFunc


    Der Code ist vieleicht nicht sehr schön aber er Funktioniert
    mir fehlen halt Interupt, Sprungmarken und jump (um nich goto zu sagen )

    Was noch zu tun ist:
    -die Automatische Adressübernahme von Ebay usw.
    -das Eintragen in die WAWI
    -und noch ein paar Adresszusätze für Tel email Adresse usw
    und zuletzt dann noch die Feinabstimmung zB die Userführung und die Abstände der Buttons


    viele Grüße
    jörg

  • Hey ho,

    erstmal: Der CSV-Manager von eBay erfüllt eigentlich alle Funktionen die du brauchst? ( Kundenadressdatenimport )
    Und zweitens würde ich persönlich die Adressdatenbesorgung via E-Mail Check machen. In der Verkaufsemail stehen ja die Adressdaten der Kunden drinne - einfach via Autoit die E-Mails abrufen und dann die Verkaufsemails herausfischen und die Adressdaten speichern in Verbindung mit den Artikeln oder sonst was..

    Grüße

  • Hallo abcuser,
    der csvManager macht nicht ganz genau was ich auf Dauer haben möchte.
    Außerdem ist mir zum Erlernen nix Dümmeres eingefallen.
    Ja die Daten aus einer email zu lesen wird einfacher sein, als direkt aus der Internetanwendung.
    Nur direkt aus der Anwendung wird es nachher schneller gehen, wenn noch andere Platformen dazukommen denke ich.

    Also ich bin ganz zufrieden mit den Fortschritten die ich hier mache.
    viele Grüße
    jörg