Deutsches AutoHotkey Homepage AutoHotkey Community
Wir helfen uns gegenseitig aus der Patsche
 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   RegistrierenRegistrieren 
 ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Rechte Maustaste für Secondary Modus - DragDrop Problem
Gehe zu Seite 1, 2  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    AutoHotkey Community Foren-Übersicht -> Ich brauche Hilfe!
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
rien-ne-va-plus



Anmeldedatum: 02.03.2008
Beiträge: 26
Wohnort: Berlin

BeitragVerfasst am: So März 02, 2008 9:07 pm    Titel: Rechte Maustaste für Secondary Modus - DragDrop Problem Antworten mit Zitat

Hi,

ich wusste nicht, wie ich mein Problem am besten in den Titel packe, aber ich versuchs mal zu erklären:

Ich habe ein simples Skript geschrieben, mit dem ich bei gedrückter rechter Maustaste mit dem Mausrad die Lautstärke regulieren kann (Hoch/Runter und Mute beim Drücken). Mein Problem ist, dass ich die rechte Maustaste jetzt nicht mehr für Draf&Drop Aktionen unter Windows benutzen kann. Hat da jemand ne Idee für nen Workaround?

Code:
RButton::
SecMode = 1
SecUse = 0
Return

$WheelUp::
If SecMode
{
   Send {Volume_Up}
   SecUse = 1
}
Else
   Send {WheelUp}
Return

$WheelDown::
If SecMode
{
   Send {Volume_Down}
   SecUse = 1
}
Else
   Send {WheelDown}
Return

RButton Up::
SecMode = 0
If(SecUse = 0)
{
   Send {RButton}
}
Return

LButton::
If SecMode
{
   Send {F5}
   SecUse = 1
}
Else
{
   Send {LButton Down}
}
Return

LButton Up::
   Send {LButton Up}
Return


danke

rien
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Dbof



Anmeldedatum: 10.01.2008
Beiträge: 253
Wohnort: C:\

BeitragVerfasst am: So März 02, 2008 9:14 pm    Titel: Antworten mit Zitat

Code:
~RButton


Zitat:
~ =When the hotkey fires, its key's native function will not be blocked (hidden from the system). In both of the below examples, the user's click of the mouse button will be sent to the active window:

~RButton::MsgBox You clicked the right mouse button.
~RButton & C::MsgBox You pressed C while holding down the right mouse button.Notes: 1) Unlike the other prefix symbols, the tilde prefix is allowed to be present on some of a hotkey's variants but absent on others; 2) Special hotkeys that are substitutes for alt-tab always ignore the tilde prefix; 3) The tilde prefix is ignored on Windows 95/98/ME


MfG, Dbof
_________________
mein spontanes ControlSend - Tutorial:

http://de.autohotkey.com/forum/viewtopic.php?p=25173#25173
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
rien-ne-va-plus



Anmeldedatum: 02.03.2008
Beiträge: 26
Wohnort: Berlin

BeitragVerfasst am: So März 02, 2008 9:20 pm    Titel: Antworten mit Zitat

danke,

das funktioniert soweit, natürlich öffnet sich jetzt immer das kontextmenü...
aber ich schätze man kann nicht alles haben, oder kennt jemand noch einen anderen lösungsansatz?

mfg

rien
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Dbof



Anmeldedatum: 10.01.2008
Beiträge: 253
Wohnort: C:\

BeitragVerfasst am: So März 02, 2008 9:22 pm    Titel: Antworten mit Zitat

Wolltest du denn nicht, dass der Drag&Drop wieder funktioniert? Unter Windows wird beim Drag&Drop mit rechter Maustaste doch immer ein Kontektmenü geöffnet, oder irre ich mich in meiner Aussage ?
_________________
mein spontanes ControlSend - Tutorial:

http://de.autohotkey.com/forum/viewtopic.php?p=25173#25173
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
rien-ne-va-plus



Anmeldedatum: 02.03.2008
Beiträge: 26
Wohnort: Berlin

BeitragVerfasst am: So März 02, 2008 9:35 pm    Titel: Antworten mit Zitat

