Jump to content

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

Link aus Chrome per Kontextmenü in Programm kopieren


  • Please log in to reply
17 replies to this topic
GreenDD
  • Members
  • 8 posts
  • Last active: Dec 14 2012 07:37 PM
  • Joined: 05 Dec 2012
Hallo AutoHotkey Community,

ich bin erst vor ein paar Tage auf AutoHotkey gestoßen und schon steht eine für mich recht großes Projekt an.
Ich hab durch einige Tutorials gelesen doch noch bin ich auf keinen grünen Zweig gekommen, wie ich mein Projekt am besten angehen sollte. Ich hoffe ihr könnt mir da helfen!

Mein Ziel ist Folgendes:

Ich möchte einen Link aus Chrome mit dem Kontextmenü kopieren etwas verändern und diesen automatisch in ein anderes Programm einfügen: Derzeit sind meine Arbeitsschritte folgende:

Rechtsklick - Adresse des Links Kopieren (dieser wäre dann z.B. tel:xxxx-xxxx) - verändern der des Links in eine Telefonnummer nach dem Schema (00xxxxxxxx) - Öffnen des entsprechenden Programms - Einfügen der veränderten Nummer - klick auf eine weitere Oberfläche um einen Anruf zu tätigen.

Noch hilfreicher wäre es, wenn ich direkt mit einem Rechtsklick, im Kontextmenü einen Anruf auf die Nummer starten könnte.

Vielen Dank im Voraus für jede Hilfe dir ihr mir geben könnt!

SAPlayer
  • Members
  • 403 posts
  • Last active: Apr 11 2014 04:45 PM
  • Joined: 06 Nov 2012
So wie du es beschrieben hast (Kontextmenü), benötigst du wahrscheinlich ein Addon.
Es sollte aber möglich sein, durch das Markieren der Telefonnummer und dem Drücken eines Hotkeys das selbe zu erledigen.

ruespe
  • Members
  • 567 posts
  • Last active: Dec 01 2014 07:59 PM
  • Joined: 17 Jun 2008
Ein Kontextmenü ist zwar möglich, das Standardmenü von Chrome kannst du aber nicht einfach erweitern. Du könntest zwar ein eigenes Menü anzeigen lassen mit einer Kombination aus Taste (z.B. Strg) und Rechtsklick. Ich würde dann aber gleich auf SAPlayers Vorschlag setzen. Ist am einfachsten.

Du brauchst dann eigentlich nur die Kommandos
- Send
- ControlSend

Lies dich mal ein, bei Fragen kriegst du hier immer Hilfe.

GreenDD
  • Members
  • 8 posts
  • Last active: Dec 14 2012 07:37 PM
  • Joined: 05 Dec 2012

Danke für eure Antworten! 

 

Schade, die meisten Personen für die das ganze erstellt werden soll, nutzen leider ungerne Tastenkombinationen, aber vorerst sollte es als Tastenkombination ausreichen. Besser so als gar nicht. 

 

Ich bin heute schon ein ganze Stückchen weiter gekommen. Bisher sieht es ganz gut aus und die Wahrscheinlichkeit das das ganze nach Weihnachten laufen könnte steigt! 

 

 

Gruß Green



SAPlayer
  • Members
  • 403 posts
  • Last active: Apr 11 2014 04:45 PM
  • Joined: 06 Nov 2012

Wie gesagt, wenn du  Fragen oder Probleme hast kannst du dich gerne hier melden.

Nur ein ganzes Script machen wir eher ungern, deine Aussagen hören sich ja schon ganz vielversprechend an ;)



GreenDD
  • Members
  • 8 posts
  • Last active: Dec 14 2012 07:37 PM
  • Joined: 05 Dec 2012

... Nur ein ganzes Script machen wir eher ungern, deine Aussagen hören sich ja schon ganz vielversprechend an wink.png


Klar das verlangt auch keiner! Ich zumindest nicht stand am Anfang nur sehr auf dem Schlauch und wollte mal so mehr oder weniger in die Runde fragen ob das schon mal jemand versucht hat.
 
Ich werde das ganze Skript morgen mal in der Praxis testen.

GreenDD
  • Members
  • 8 posts
  • Last active: Dec 14 2012 07:37 PM
  • Joined: 05 Dec 2012

Hey Leute im großen und ganzen läuft der Skript, mir fehlt nur noch die komplette Automatisierung so das man auf nix mehr achten muss.

 

Wenn das Fester vorher geöffnet wird startet der Anruf so wie er soll, jedoch ist das Fenster in der Regel nicht nur minimiert sonder ausgeblendet und erscheint nur rechts unten bei der Uhr so wie z.B. Dropbox, Spotify usw. wie kann ich das Fester in dem Fall ansprechen? - IfWinExist scheint nicht auszureichen. 

 

Zudem gibt es noch das Problem, dass wenn das Programm geschlossen wurde der Start etwas länger dauert, (leider immer unterschiedlich) hier hab ich es mit WinWaitActive versucht jedoch scheint da auch etwas nicht zu passen.

 

RALT & LButton::
{
BlockInput, MouseMove
Click right
Send, {Down 5}{Enter}

IfWinExist, ahk_class ahk_class #32770
	WinActivate, ahk_class ahk_class #32770
Else
    Run C:\Program Files (x86)\Aastra\OpenCTI.exe
	WinActivate, ahk_class ahk_class #32770
	WinWaitActive, ahk_class ahk_class #32770
	Return

StringCaseSense On
work := clipboard
StringReplace work, work, t, , all
StringReplace work, work, e, , all
StringReplace work, work, l, , all
StringReplace work, work, -, , all
StringReplace work, work, :, , all
StringReplace work, work, %A_Space%, , all
clipboard := work

click 90,90
send 0^v
send {tab}
send {Enter}

;OSD ("Starte Telefon Anruf")
BlockInput, Off
}

 

 Ich hoffe ihr könnt mir hier weiter helfen! Gruß Green



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

