Jump to content

Sky Slate Blueberry Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate
Photo

ClipBoard Funktion will nicht so wie ich will :)


  • Please log in to reply
34 replies to this topic
fump2000
  • Members
  • 591 posts
  • Last active: Nov 11 2015 07:52 AM
  • Joined: 01 Nov 2012

Hallo zusammen,

 

ich möchte eine Funktion schreiben die Text mit formatierung und ohne Formatierung kopiert. Bilder und Dateien also eigentlich alles das kein Text ist soll aber ignoriert werden.

 

Ich scheiter aber schon daran zu erkennen was in ClipboardAll enthalten ist.

OnClipboardChange: ;vorhanden damit A_Eventinfo gesetzt wird
Return

getClipboardSafe2()
	{
		ClipSaved := ClipboardAll
		Clipboard =
		SendInput, ^c
		ClipWait, 20, 1
		If ErrorLevel
			{
				MsgBox, Kopieren des Textes in die Zwischenablage fehlgeschlagen.
				Return
			}
		If (A_EventInfo = 0)
			msgbox nix
		If (A_EventInfo = 1)
			msgbox Text
		If (A_EventInfo = 2)
			msgbox kein Text, vllt. Bild
		v := ClipboardAll
		Clipboard := ClipSaved
		ClipSaved =
		Return v
	}

Was mache ich denn falsch?

 

Wie kann man zuverlässig unterscheiden was in ClipboardAll enhalten ist damit ich so Formatierten Text und eben auch nicht Formatierten Text bekomme aber halt nix anderes?

 

Wäre scön wenn mir da jemand Klarheit verschafft.

 

Danke im voraus!

 

MfG
fump



strobo
  • Members
  • 359 posts
  • Last active: Mar 10 2015 08:13 PM
  • Joined: 19 Jun 2012

Zum rumspielen:

esc::exitapp
OnClipboardChange: ;vorhanden damit A_Eventinfo gesetzt wird
    If (A_EventInfo = 0)
        msgbox nix
    If (A_EventInfo = 1)
        msgbox Text
    If (A_EventInfo = 2)
        msgbox kein Text, vllt. Bild
Return
 
Regards,
Babba

fump2000
  • Members
  • 591 posts
  • Last active: Nov 11 2015 07:52 AM
  • Joined: 01 Nov 2012

Ja kommt immer das richtige...

 

Aber warum nicht in der Funktion?

 

Ich muss A_Eventinfo in der Funktion nutzen, scheint ja auch möglich zu sein... aber mit der Funktion kommt immer nix...

 

Wo hab ich denn da den Denkfehler?



fump2000
  • Members
  • 591 posts
  • Last active: Nov 11 2015 07:52 AM
  • Joined: 01 Nov 2012
OnClipboardChange: ;vorhanden damit A_Eventinfo gesetzt wird
Critical
errlvl := ErrorLevel
Return

getClipboardSafe2()
	{
		global errlvl
		ClipSaved := ClipboardAll
		Clipboard =
		SendInput, ^c
		ClipWait, 20, 1
		If ErrorLevel
			{
				MsgBox, Kopieren des Textes in die Zwischenablage fehlgeschlagen.
				Return
			}
			msgbox %errlvl%
		If (errlvl = 0)
			msgbox 2. nix
			msgbox %errlvl%
		If (errlvl = 1)
			msgbox 2. Text
			msgbox %errlvl%
		If (errlvl = 2)
			msgbox 2. kein Text, vllt. Bild
		v := ClipboardAll
		Clipboard := ClipSaved
		ClipSaved =
		Return v
	}

NumPad1::
MyClip1:=getClipboardSafe2()
msgbox %MyClip1%
Return

So klappt es halbwegs...

Denn... errlvl ist erst auf 1 und dann auf 2 beim kopieren eines Bildausschnitts, warum? Keine Ahnung...



D_FoX
  • Members
  • 77 posts
  • Last active: Oct 17 2013 11:26 PM
  • Joined: 08 May 2013

Da ich mich auch gerade mit dem Thema beschäftige.

hier habe ich ein kleines script damit kannman Format kopieren. Ohne könnte man einfach nur Clipboard nehmen ohne Clipboardall

OnClipboardChange:
ToolTip ClipboardNummer: %A_EventInfo%
Sleep 1000
ToolTip  
Return

;Speichern
2::
Send, ^c
Clipwait
ClipSicherung := ClipboardAll
return

;Laden

3::
Clipboard := ClipSicherung
Clipwait
send, ^v
return


ESC::EXITAPP


fump2000
  • Members
  • 591 posts
  • Last active: Nov 11 2015 07:52 AM
  • Joined: 01 Nov 2012

Ich möchte gerne eine Funktion haben mit der ich das lösen kann damit ich gleich mehrere Vars über verschiedene Hotkeys befüllen kann.

 