jo, aber wenn ich die rechte maustaste benutze, um die lautstärke zu verändern (d.h. während der gedrückten rechten maustaste wird das mausrad gedreht) dann soll sich das menü nicht öffnen.

bzw, dann muss drag und drop natürlich auch nicht funktionieren. wenn das mausrad nicht benutzt wird soll die rechte maustaste regulär funktionieren.

ist das möglich?

mfg

rien
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
denick



Anmeldedatum: 15.09.2006
Beiträge: 1073
Wohnort: Berlin

BeitragVerfasst am: Mo März 03, 2008 7:08 am    Titel: Antworten mit Zitat

Moin,

manchmal ist es leichter als gedacht:
Code:
RButton & WheelUp::
   MsgBox, Send {Volume_Up}
Return

RButton & WheelDown::
   MsgBox, Send {Volume_Up}
Return

RButton & LButton::
   MsgBox, Send {F5}
Return

RButton Up::
   Send, {RButton}
Return

_________________
Hilfe zur Hilfe

(de)nick
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
rien-ne-va-plus



Anmeldedatum: 02.03.2008
Beiträge: 26
Wohnort: Berlin

BeitragVerfasst am: Mo März 03, 2008 5:40 pm    Titel: Antworten mit Zitat

Danke, das ist schonmal das gleiche in einfacher.

Bloß leider kann ich die rechte Maustaste immernoch nicht als reguläre Drag&Drop Maustaste benutzen wenn das Skript läuft, irgendwie wird das geblockt.

MfG

rien
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ruespe



Anmeldedatum: 10.02.2008
Beiträge: 28

BeitragVerfasst am: Mo März 03, 2008 8:33 pm    Titel: Antworten mit Zitat

Komisch. Bei mir funktionierts genau so.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
rien-ne-va-plus



Anmeldedatum: 02.03.2008
Beiträge: 26
Wohnort: Berlin

BeitragVerfasst am: Mo März 03, 2008 10:52 pm    Titel: Antworten mit Zitat

ernsthaft? muss ich noch irgendetwas zusätzlich hinzufügen? ich habe nur diesen text in eine datei kopiert und das skript ausgeführt. wenn ich jetzt auf ein desktopobjekt klicke wird dieses nicht markiert und ich kann es nicht verschieben.

wenn ich das skript ausschalte funktioniert das ohne probleme, das wird daran liegen, dass der rechtsklick abgefangen wird. mit tilde wird der rechtsklick zwar durchgereicht, ich habe aber ein rechtsklickmenü selbst wenn ich nur die lautstärke ändern will-

muss man hier einen komplexeren workaround schreiben?

mfg

rien
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
denick



Anmeldedatum: 15.09.2006
Beiträge: 1073
Wohnort: Berlin

BeitragVerfasst am: Di März 04, 2008 8:01 am    Titel: Antworten mit Zitat

Moin,

ich hatte wohl das Problem mit dem "Drag&Drop" nicht wirklich verstanden. Und ich habe keine Ahnung, wie man das "Drag&Drop" aktiv halten könnte, ohne dass auch die Kontextmenüfunktion aktiv bleibt. Beide werden ja durch dieselben Ereignisse (rechts down, rechts up) ausgelöst.
_________________
Hilfe zur Hilfe

(de)nick
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
rien-ne-va-plus



Anmeldedatum: 02.03.2008
Beiträge: 26
Wohnort: Berlin

BeitragVerfasst am: Di März 04, 2008 4:29 pm    Titel: Antworten mit Zitat

ok, so wie du es beschreibst habe ich mich vielleicht etwas unverständlich ausgedrückt. ich will natürlich, dass auch die kontextmenüfunktion erhalten bleibt. allerdings nicht, wenn gleichzeitig mit gedrückter rechter maustaste das mausrad bedient wurde.

ich denke hier ist die schwierigkeit. es ist kein problem den rechtsklick abzufangen, dann wartet man bis die rechte maustaste losgelassen wird, checkt ob derzeit eine andere (skriptrelevante) taste gedrückt wurde (mausrad) und entscheidet dann, ob der klick durchkommen soll oder nicht.

