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

Geschrieben

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

Geschrieben

danke schon mal..

aber irgendwie komm ich mit den beispielen nicht so klar..

der 2te link den du mir gepostet hast.. das beispiel will irgendwie bei mir nicht..

-->Anweisung erwartet spuckt er mir aus..

 

ist es mit dem dann möglich, die Zwischenablage auszulesen?

Geschrieben

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

Geschrieben

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

Geschrieben

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

Geschrieben

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

Geschrieben

hmm er bringt mir das der name "arg" nicht deklariert wurde.. und Ausdruck erwartet in der der for schleife "for dim"..

 

 

hab auch schon das

 

"for dim i" in "for dim arg" zu ändern aber das wars wohl auch nicht..

 

muss ich es so deklarieren?

 

 

Dim arg as String ??

Geschrieben

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.

Geschrieben

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

Geschrieben

also wenn ich das so Compiliere,

dann scheidet er gar nichts ab..

es bleibt alles wie es war..

 

ob ich jetzt 4 oder 6 Zeilen in der zwischenablage habe..

 

edit:

 

wenn ich den wert -5 setze, funktioniert es.

was genau macht diese zahl?

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

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...