Durch interaktion mit dem User entscheidet er selbst ob er mit oder ohne formatierung nutzen möchte.

 

Ich bekomm die Funktion nur leider nicht hin...



nnnik
  • Members
  • 1625 posts
  • Last active: Jan 24 2019 02:19 PM
  • Joined: 28 Jul 2012

Also grin.png

OK ...

Das wird jetzt ein bischen umständlich und schwer zu erklären.

Im Computer werden alle Daten als eine Aneinanderreihung von Zahlen gespeichert.

So auch Strings und der Inhalt von Clipboard.

So ist der String "Hallo" die Anneinanderreihung der Zahlen 72,97,108,108,111.

Seit den ersten Computersprachen hat man als Makierer für das Ende immer die Zahl 0 genommen, so auch in diesem Fall.

Wenn also der String "Hallo" im Speicher geladen wäre würde er so aussehen:

72,97,108,108,111,0

Bilder enthalten aber manchmal auch den Wert Null z.B. wird schwarz manchmal durch eine 0 dargestellt.

Wenn ihr nun, eine Zahlenreihe, wie z.B. 123,212,0,512,12,0,5 in eine AHK Variable speichert und sie als Text lest, geht der hintere Teil verloren.

Das was AHK dann ausgeben würde wäre: 123,212,0

Deshalb. will ClipBoard nicht so wie ihr wollt. grin.png

 

Es wird natürlich einen Workaround geben aber ich muss selbst erst ein bischen rumspielen damit ich etwas finde.


Visit the new forum ahkscript.org.

http://ahkscript.org


fump2000
  • Members
  • 591 posts
  • Last active: Nov 11 2015 07:52 AM
  • Joined: 01 Nov 2012

Ich hab versucht es über ClipJump zu verstehen... aber ich konnte nicht herausfinden wie es da gemacht wird.



nnnik
  • Members
  • 1625 posts
  • Last active: Jan 24 2019 02:19 PM
  • Joined: 28 Jul 2012

Er schreibt die ClipBoardAll Variable in eine Datei die er dann per FileRead mit einer *C option wieder einliest:

FileAppend,%ClipBoardAll%,text.txt ;kann Tippfehler enthalten.
FileRead,ClipBoard,*C text.txt

Eigentlich ziemlich hässlich.

 

Ich spiel grad mal ein bischen mit NumPut/Get rum. :D


Visit the new forum ahkscript.org.

http://ahkscript.org


D_FoX
  • Members
  • 77 posts
  • Last active: Oct 17 2013 11:26 PM
  • Joined: 08 May 2013

hab das auch schon aussprobiert, aber da klappt das auslesen der datei nicht...

ich mein mit der datei ist das ja kein problem, kann man ja nach beenden des scripts löschen.

 

@fump

 

die "umstellung" format/kein format, soll die automatisch oder z.b. über ein gui oder hotkey gehen?



nnnik
  • Members
  • 1625 posts
  • Last active: Jan 24 2019 02:19 PM
  • Joined: 28 Jul 2012

Bei mir schon :D


Visit the new forum ahkscript.org.

http://ahkscript.org


nnnik
  • Members
  • 1625 posts
  • Last active: Jan 24 2019 02:19 PM
  • Joined: 28 Jul 2012

Wenn die zweite MessageBox nicht leer ist sollte es bei dir Funktionieren:

Msgbox % Clipboard
FileDelete,test.txt
FileAppend,%ClipboardAll%,test.txt
Clipboard:=""
FileRead,Clipboard,*C test.txt
FileDelete,test.txt
ClipWait,20,1
Msgbox % Clipboard

Visit the new forum ahkscript.org.

http://ahkscript.org


fump2000
  • Members
  • 591 posts
  • Last active: Nov 11 2015 07:52 AM
  • Joined: 01 Nov 2012

Die Auswahl ob Formatierung erwünscht ist oder nicht entscheidet der User über eine GUI. diese Zeigt Visuell auch an ob Inhalt vorhanden ist.

 

@ nnnik: Ich werd deinen Code sofort mal testen.



fump2000
  • Members
  • 591 posts
  • Last active: Nov 11 2015 07:52 AM
  • Joined: 01 Nov 2012

Es klappt, auch wird korrekt differenziert... aber die Formatierung ist weg.

 

Kopiere ich damit einen Text der Formatiert ist aus Word heraus, dann ist beim Einfügen die Formatierung weg.

 

Wie bekomm ich das hin? :(



nnnik
  • Members
  • 1625 posts
  • Last active: Jan 24 2019 02:19 PM
  • Joined: 28 Jul 2012

Diese Funktion kopiert die Rohdaten aus der Zwischenablage in eine Datei damit man sie später wieder einlesen kann.

Warum die Formatierung weg ist ist schwer zu sagen.

Mehr kann die Funktion nicht machen.


Visit the new forum ahkscript.org.

http://ahkscript.org