N'Abend zusammen,
habe zwei kleine Fragen auf dem Herzen, die ich trotz Google und Forensuche einfach nicht gelöst bekomme:
1. Hotkey ist auf Strg und h gesetzt (^h). Aktion, sagen wir ein einfacher Sendinput wird ausgeführt.
Diese Aktion soll bei jeder erneuten Betätigung von "h" ausgeführt werden, solange dabei Strg gedrückt bleibt.
Wird Strg jedoch auch losgelassen, folgt Aktion 2.
Wie ist das zu lösen?
2. Wie ist zu verhindern, dass das Label "OnClipboardChange" ausgeführt wird, wenn innerhalb des Scripts durch eine Aktion die Zwischenablage verändert wird?
Ich hoffe, mich um diese Uhrzeit noch verständlich ausgedrückt zu haben. ^^
Liebe Grüße,
Patrick
Zwei ganz kleine Fragen... :)
Moderator: jNizM
Re: Zwei ganz kleine Fragen... :)
War okay, trotzdem Code her;)Ich hoffe, mich um diese Uhrzeit noch verständlich ausgedrückt zu haben.
Re: Zwei ganz kleine Fragen... :)
Ich verstehe zwar nicht wozu, da es sich um eine grundsätzliche Problematik handelt die ich bereits bei einem ehemaligen Projekt gerne gelöst hätte; aber gerne doch:strobo wrote:War okay, trotzdem Code her;)Ich hoffe, mich um diese Uhrzeit noch verständlich ausgedrückt zu haben.
Code: Select all
Cache = 1
Gui, Add, Button, x15 y10 w85 , Test
Gui, Add, Button, x110 y10 w85 , Test2
Gui, Add, Edit, x20 y50 w500 h300 vOutFolder,
Gui, Show, w814 h450, Test
return
^c::
Suspend, on
Send, ^c
if (Cache = 1)
{
Cache1 = %ClipboardAll%
SetTimer, TimerTip, 1500
ToolTip, Inhalt in die 1. Zwischenablage kopiert!`nStrg + Numlock1
Cache = 2
Suspend, off
return
}
if (Cache = 2)
{
Cache2 = %ClipboardAll%
SetTimer, TimerTip, 1500
ToolTip, Inhalt wurde in die 2. Zwischenablage kopiert!`nStrg + Numlock2
Cache = 3
Suspend, off
return
}
if (Cache = 3)
{
Cache3 = %ClipboardAll%
SetTimer, TimerTip, 1500
ToolTip, Inhalt wurde in die 3. Zwischenablage kopiert!`nStrg + Numlock3
Cache = 4
Suspend, off
return
}
if (Cache = 4)
{
Cache4 = %ClipboardAll%
SetTimer, TimerTip, 1500
ToolTip, Inhalt wurde in die 4. Zwischenablage kopiert!`nStrg + Numlock4
Cache = 5
Suspend, off
return
}
if (Cache = 5)
{
Cache5 = %ClipboardAll%
SetTimer, TimerTip, 1500
ToolTip, Inhalt wurde in die 5. Zwischenablage kopiert!`nStrg + Numlock5
Cache = 6
Suspend, off
return
}
if (Cache = 6)
{
Cache6 = %ClipboardAll%
SetTimer, TimerTip, 1500
ToolTip, Inhalt wurde in die 6. Zwischenablage kopiert!`nStrg + Numlock6
Cache = 7
Suspend, off
return
}
if (Cache = 7)
{
Cache7 = %ClipboardAll%
SetTimer, TimerTip, 1500
ToolTip, Inhalt wurde in die 7. Zwischenablage kopiert!`nStrg + Numlock7
Cache = 8
Suspend, off
return
}
if (Cache = 8)
{
Cache8 = %ClipboardAll%
SetTimer, TimerTip, 1500
ToolTip, Inhalt wurde in die 8. Zwischenablage kopiert!`nStrg + Numlock8
Cache = 9
Suspend, off
return
}
if (Cache = 9)
{
Cache9 = %ClipboardAll%
SetTimer, TimerTip, 1500
ToolTip, Inhalt wurde in die 9. Zwischenablage kopiert!`nStrg + Numlock9
Cache = 1
Suspend, off
return
}
return
^Numpad1::
Clipboard = %Cache1%
Send, ^v
return
^Numpad2::
Clipboard = %Cache2%
Send, ^v
return
^Numpad3::
Clipboard = %Cache3%
Send, ^v
return
^Numpad4::
Clipboard = %Cache4%
Send, ^v
return
^Numpad5::
Clipboard = %Cache5%
Send, ^v
return
^Numpad6::
Clipboard = %Cache6%
Send, ^v
return
^Numpad7::
Clipboard = %Cache7%
Send, ^v
return
^Numpad8::
Clipboard = %Cache8%
Send, ^v
return
^Numpad9::
Clipboard = %Cache9%
Send, ^v
return
TimerTip:
SetTimer, TimerTip, Off
ToolTip
return
Exit:
GuiClose:
ExitApp
Mein Ziel: Wird die Zwischenablage verändert, wird der jeweilige Inhalt durch das Script gesichert.
Bei Paste "Strg+V" soll dann ein Tooltip erscheinen, der den jeweiligen Inhalt wieder gibt - durch wiederholtes drücken von V blättert man praktisch durch die virtuelle Zwischenablage und fügt den zu wünschenden Inhalt dann ein, wenn man Strg los lässt.
Da ich aber nicht verlange, dass man mir hier meine Arbeit erledigt und mir einen fertigen Code vorlegt wollte ich eigentlich nur wissen, wie meine im Startbeitrag geschilderten Probleme gelöst werden können.
Liebe Grüße,
Patrick
//Edit: Die Gui, das Edit-Control und die zwei Buttons sind irrelevant, sind noch überbleibsel anderer Tests... ^^
Re: Zwei ganz kleine Fragen... :)
hilft den Helfern, setzt einen Kontext.Ich verstehe zwar nicht wozu
das hast du mit deiner eigenen Code-Vorlage jetzt bewiesen (nicht dass du in Verdacht standest.) Ein aufs Problem runtergekochtes Skript ist allerdings vorzuziehen.Da ich aber nicht verlange, dass man mir hier meine Arbeit erledigt und mir einen fertigen Code vorlegt...
Code: Select all
a := 0 ; markiert ^h.
^h::
a := 1
; ... (hier nicht den Wert speichern)
return
#if (a)
~lctrl up::
~rctrl up::
; ...
a := 0
return
#if
Re: Zwei ganz kleine Fragen... :)
N'Abend strobo,
vielen Dank, mit deiner Hilfe konnte ich beide Probleme lösen. Es funktioniert nun wie gewünscht; bis auf eine Kleinigkeit.
Bilder und Texte samt Formatierungen bleiben in den 8 "virtuellen Zwischenablagen" erhalten und lassen sich wie gewünscht durchblättern und ausgeben. Für das Durchblättern samt Tooltips lässt sich für eben diese durch A_EventInfo auch ermitteln, obs ein Bild oder ein Text ist (noch nicht eingebaut).
Dateien jedoch, die ich kopiere und an einem anderen Ort einfügen möchte lassen sich damit nicht handhaben - es erscheint: nichts.
Hier mein bisheriger Code:Für einen konkreten Denkanstoß wäre ich sehr dankbar.
Eventuell auch der eine oder andere Hinweis, wie das bisherige besser oder einfacher hätte gelöst werden können.
Schönen Abend noch.
Liebe Grüße,
Patrick
vielen Dank, mit deiner Hilfe konnte ich beide Probleme lösen. Es funktioniert nun wie gewünscht; bis auf eine Kleinigkeit.
Bilder und Texte samt Formatierungen bleiben in den 8 "virtuellen Zwischenablagen" erhalten und lassen sich wie gewünscht durchblättern und ausgeben. Für das Durchblättern samt Tooltips lässt sich für eben diese durch A_EventInfo auch ermitteln, obs ein Bild oder ein Text ist (noch nicht eingebaut).
Dateien jedoch, die ich kopiere und an einem anderen Ort einfügen möchte lassen sich damit nicht handhaben - es erscheint: nichts.
Hier mein bisheriger Code:
Code: Select all
#NoEnv
#SingleInstance force
OnExit, GuiClose
;Critical, on
a := 0 ; Variabel legt fest, ob LControl losgelassen wird, 0=prüft nicht, 1=prüft
b := 0 ; Variabel legt fest, ob Label "OnClipboardChange" durchläuft oder nicht, 0=läuft durch, 1=setzt auf return
Cache = 0
VirCache = 1
return
^v::
a := 1
b := 1
If (VirCache = 1)
{
Clipboard = %Cache1%
Tooltip, 1. Zwischenablage`n%Clipboard%
VirCache = 2
VirCacheResult = 1
return
}
If (VirCache = 2)
{
Clipboard = %Cache2%
Tooltip, 2. Zwischenablage`n%Clipboard%
VirCache = 3
VirCacheResult = 2
return
}
If (VirCache = 3)
{
Clipboard = %Cache3%
Tooltip, 3. Zwischenablage`n%Clipboard%
VirCache = 4
VirCacheResult = 3
return
}
If (VirCache = 4)
{
Clipboard = %Cache4%
Tooltip, 4. Zwischenablage`n%Clipboard%
VirCache = 5
VirCacheResult = 4
return
}
If (VirCache = 5)
{
Clipboard = %Cache5%
Tooltip, 5. Zwischenablage`n%Clipboard%
VirCache = 6
VirCacheResult = 5
return
}
If (VirCache = 6)
{
Clipboard = %Cache6%
Tooltip, 6. Zwischenablage`n%Clipboard%
VirCache = 7
VirCacheResult = 6
return
}
If (VirCache = 7)
{
Clipboard = %Cache7%
Tooltip, 7. Zwischenablage`n%Clipboard%
VirCache = 8
VirCacheResult = 7
return
}
If (VirCache = 8)
{
Clipboard = %Cache8%
Tooltip, 8. Zwischenablage`n%Clipboard%
VirCache = 1
VirCacheResult = 8
return
}
return
#if (a)
~lctrl up::
~rctrl up::
Suspend, on
gosub, TimerTip ;ToolTip ausschalten
if (VirCacheResult = 1)
{
a := 0
Send, ^v
VirCache = 1
b := 0
Suspend, off
return
}
if (VirCacheResult = 2)
{
a := 0
Send, ^v
VirCache = 1
b := 0
Suspend, off
return
}
if (VirCacheResult = 3)
{
a := 0
Send, ^v
VirCache = 1
b := 0
Suspend, off
return
}
if (VirCacheResult = 4)
{
a := 0
Send, ^v
VirCache = 1
b := 0
Suspend, off
return
}
if (VirCacheResult = 5)
{
a := 0
Send, ^v
VirCache = 1
b := 0
Suspend, off
return
}
if (VirCacheResult = 6)
{
a := 0
Send, ^v
VirCache = 1
b := 0
Suspend, off
return
}
if (VirCacheResult = 7)
{
a := 0
Send, ^v
VirCache = 1
b := 0
Suspend, off
return
}
if (VirCacheResult = 8)
{
a := 0
Send, ^v
VirCache = 1
b := 0
Suspend, off
return
}
return
OnClipboardChange:
if (b = 1)
{
return
}
Suspend, on
ClipArt := (!(A_EventInfo) ? "Leer" : (A_tntInfo>1) ? "2" : "1" ) ; 1=Text, 2=Bild
if (Cache = 0)
{
Cache = 1
Suspend, off
return
}
if (Cache = 30)
{
Suspend, off
return
}
if (Cache = 1)
{
Cache1 = %ClipboardAll%
SetTimer, TimerTip, 1500
ToolTip, Inhalt in die 1. Zwischenablage kopiert!
Cache = 2
Suspend, off
return
}
if (Cache = 2)
{
Cache2 = %ClipboardAll%
SetTimer, TimerTip, 1500
ToolTip, Inhalt wurde in die 2. Zwischenablage kopiert!
Cache = 3
Suspend, off
return
}
if (Cache = 3)
{
Cache3 = %ClipboardAll%
SetTimer, TimerTip, 1500
ToolTip, Inhalt wurde in die 3. Zwischenablage kopiert!
Cache = 4
Suspend, off
return
}
if (Cache = 4)
{
Cache4 = %ClipboardAll%
SetTimer, TimerTip, 1500
ToolTip, Inhalt wurde in die 4. Zwischenablage kopiert!
Cache = 5
Suspend, off
return
}
if (Cache = 5)
{
Cache5 = %ClipboardAll%
SetTimer, TimerTip, 1500
ToolTip, Inhalt wurde in die 5. Zwischenablage kopiert!
Cache = 6
Suspend, off
return
}
if (Cache = 6)
{
Cache6 = %ClipboardAll%
SetTimer, TimerTip, 1500
ToolTip, Inhalt wurde in die 6. Zwischenablage kopiert!
Cache = 7
Suspend, off
return
}
if (Cache = 7)
{
Cache7 = %ClipboardAll%
SetTimer, TimerTip, 1500
ToolTip, Inhalt wurde in die 7. Zwischenablage kopiert!
Cache = 8
Suspend, off
return
}
if (Cache = 8)
{
Cache8 = %ClipboardAll%
SetTimer, TimerTip, 1500
ToolTip, Inhalt wurde in die 8. Zwischenablage kopiert!
Cache = 9
Suspend, off
return
}
return
TimerTip:
SetTimer, TimerTip, Off
ToolTip
return
Exit:
GuiClose:
ExitApp
Eventuell auch der eine oder andere Hinweis, wie das bisherige besser oder einfacher hätte gelöst werden können.
Schönen Abend noch.
Liebe Grüße,
Patrick
Re: Zwei ganz kleine Fragen... :)
In etwa so könnte man ein paar Zeilen sparen:
Man könnte auch noch Clipboard cachen (cache := Clipboard) und sehen wohin das führt.
Code: Select all
^v::
a := 1
b := 1
x := VirCache
Clipboard := Cache%x%
Tooltip, %x%. Zwischenablage`n%Clipboard%
VirCache := x >= 8 ? 1 : x+1
VirCacheResult := x
return
Re: Zwei ganz kleine Fragen... :)
Super, werde ich heute Abend in etwa so umsetzen.strobo wrote:In etwa so könnte man ein paar Zeilen sparen:Man könnte auch noch Clipboard cachen (cache := Clipboard) und sehen wohin das führt.Code: Select all
^v:: a := 1 b := 1 x := VirCache Clipboard := Cache%x% Tooltip, %x%. Zwischenablage`n%Clipboard% VirCache := x >= 8 ? 1 : x+1 VirCacheResult := x return
Bezüglich dem Kopieren und Einfügen von Dateien fällt dir auch keine Lösung ein, oder doch? ^^
Re: Zwei ganz kleine Fragen... :)
Naja, cache := Clipboard speichert zumindest den Pfad einer Datei (z.B. nach ^c im explorer).
Auf
http://www.autohotkey.com/docs/misc/Cli ... ipboardAll
wird ausserdem gezeigt wie man ClipboardAll in und (wieder) aus einer Datei bekommt.
Auf
http://www.autohotkey.com/docs/misc/Cli ... ipboardAll
wird ausserdem gezeigt wie man ClipboardAll in und (wieder) aus einer Datei bekommt.
Re: Zwei ganz kleine Fragen... :)
Moin,
welche Windows Version läuft bei Dir? Zumindest unter Win 8.1 gibt es möglicherweise Probleme mit dem Zugriff auf ClipboardAll, wenn im Explorer eine Datei zum Kopieren ausgewählt wurde => http://ahkscript.org/boards/viewtopic.php?f=14&t=3517.
welche Windows Version läuft bei Dir? Zumindest unter Win 8.1 gibt es möglicherweise Probleme mit dem Zugriff auf ClipboardAll, wenn im Explorer eine Datei zum Kopieren ausgewählt wurde => http://ahkscript.org/boards/viewtopic.php?f=14&t=3517.
Re: Zwei ganz kleine Fragen... :)
Hmm... Tatsache.just me wrote:Moin,
welche Windows Version läuft bei Dir? Zumindest unter Win 8.1 gibt es möglicherweise Probleme mit dem Zugriff auf ClipboardAll, wenn im Explorer eine Datei zum Kopieren ausgewählt wurde => http://ahkscript.org/boards/viewtopic.php?f=14&t=3517.
Zuhause nutze ich Win 8.1, damit funktioniert das einfügen kopierter Dateien nicht.
Hier auf der Arbeit läuft Win 7 und es funktioniert.
Beheben kann man das nicht, nehme ich an?
Re: Zwei ganz kleine Fragen... :)
Ich nehme an, dass sich lexikos bereits damit beschäftigt. Wenn es eine Lösung gibt, werden wird sie (hoffentlich) im nächsten Update enthalten sein.
Bis dahin halte ich die Füße still.
Bis dahin halte ich die Füße still.
Re: Zwei ganz kleine Fragen... :)
Kleines "Problemchen" - anbei erstmal mein aktueller Code:
An und für sich funktioniert nun alles genau so, wie ich es mir zum Ziel gemacht habe (mit Ausnahme des Kopierens bzw. Einfügens von Dateien).
Einzig: Wenn ich auf eine Webseite gehe und eine Grafik kopiere über Rechtsklick -> Kopieren funktioniert das nicht; im Gegenteil stürzt die Anwendung ab, wenn ich die Grafik irgendwo einfügen möchte.
Weiß einer von euch, woran das liegt?
Code: Select all
#NoEnv
#SingleInstance force
OnExit, GuiClose
;Critical, on
a := 0 ; Variabel legt fest, ob LControl losgelassen wird, 0=prüft nicht, 1=prüft
b := 0 ; Variabel legt fest, ob Label "OnClipboardChange" durchläuft oder nicht, 0=läuft durch, 1=setzt auf return
Cache = 0
VirCache = 1
CacheRun = 0
return
^v::
CacheRun:
if (CacheRun = 0)
{
Suspend, on
Send, ^v
Suspend, off
return
}
a := 1
b := 1
x := VirCache
Clipboard := Cache%x%
ClipArt := (!(Clipboard) ? "Leer" : (Clipboard>1) ? "2" : "1" )
ClipString := SubStr(ClipBoard,1,300)
CacheCheck := Cache%x%
if (CacheCheck = "")
{
VirCache = 1
GoSub, CacheRun
return
}
if (ClipArt = "Leer")
{
Tooltip, %x%. Zwischenablage`n`n~~ B I L D ~~`n
VirCache := x >= 8 ? 1 : x+1
return
}
Tooltip, %x%. Zwischenablage`n`n%ClipString%
VirCache := x >= 8 ? 1 : x+1
return
#if (a)
~lctrl up::
~rctrl up::
Suspend, on
gosub, TimerTip ;ToolTip ausschalten
a := 0
Send, ^v
VirCache = 1
b := 0
Suspend, off
return
OnClipboardChange:
ClipArt := (!(A_EventInfo) ? "Leer" : (A_EventInfo>1) ? "2" : "1" )
if (b = 1)
{
return
}
Suspend, on
if (Cache = 0)
{
Cache = 1
Suspend, off
return
}
if (Cache = 30)
{
Suspend, off
return
}
if (Cache = 1)
{
Cache1 = %ClipboardAll%
SetTimer, TimerTip, 1500
ToolTip, Inhalt in die 1. Zwischenablage kopiert!
Cache = 2
CacheRun = 1
Cache1Check = 0
if (ClipArt = 2)
{
Cache1Check = 1
}
Suspend, off
return
}
if (Cache = 2)
{
Cache2 = %Cache1%
Cache1 = %ClipboardAll%
SetTimer, TimerTip, 1500
ToolTip, Inhalt wurde in die 2. Zwischenablage kopiert!
Cache = 3
Cache2Check = 0
if (ClipArt = 2)
{
Cache2Check = 1
}
Suspend, off
return
}
if (Cache = 3)
{
Cache3 = %Cache2%
Cache2 = %Cache1%
Cache1 = %ClipboardAll%
SetTimer, TimerTip, 1500
ToolTip, Inhalt wurde in die 3. Zwischenablage kopiert!
Cache = 4
Cache3Check = 0
if (ClipArt = 2)
{
Cache3Check = 1
}
Suspend, off
return
}
if (Cache = 4)
{
Cache4 = %Cache3%
Cache3 = %Cache2%
Cache2 = %Cache1%
Cache1 = %ClipboardAll%
SetTimer, TimerTip, 1500
ToolTip, Inhalt wurde in die 4. Zwischenablage kopiert!
Cache = 5
Cache4Check = 0
if (ClipArt = 2)
{
Cache4Check = 1
}
Suspend, off
return
}
if (Cache = 5)
{
Cache5 = %Cache4%
Cache4 = %Cache3%
Cache3 = %Cache2%
Cache2 = %Cache1%
Cache1 = %ClipboardAll%
SetTimer, TimerTip, 1500
;ToolTip, Inhalt wurde in die 5. Zwischenablage kopiert!
Cache = 6
Cache5Check = 0
if (ClipArt = 2)
{
Cache5Check = 1
}
Suspend, off
return
}
if (Cache = 6)
{
Cache6 = %Cache5%
Cache5 = %Cache4%
Cache4 = %Cache3%
Cache3 = %Cache2%
Cache2 = %Cache1%
Cache1 = %ClipboardAll%
SetTimer, TimerTip, 1500
;ToolTip, Inhalt wurde in die 6. Zwischenablage kopiert!
Cache = 7
Cache6Check = 0
if (ClipArt = 2)
{
Cache6Check = 1
}
Suspend, off
return
}
if (Cache = 7)
{
Cache7 = %Cache6%
Cache6 = %Cache5%
Cache5 = %Cache4%
Cache4 = %Cache3%
Cache3 = %Cache2%
Cache2 = %Cache1%
Cache1 = %ClipboardAll%
SetTimer, TimerTip, 1500
;ToolTip, Inhalt wurde in die 7. Zwischenablage kopiert!
Cache = 8
Cache7Check = 0
if (ClipArt = 2)
{
Cache7Check = 1
}
Suspend, off
return
}
if (Cache = 8)
{
Cache8 = %Cache7%
Cache7 = %Cache6%
Cache6 = %Cache5%
Cache5 = %Cache4%
Cache4 = %Cache3%
Cache3 = %Cache2%
Cache2 = %Cache1%
Cache1 = %ClipboardAll%
SetTimer, TimerTip, 1500
;ToolTip, Inhalt wurde in die 8. Zwischenablage kopiert!
Cache = 9
Cache8Check = 0
if (ClipArt = 2)
{
Cache8Check = 1
}
Suspend, off
return
}
return
TimerTip:
SetTimer, TimerTip, Off
ToolTip
return
Exit:
GuiClose:
ExitApp
Einzig: Wenn ich auf eine Webseite gehe und eine Grafik kopiere über Rechtsklick -> Kopieren funktioniert das nicht; im Gegenteil stürzt die Anwendung ab, wenn ich die Grafik irgendwo einfügen möchte.
Weiß einer von euch, woran das liegt?
Re: Zwei ganz kleine Fragen... :)
Moin,
diese Logik kann ich nicht wirklich nachvollziehen:
Das hier ClipArt := (!(Clipboard) ? "Leer" : (Clipboard>1) ? "2" : "1" ) sieht so aus, als würdest Du versuchen, den A_EventInfo Teil aus OnClipboardChange: nachzuahmen, es macht aber so nur wenig Sinn. Cache%x% wird zuerst nach Clipboard und dann noch einmal nach CacheCheck übertragen. Wenn Du interne Prüfungen durchführen willst, solltest Du das mit der internen Variablen machen, und erst nach Prüfung das Clipboard verändern.
Versuch es mal mit folgenden Änderungen:
Vielleicht läuft das Skript in einer Schleife, bis der Stack überläuft.
diese Logik kann ich nicht wirklich nachvollziehen:
Code: Select all
Clipboard := Cache%x%
ClipArt := (!(Clipboard) ? "Leer" : (Clipboard>1) ? "2" : "1" )
ClipString := SubStr(ClipBoard,1,300)
CacheCheck := Cache%x%
if (CacheCheck = "")
{
VirCache = 1
GoSub, CacheRun
return
}
if (ClipArt = "Leer")
{
Tooltip, %x%. Zwischenablage`n`n~~ B I L D ~~`n
VirCache := x >= 8 ? 1 : x+1
return
}
Tooltip, %x%. Zwischenablage`n`n%ClipString%
VirCache := x >= 8 ? 1 : x+1
Versuch es mal mit folgenden Änderungen:
Code: Select all
^v::
Iterations := 0 ; <<<<< einfügen
CacheRun:
...
...
...
if (CacheCheck = "")
{
VirCache = 1
Iterations++ ; <<<<< einfügen
ToolTip, Aufruf CacheRun %Iterations% ; <<<<< einfügen
GoSub, CacheRun
return
}
Re: Zwei ganz kleine Fragen... :)
Es macht aber doch genau das, was ich damit erreichen wollte.just me wrote:Das hier ClipArt := (!(Clipboard) ? "Leer" : (Clipboard>1) ? "2" : "1" ) sieht so aus, als würdest Du versuchen, den A_EventInfo Teil aus OnClipboardChange: nachzuahmen, es macht aber so nur wenig Sinn.
Werde es trotzden abändern, wenn ich zuhause bin.
Du hast Recht, das tut es. Es läuft sehr schnell hoch und beendet sich dann.just me wrote:Versuch es mal mit folgenden Änderungen:Vielleicht läuft das Skript in einer Schleife, bis der Stack überläuft.Code: Select all
^v:: Iterations := 0 ; <<<<< einfügen CacheRun: ... ... ... if (CacheCheck = "") { VirCache = 1 Iterations++ ; <<<<< einfügen ToolTip, Aufruf CacheRun %Iterations% ; <<<<< einfügen GoSub, CacheRun return }
Woran liegt das? Warum nur, wenn ich eine Grafik aus dem Web kopiere und bei anderen nicht?
Kann man dem entgegen steuern?
Liebe Grüße,
Patrick
Re: Zwei ganz kleine Fragen... :)
Es liegt wohl daran, dass bei jedem Aufruf von CacheRun immer wieder die Bedingung if (CacheCheck = "") erfüllt ist, was dann wieder zu einem Aufruf von CacheRun führt, u.s.w., u.s.w.
Ich bin jetzt erst einmal ein paar Tage offline. Aber es wird sich schon ein anderer Helfer finden.
Viel Glück!
Ich bin jetzt erst einmal ein paar Tage offline. Aber es wird sich schon ein anderer Helfer finden.
Viel Glück!
Re: Zwei ganz kleine Fragen... :)
überträgt sich doch auf ^v (im Beispiel wars ^h).; ... (hier nicht den Wert speichern)
Du wolltest das Clipboard mit (sowas wie) ctrl up füllen, dann gehören die entsprechenden
Code-zeilen auch da hin.
Für (cache1 = "") kann das skript in einer "schleife" landen (VirCache = 1 Absicht?).
Re: Zwei ganz kleine Fragen... :)
Ich muss die Zwischenablage bereits mit ^v füllen, um eine Vorschau des Inhalts des jeweiligen virtuellen Zwischenspeichers in einem Tooltip wiedergeben zu können, ehe dieser dann mit dem loslassen der Control-Taste gesendet wird.strobo wrote:überträgt sich doch auf ^v (im Beispiel wars ^h).; ... (hier nicht den Wert speichern)
Du wolltest das Clipboard mit (sowas wie) ctrl up füllen, dann gehören die entsprechenden
Code-zeilen auch da hin.
Beziehe ich mich dabei auf die Variable, welche das Clipboard füllt anstelle des CLipboards, funktionierts nicht.
Ersteres dient dazu zu überprüfen, ob der aktuell aufgerufene "virtuelle Zwischenspeicher" leer ist. Wenn er leer ist, wird die Variable "VirCache" auf 1 gesetzt, um nachfolgend wieder bei der 1. Zwischenablage zu landen.strobo wrote:Für (cache1 = "") kann das skript in einer "schleife" landen (VirCache = 1 Absicht?).
Re: Zwei ganz kleine Fragen... :)
Nö, cache%x% (o.ä.) tuts auch:pIch muss die Zwischenablage bereits mit ^v füllen, um eine Vorschau des Inhalts des jeweiligen virtuellen Zwischenspeichers in einem Tooltip wiedergeben zu können
Joa, und wenn (cache1 = ""), dann ...Wenn er leer ist, wird die Variable "VirCache" auf 1 gesetzt, um nachfolgend wieder bei der 1. Zwischenablage zu landen.
Re: Zwei ganz kleine Fragen... :)
Offensichtlich nicht.strobo wrote:Nö, cache%x% (o.ä.) tuts auch:pIch muss die Zwischenablage bereits mit ^v füllen, um eine Vorschau des Inhalts des jeweiligen virtuellen Zwischenspeichers in einem Tooltip wiedergeben zu können
Wenn ich mich mit ClipString := SubStr(ClipBoard,1,300) nicht auf das Clipboard beziehe sondern auf cache1, erscheint bei mir im Tooltip keine Textvorschau des Inhalts der Variable.
Habe es eben noch einmal ausprobiert.
Ist jetzt ohnehin notwendig (nehme ich an?), da ich, sofern die Vorschau ein Bild ist, dieses verkleinert anstelle des Tooptips anzeigen lasse. Dabei beziehe ich mich auf ein Script über GDIP, das Bilder aus dem Arbeitsspeicher verwenden und anzeigen lassen kann.
Dann ist die Frage, weshalb cache1 = "" ist, wenn ich eine Grafikdatei aus dem Internet/Browser kopiere.strobo wrote:Joa, und wenn (cache1 = ""), dann ...Wenn er leer ist, wird die Variable "VirCache" auf 1 gesetzt, um nachfolgend wieder bei der 1. Zwischenablage zu landen.
Cache1 kann ansonsten, sofern man nach Anwendungsstart das erste mal etwas kopiert, eigentlich nicht mehr leer sein.
Last edited by Scrypton on 24 May 2014, 04:40, edited 1 time in total.
Re: Zwei ganz kleine Fragen... :)
Offensichtlich nicht.
Code: Select all
Clipboard := Cache%x%
Mag sein, dass clipboard in deiner umgebung buggy ist.
Cache1 kann ansonsten, sofern man nach Anwendungsstart das erste mal etwas kopiert, eigentlich nicht mehr leer sein.
Code: Select all
Cache = 0
;...
OnClipboardChange:
...
if (Cache = 0)
{
Cache = 1
Suspend, off
return
}
Who is online
Users browsing this forum: hitman and 34 guests