@Fenster Ansprechen:

Versuchen kannste

DetectHiddenWindows, On

oder du lässt " ifwinexist,... else " weg, häufig wissen die .exen mit anderen Instanzen umzugehen (cpu-load mäßig nicht die beste lsg)

 

ich seh grad der if else block, ist vllt eher so gemeint:

IfWinExist, ahk_class #32770
    WinActivate, ahk_class #32770
Else
    {
    Run C:\Program Files (x86)\Aastra\OpenCTI.exe
    ;WinWait, ahk_class #32770 ;?
    WinActivate, ahk_class #32770
    WinWaitActive, ahk_class #32770
    }
  


Regards,
Babba

ruespe
  • Members
  • 567 posts
  • Last active: Dec 01 2014 07:59 PM
  • Joined: 17 Jun 2008

Kommentiere bitte deinen Code mal. Es sind einige Fehler drin, die die Logik leider etwas unverständlich machen. Vor allem kann ich nicht erkennen, wie deine Fragen zu dem Code passen.

 

Und Vorsicht mit der ahk_class #32770. Diese Klasse hat jeder Windows-Standard-Requester wie z.B. das Druckfenster, das Dateidialogfenster etc.



GreenDD
  • Members
  • 8 posts
  • Last active: Dec 14 2012 07:37 PM
  • Joined: 05 Dec 2012
RALT & LButton::
{
BlockInput, MouseMove
Click right
Send, {Down 5}{Enter}

 

Öffnet Chrome Kontextmenü und kopiert den Link in die Zwischenablage, dieser entspricht dann dem Muster: tel:xxxx-xxx xxx

 

IfWinExist, ahk_class #32770
    WinActivate, ahk_class #32770
Else
    {
    Run C:\Program Files (x86)\Aastra\OpenCTI.exe
    WinActivate, ahk_class #32770
    WinWaitActive, ahk_class #32770
    }

 

Starte bzw. aktivieren des Programmes, eine andere Aktivierung hab bisher nicht funktionier, was würdest du vorschlagen? 

 

StringCaseSense On
work := clipboard
StringReplace work, work, t, , all
StringReplace work, work, e, , all
StringReplace work, work, l, , all
StringReplace work, work, -, , all
StringReplace work, work, :, , all
StringReplace work, work, %A_Space%, , all
clipboard := work

 

Löscht die Zeichen aus dem Link, so wird aus ( tel:xxxx-xxx xxx -> xxxxxxxxxx )

 

click 90,90
send 0^v
send {tab}
send {Enter}

 

Aktiviert das Fenster für die Telefonnummer, fügt die Nummer mit einer zusätzlichen "0" ein und startet anschließend den Anruf.



SAPlayer
  • Members
  • 403 posts
  • Last active: Apr 11 2014 04:45 PM
  • Joined: 06 Nov 2012
Habe mal 2 kleine Verbesserungen für dich:

RALT & LButton::
{
SendInput, ^c


Und:

work := SubStr(clipboard, 5)
StringReplace work, work, -, , all
StringReplace work, work, %A_Space%, , all

click 90,90
send 0%work%


GreenDD
  • Members
  • 8 posts
  • Last active: Dec 14 2012 07:37 PM
  • Joined: 05 Dec 2012

@SAPlayer

RALT & LButton::

{

SendInput, ^c

 

Ist nicht einfach so möglich das hierbei kein Text markiert ist, oder täusche ich mich und es funktioniert ohne das ein Text markiert ist?



SAPlayer
  • Members
  • 403 posts
  • Last active: Apr 11 2014 04:45 PM
  • Joined: 06 Nov 2012
Uhh, evtl. habe ich da was übersehen, das kann natürlich sein.

PS: Wie wird dann aber bei dir der Text ausgewählt?

ruespe
  • Members
  • 567 posts
  • Last active: Dec 01 2014 07:59 PM
  • Joined: 17 Jun 2008

 

Wenn das Fester vorher geöffnet wird startet der Anruf so wie er soll, jedoch ist das Fenster in der Regel nicht nur minimiert sonder ausgeblendet und erscheint nur rechts unten bei der Uhr so wie z.B. Dropbox, Spotify usw. wie kann ich das Fester in dem Fall ansprechen? - IfWinExist scheint nicht auszureichen.

 

Solche Programme besitzen in der Regel auch ein Fenster, nur ist dies versteckt. Erkennen lassen sich diese in der Tat nach DetectHiddenWindows, On. Du kannst aber auch versuchen, das Fenster anzusprechen, ohne es vorher zu aktivieren. Dies machst du mit ControlSend.

 

Ansonsten scheint dein Code jetzt soweit zu passen. Du hast schon die richtigen Stellen korrigiert. Nur deine Fenstersuche nach ahk_class #32770 würde ich noch durch einen eindeutigen Titel (falls das Fenster einen hat) präzisieren.



GreenDD
  • Members
  • 8 posts
  • Last active: Dec 14 2012 07:37 PM
  • Joined: 05 Dec 2012

@SAPlayer kein Google Chrome Nutzer? wink.png Bild zu Erklärung: https://www.dropbox..../ChromeLink.png

 

 

@rruespe Ich hab es nun mal mit "DetectHiddenWindows, On" gelöst, da das Fenstern vorerst während dem Telefonat aktiv sein soll.

 

 

Berichte wie das ganze nun läuft folgen in kürze.