die schwierigkeit scheint mir das drag&drop mit der rechten maustaste zu sein, weil man hier bei rbutton up ebenfalls rbuttonup auslösen muss. evtl muss man die drag&drop funktion per skript heimlich nachziehen, dass wäre natürlich insofern suboptimal als man nicht sieht, wohin man seine objekte zieht...

je mehr ich darüber nachdenke, desto mehr denke ich, dass das was ich will nicht möglich ist, weil man ja erst bei rbutton up weiß, ob jetzt eine zusatzfunktion betätigt wurde oder nicht. da ist der drag&drop vorgang aber schon beendet.

vielleicht hat ja noch jemand eine idee.

mfg

rien
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
denick



Anmeldedatum: 15.09.2006
Beiträge: 1073
Wohnort: Berlin

BeitragVerfasst am: Di März 04, 2008 5:00 pm    Titel: Antworten mit Zitat

Moin,

unmöglich ist es nicht, man kann beim Versuch, es zu realisieren, aber ziemlich viele Fehler machen. Das hier scheint jetzt aber ziemlich stabil zu laufen:
Code:
#NoEnv
SetBatchLines, -1
SendMode, Input
Time := 500    ; Wartezeit nach Rechtsklick auf Aktionen
Timer := 50    ; Intervall des Timeraufrufs
Start := 0
Aktion := False
HotKeys("Off")
HotKey, $RButton Up, Off
Return
; ------------------------------------------------------------------------------
$RButton::
ToolTip
HotKeys("On")
Aktion := False
Start := 0
SetTimer, Check_RButton, %Timer%
Return
; ------------------------------------------------------------------------------
$RButton Up::
HotKey, %A_ThisHotkey%, Off
Click, Up Right
ToolTip
Return
; ------------------------------------------------------------------------------
$WheelUp::
Aktion := True
ToolTip, Send {Volume_Up}
Start := 0
Return
; ------------------------------------------------------------------------------
$WheelDown::
Aktion := True
ToolTip, Send {Volume_Down}
Start := 0
Return
; ------------------------------------------------------------------------------
$LButton::
Aktion := True
ToolTip, Send {F5}
Start := 0
Return
; ------------------------------------------------------------------------------
Check_RButton:
If (Start = 0) {
   Start := A_TickCount
}
If (!GetKeyState("RButton", "P")) {
   SetTimer, Check_RButton, Off
   HotKeys("Off")
   ToolTip
   If (!Aktion) {
      Click, Right
   }
} Else {
   If (A_TickCount - Start > Time) {
      ToolTip
      SetTimer, Check_RButton, Off
      HotKeys("Off")
      If (!Aktion) {
         Click, Down Right
         HotKey, $RButton Up, On
      }
   }
}
Return
; ------------------------------------------------------------------------------
HotKeys(OnOff) {
   Global
   HotKey, $WheelUp, %OnOff%
   HotKey, $WheelDown, %OnOff%
   HotKey, $LButton, %OnOff%
}

Beim Drag&Drop gibt es allerdings die in Time angegebene Verzögerung, bis der Rechtsklick zugreift. Und auf meinem aktuellen System zusätzlich manchmal merkwürdige Interaktionen mit der Taskleiste.

Na ja, immerhin etwas!
_________________
Hilfe zur Hilfe

(de)nick
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
halweg



Anmeldedatum: 05.01.2006
Beiträge: 782
Wohnort: Dresden

BeitragVerfasst am: Di März 04, 2008 5:03 pm    Titel: Antworten mit Zitat

Ich habe bei mir die linke obere Mauszusatztaste auf CTRL gelegt. Damit kann ich zum Beispiel in Word oder Excel durch Drücken dieser Taste und Bewegen des Mausrades den Zoom ändern.
Wenn du zwei zusätzliche Daumentasten hast, hast du m.E. auch genügend Möglichkeiten, über Modifier wie SHIFT und CTRL dem Mausrad Sonderfunktionen zu geben.

