copy & paste aus "Fremdfenster" in EXCEL-Mapp

Wohl das A & O in der Windows-Programmierung

Moderatoren: crack, Krüsty, Marwin

copy & paste aus "Fremdfenster" in EXCEL-Mapp

Beitragvon schokokeks » Donnerstag 11. Januar 2007, 14:55

Hallo!

Ich hab von der Windows API ziemlich wenig Ahnung, soll aber das oben genannte machen. Ich hab mir das im Internet ein paar Zeilen Code dazu gesucht und umgeschrieben:


Code: Alles auswählen
Sub WerteImportieren()

Dim ans As Variant
Dim startzeit As Date



                    'Warteschleife
startzeit = Cells(17, 3)
While Time < startzeit
Wend


                    'Ermitteln der Fenster-IDs "Deals"

ans = FensterListeFüllen
Cells(17, 2) = anzahldeals
On Error GoTo Wiederholung

'Durchlauf der Broker in der Zwischenablage und Speichern der Daten in einer entsprechend benamten Datei
For i = 1 To anzahldeals
    Fenster_öffnen (FenListNr(i))
    Import_Ablage
   

    Workbooks.Add
   
Wiederholung:
   
    'ActiveSheet.Paste
    Worksheets("Tabelle1").Paste
   
    datname = "D:\Work\Import\" & Erz_dat_name(i)
   Erz_dat_name(i)
    If FileExists(datname) Then Kill (datname)
    ActiveWorkbook.SaveAs Filename:= _
        datname, FileFormat:=xlNormal, _
        Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
        CreateBackup:=False
    ActiveWindow.Close
Next i
       
       
'Bildschirmschoner einschalten

EnableScreenSaver (True)

End Sub

Sub Fenster_öffnen(hwnd As Long)
    ans = SetForegroundWindow(hwnd)
'Fenster in den Vordergrund bringen
End Sub

Sub Import_Ablage()
    ' Pos 1
         SendKeyStroke vbKeyHome, -1
         SendKeyStroke vbKeyHome, 1
    ' Shift runter
         SendKeyStroke vbKeyShift, -1
    ' Ende
         SendKeyStroke vbKeyEnd, -1
         SendKeyStroke vbKeyEnd, 1
    ' Shift loslassen
        SendKeyStroke vbKeyShift, 1
       
    ' in Zwischenablage
        SendKeyStroke vbKeyControl, -1
        SendKeyStroke vbKeyC, -1
        SendKeyStroke vbKeyC, 1
        SendKeyStroke vbKeyC, 1
        SendKeyStroke vbKeyControl, 1
End Sub

Function Erz_dat_name(ByVal j As Integer) As String
    Dim name As String
    name = "import"
   
End Function



Folgendes soll passieren:
!) Das Fenster dessen Inhalt kopiert werden soll, wird in den Vordergrund gebracht
2) Kopieren der enthaltenen Zeilen (Fremdanwendung, kein Office oder so)
3)Zeilen wieder aus der Zwischenablage holen und in eine Excel-Mappe einfügen

Problem: Auf einigen Rechnern funktioniert alles wie gewollte, auf anderen Rechnern wird statt allen Zeilen nur eine einzige Zeile kopiert

Frage: Was stimmt mit meinem Code nicht? Gibt es eine andere Möglichkeit zum Kopieren?

Vielen Dank für jegliche Hilfe!

schokokeks
schokokeks
Newbie
 
Beiträge: 1
Registriert: Donnerstag 11. Januar 2007, 14:31

Zurück zu Windows-API

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder

cron