Jump to content

Zwischenablage auslesen/bearbeiten


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hi leute,

bin zur zeit auf der suche nach einem tool oder nach einer Möglichkeit,

die Zwischenablage von xp auszulesen und diese dann dementsprechend zu bearbeiten..

 

am besten sollte es so fuktionieren.

 

die Zwischenablage sieht so aus.

 

Firma

name

Adresse

 

blablabla

 

 

jetzt soll das "blablabla" und die darüberliegende Leerzeile abgeschnitten werden, dass nur noch die Adresse dort steht!

 

 

wie setzt man so etwas am besten um?

 

 

grüße

Link zu diesem Kommentar

Hall The Cracked,

Wenn nur die 2,3 und 4.-te Zeile stehen bleiben soll, dann hab ich dir hier in VB eine kleine Routinge geschrieben.

 

Module Module1

   Sub Main()
     Dim ClipIn As String = Windows.Forms.Clipboard.GetText
     Dim args(0) As String
     args(0) = ""
     Dim Zeile As Int32
     Dim ClipOut As String = ""

     args = Split(ClipIn, vbCrLf)
     For Each arg As String In args
        Zeile += 1
        If Zeile >= 2 And Zeile <= 4 Then 'Evtl. hier anpassen
           ClipOut += arg + vbCrLf
        End If
     Next
     Windows.Forms.Clipboard.SetText(ClipOut)

   End Sub

End Module

 

Wenn du es anpassen möchtest, kannst du dir die kostenlose VisualStudio ExpressVersion unter Microsoft Download Center (vb2005 o. 2008) runterladen und damit kompilieren

 

cu

blub

ClipBoardCleaner.zip

Link zu diesem Kommentar

du kopierst z.B. mit STRG+C deinen Text aus mehreren Zeilen in die Zwischenablage und rufst anschliessend mein Programm auf. Dann kannst du den eingedampfte Inhalt der Zwischenablage mit STRG+V irgendwohin kopieren.

Das Tool entfernt die erste Zeile, lässt Zeilen 2,3, und 4 stehen und schneidet das folgende blablabla ab. So hat sich die Anforderung für mich in deinem ersten Post angehört

Link zu diesem Kommentar

ah okey jetzt hab ich es verstanden..

funktioniert auch prima..

nur noch ein anliegen.

es soll Zeile 1..2..3..4.. stehen bleiben und nur die letzen 2 zeilen von untern her gesehen weggeschnitten werden..

 

Also effektiv die adresse besteht aus 4 zeilen.. daruter kommen 2 unwichtige zeilen die abgeschnitten werden sollen. es kommt aber auch manchmal vor, dass die adresse aus 5 zeilen besteht.. das programm muss also von unten her einfach die letzen 2 zeilen abschneiden...

 

 

grüße..

 

edit:

bekommen beim kompilieren einen Fehler..

 

Der Name "windows" wurde nicht deklariert

Link zu diesem Kommentar

du musst wahrscheinlich noch im VisualStudio (2005) im Menü Projekt -> Verweis

den Verweisnamen "System.windows.Forms" aus den .Net-Komponenten hinzufügen

 

Mit args.length bekommst du die Zeilenanzahl raus, allerdings gezählt ab Zeile 0. d.h. wenn du oben die for each Schleife ersetzt durch

 

for dim i as int32 = 0 to (args.length)-2

ClipOut += arg + vbCrLf

next

 

müsste es eigentlich passen.

 

cu

blub

Link zu diesem Kommentar

Alsooo...

 

bis jetzt sieht der code so aus..

 

Module Module1

 

Sub Main()

Dim ClipIn As String = Windows.Forms.Clipboard.GetText

Dim args(0) As String

args(0) = ""

Dim Zeile As Int32

Dim ClipOut As String = ""

 

args = Split(ClipIn, vbCrLf)

For i As Int32 = 0 To (args.Length) - 2

ClipOut += arg + vbCrLf

Next

 

Windows.Forms.Clipboard.SetText(ClipOut)

 

End Sub

 

End Module

 

Jetzt hat er noch ein Problem mit +=arg

=>Der Name "arg" wurde nicht deklariert.

 

Hab einfach oben mal

 

Dim arg As String = ""

 

eingefügt..

ist das so korrekt?

aber irgendwie ist dann nach dem ausführen des programms meine zwischenablage leer :P

 

Auch das ändern von " For i As" in " For arg As" hat nicht geklappt.. hier stürzte das Programm ab.

Link zu diesem Kommentar

so hab ichs jetzt getestet. Damit schneidet er immer die letzten beiden Zeilen aus der Zwischenablage ab

 

Module Module1

  Sub Main()
     Dim ClipIn As String = Windows.Forms.Clipboard.GetText
     Dim args(0) As String
     args(0) = ""
     Dim ClipOut As String = ""

     args = Split(ClipIn, vbCrLf)
     For i As Int32 = 0 To (args.Length) - 2
        ClipOut += args(i) + vbCrLf
     Next

     Windows.Forms.Clipboard.SetText(ClipOut)

  End Sub

End Module

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...