Mit ein Paar Tricks schaffst des sogar, die Modifier-Funktion der beiden Daumentasten parallel zum Auslösen zusätzlicher und sogar mehrfacher Befehle zu nutzen (s. mein Codebeispiel im anderen Thread). meld dich, falls du Codeschnipsel für diese Kombination "Dauerdrücken" und "Einmal-/Mehrfachklicken" brauchst.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
rien-ne-va-plus



Anmeldedatum: 02.03.2008
Beiträge: 26
Wohnort: Berlin

BeitragVerfasst am: Di März 04, 2008 7:14 pm    Titel: Antworten mit Zitat

@denick: danke, dass du dir die mühe gemacht hast, das skript zu schreiben. ich hatte die gleiche idee mit dem kurzen zeitlichen abwarten, hatte aber noch nicht begonnen, das skript dazu zu schreiben. ich sehe ein, dass es keine andere möglichkeit gibt, diese idee umzusetzen.

@halweg: meine beiden daumentasten sind ja inwzischen schon doppelt belegt, mit normalem klick (vor/zurück) und bei gedrückt halten mit itunes weiter/zurück - meinst du dass könnte man noch ausweiten, damit ich die rechte-maustaste-problematik umgehe? ich wollte das ganze so intuitiv wie möglich lassen...

mfg

rien
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
halweg



Anmeldedatum: 05.01.2006
Beiträge: 782
Wohnort: Dresden

BeitragVerfasst am: Di März 04, 2008 10:59 pm    Titel: Antworten mit Zitat

rien-ne-va-plus hat Folgendes geschrieben:
daumentasten sind ja inwzischen schon doppelt belegt, mit normalem klick (vor/zurück) und bei gedrückt halten mit itunes weiter/zurück - meinst du dass könnte man noch ausweiten, damit ich die rechte-maustaste-problematik umgehe? ich wollte das ganze so intuitiv wie möglich lassen...

Grundsätzlich: es ist tatsächlich äußerst wichtig, dass alle Tastenkombis schön intuitiv sind. Sonst blickts du irgendwann wirklich nicht mehr durch.

Aber nach meinen Erfahrungen spricht nichts dagegen, der gleichen Taste in verschiedenen Programmen ähnliche Funktionen zu geben. Also Vor / zurück im Browser (falls du "vor" überhaupt brauchst) und weiter/zurück in itunes und dann je nach Kontext die eine oder andere Funktion auslösen.

Dann hättest du schon wieder ein paar Möglichkeiten mehr gewonnen.

Bei mir habe ich aber irgenwann festgelegt, dass die 5 Mausknöpfe nur bei Aktionen zum Einsatz kommen, wo die Mauspositon oder das aktive Fenster eine Rolle spielen. Alles andere lege ich auf eine meiner 25 selbstbemalten zusätzlichen Tasten am Microsoft Keyboard. Lediglich die "zurück" Funktion ist "kontextabhängig" und liegt deshalb auf der mittleren Maustaste.

Ja und dann kann man tatsächlich zwischen gedrückt-halten-und-nebenbei-eine-Taste-bedienen und gedrückt-halten-und-loslassen unterscheiden ...

Wichtig für dich ist vielleicht, zu überlegen, ob du deine selbst gemachten Tastenbelegungen einmal am Tag oder einmal in 5 Minuten brauchst und ob du in einem Jahr 5 oder 50 Tastenbelegungen haben wirst. Davon hängt dann ab, wie intuitiv alles sein muss, ob du ein Keyboard mit mehr Tasten brauchst und vor allem, wieviel Aufwand sich für das Ganze lohnt.

Es sei denn du wirst Programmierer als Leidenschaft - das sind die Jungs hier im Forum, die, wenn du ein winzigkleines Problem hast dir sofort 500 Zeilen Programm schreiben Wink
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    AutoHotkey Community Foren-Übersicht -> Ich brauche Hilfe! Alle Zeiten sind GMT
Gehe zu Seite 1, 2  Weiter
Seite 1 von 2

 
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de