Jump to content

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

Aktuelle Firefox-Url auslesen


  • Please log in to reply
18 replies to this topic
Johnny R
  • Members
  • 54 posts
  • Last active: Sep 18 2015 05:36 AM
  • Joined: 03 Nov 2012

Ich hatte mich im alten Forum schon einmal mit diesem Problem gemeldet. Da gab es auch eine Lösung, die DDE verwendete, vgl.:

http://www.autohotke...opic.php?t=5638

 

Das ging auch lange Zeit gut. Doch jetzt, mit AHK_L, habe ich mit DDE plötzlich Probleme. Das Skript funktioniert nicht mehr richtig. Kennt noch jemand einen anderen Weg, die im aktiven Firefox-Tab geöffnete Url auszulesen, am Besten ohne DDE? Das muß doch auch irgendwie unkomplizierter gehen, oder?



garry
  • Spam Officer
  • 3219 posts
  • Last active: Sep 20 2018 02:47 PM
  • Joined: 19 Apr 2005

Beispiel, zeigt/speichert aktuellen URL , Firefox ,  XP  (drücke alt+F8)

#persistent
*~$!F8::
   c1=
   clipboard=
   send,!s
   send,^c
   clipwait
   C1:=clipboard
msgbox,%c1%
return



Johnny R
  • Members
  • 54 posts
  • Last active: Sep 18 2015 05:36 AM
  • Joined: 03 Nov 2012

Danke, garry, das ist gut, aber leider nicht das, was ich mir wünsche. Dabei geht nämlich die aktuelle Position des Cursors verloren. Diese soll aber erhalten bleiben, da ich je nach ausgelesener Url genau an dieser Cursorposition eine Eingabe machen will.



robert_ilbrink
  • Members
  • 561 posts
  • Last active: Mar 10 2015 08:36 PM
  • Joined: 05 May 2012

Bevor diese Routine einfach die Cursorposition festlegen und nachher zurück Springen, mach Ich  ja öfters.

Selbst verwende Ich in Chrome: ControlGetText, SourceURL, Chrome_OmniboxView1, Chrome

Und Ich Weiß nicht ob so etwas für FF auch besteht (die kopier Funktion wirkt zb. nicht wenn FF in full screen mode läuft).



faqbot
  • Members
  • 997 posts
  • Last active:
  • Joined: 10 Apr 2012
DDE fur ahk_l http://www.autohotke...e-4#entry434518

Johnny R
  • Members
  • 54 posts
  • Last active: Sep 18 2015 05:36 AM
  • Joined: 03 Nov 2012

DDE funktioniert (auf diesem einen konkreten Rechner mit AHK_L - Ansi) eben leider nicht. Das betrifft auch den oben angesprochenen (originalen und modifizierten) Code, der bei mir NICHT funktioniert (vgl. die Messageboxen)! AHK_L - Unicode funktioniert auch nicht.

#persistent
*~$!F8:: ; Alt-F8
B=firefox
result:=FF_RetrievePageName_1(B)
return

FF_RetrievePageName_1(Browser)
   {
   DllCall("DdeInitializeW","UPtrP",idInst,"Uint",0,"Uint",0,"Uint",0)

   ; CP_WINANSI = 1004   CP_WINUNICODE = 1200
;   hServer := DllCall("DdeCreateStringHandleW","UPtr",idInst,"Str","iexplore","int",1200)
   hServer := DllCall("DdeCreateStringHandleW","UPtr",idInst,"Str",%Browser%,"int",1200)
   hTopic  := DllCall("DdeCreateStringHandleW","UPtr",idInst,"Str","WWW_GetWindowInfo","int",1200)

msgbox hTopic %hTopic% ; ergibt bei mir "49154"

   hItem   := DllCall("DdeCreateStringHandleW","UPtr",idInst,"Str","0xFFFFFFFF","int",1200)

   hConv := DllCall("DdeConnect","UPtr",idInst,"UPtr",hServer,"UPtr",hTopic,"Uint",0)
   ; CF_TEXT = 1      CF_UNICODETEXT = 13
   hData := DllCall("DdeClientTransaction","Uint",0,"Uint",0,"UPtr",hConv,"UPtr",hItem,"UInt",1,"Uint",0x20B0,"Uint",10000,"UPtrP",nResult)

msgbox hData %hData% ; ergibt bei mir "0"

   sData := DllCall("DdeAccessData","Uint",hData,"Uint",0,"str")

msgbox sData %sData% ; ergibt bei mir LEER

   DllCall("DdeFreeStringHandle","UPtr",idInst,"UPtr",hServer)
   DllCall("DdeFreeStringHandle","UPtr",idInst,"UPtr",hTopic)
   DllCall("DdeFreeStringHandle","UPtr",idInst,"UPtr",hItem)
   DllCall("DdeUnaccessData","UPtr",hData)
   DllCall("DdeFreeDataHandle","UPtr",hData)
   DllCall("DdeDisconnect","UPtr",hConv)
   DllCall("DdeUninitialize","UPtr",idInst)
   result:=StrGet(&sData,"cp0")

msgbox result %result% ; ergibt bei mir LEER

   return result
   }
 


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

Stimmt auch bei mir geht es nicht.

 

Firefox: Version 20.0.01

OS: WIN_8 64bit
AHK: 1.1.09.04 ANSI 32bit



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

Was habt ihr denn alle auch ANSI?

 

#persistent
*~$!F8:: ; Alt-F8
B
=firefox
result
:=Browser_RetrievePageName(B)
return

Browser_RetrievePageName(Browser)
   {
   DllCall("DdeInitializeW","UPtrP",idInst,"Uint",0,"Uint",0,"Uint",0)

   ; CP_WINANSI = 1004   CP_WINUNICODE = 1200

CP_WIN:=1200
   hServer := DllCall("DdeCreateStringHandleW","UPtr",idInst,"Str",Browser,"int",CP_WIN)
   hTopic  :=DllCall("DdeCreateStringHandleW","UPtr",idInst,"Str","WWW_GetWindowInfo","int",CP_WIN)


   hItem   := DllCall("DdeCreateStringHandleW","UPtr",idInst,"Str","0xFFFFFFFF","int",CP_WIN)

   hConv := DllCall("DdeConnect","UPtr",idInst,"UPtr",hServer,"UPtr",hTopic,"Uint",0)
hData:=DllCall("DdeClientTransaction","Uint",0,"Uint",0,"UPtr",hConv,"UPtr",hItem,"UInt",1,"Uint",0x20B0,"Uint",10000,"UPtrP",nResult)


sData := DllCall("DdeAccessData","Uint",hData,"Uint",0,"str")


DllCall("DdeFreeStringHandle","UPtr",idInst,"UPtr",hServer)
DllCall("DdeFreeStringHandle","UPtr",idInst,"UPtr",hTopic)
DllCall("DdeFreeStringHandle","UPtr",idInst,"UPtr",hItem)
DllCall("DdeUnaccessData","UPtr",hData)
DllCall("DdeFreeDataHandle","UPtr",hData)
DllCall("DdeDisconnect","UPtr",hConv)
DllCall("DdeUninitialize","UPtr",idInst)
   result:=StrGet(&sData,"cp0")

msgbox result %result% ; ergibt bei mir LEER   : JETZT NICHT MEHR

  
return result
  
}


Visit the new forum ahkscript.org.

http://ahkscript.org


Johnny R
  • Members
  • 54 posts
  • Last active: Sep 18 2015 05:36 AM
  • Joined: 03 Nov 2012

Unicode ist Jacke wie Hose.

 

Ich will auch gar nicht sagen, daß die DDE-Lösung überhaupt nicht funktioniert. Auf einem anderen Win7-Rechner mit ziemlich gleicher Konfiguration funktioniert die DDE-Lösung nämlich. Warum, weiß ich nicht...



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

Es ist nicht Jacke wie Hose....

 

Es wären komplett falsche Ergebnisse entstanden wäre nicht schon vorher ein Fehler gewesen.


Visit the new forum ahkscript.org.

http://ahkscript.org


Johnny R
  • Members
  • 54 posts
  • Last active: Sep 18 2015 05:36 AM
  • Joined: 03 Nov 2012
...wäre nicht schon vorher ein Fehler gewesen.

Welcher Fehler? Was meinst Du? Betrifft/löst Dein Post mein Problem?



nnnik
  • Members
  • 1625 posts
  • Last active: Jan 24 2019 02:19 PM
  • Joined: 28 Jul 2012
#persistent
*~$!F8:: ; Alt-F8
B=firefox
result:=Browser_RetrievePageName(B)
return

Browser_RetrievePageName(Browser)
   {
   DllCall("DdeInitializeW","UPtrP",idInst,"Uint",0,"Uint",0,"Uint",0)

   ; CP_WINANSI = 1004   CP_WINUNICODE = 1200

CP_WIN:=A_IsUnicode?1200:1004
   hServer := DllCall("DdeCreateStringHandleW","UPtr",idInst,"Str",Browser,"int",CP_WIN)
   hTopic  :=DllCall("DdeCreateStringHandleW","UPtr",idInst,"Str","WWW_GetWindowInfo","int",CP_WIN)
   hItem   := DllCall("DdeCreateStringHandleW","UPtr",idInst,"Str","0xFFFFFFFF","int",CP_WIN)

   hConv := DllCall("DdeConnect","UPtr",idInst,"UPtr",hServer,"UPtr",hTopic,"Uint",0)
hData:=DllCall("DdeClientTransaction","Uint",0,"Uint",0,"UPtr",hConv,"UPtr",hItem,"UInt",1,"Uint",0x20B0,"Uint",10000,"UPtrP",nResult)


sData := DllCall("DdeAccessData","Uint",hData,"Uint",0,"str")


DllCall("DdeFreeStringHandle","UPtr",idInst,"UPtr",hServer)
DllCall("DdeFreeStringHandle","UPtr",idInst,"UPtr",hTopic)
DllCall("DdeFreeStringHandle","UPtr",idInst,"UPtr",hItem)
DllCall("DdeUnaccessData","UPtr",hData)
DllCall("DdeFreeDataHandle","UPtr",hData)
DllCall("DdeDisconnect","UPtr",hConv)
DllCall("DdeUninitialize","UPtr",idInst)
   result:=StrGet(&sData,"cp0")

msgbox result %result% ; ergibt bei mir LEER   : JETZT NICHT MEHR

   return result
   }

Das hier sollte funktionieren.

 

Der Fehler:

Wie bereits in der Ursprungstopic gesagt:

hServer := DllCall("DdeCreateStringHandleW","UPtr",idInst,"Str",%Browser%,"int",1200)

Keine %% um Browser da sonst der Inhalt der Variable firefox übergeben wird, un der ist 0.


Visit the new forum ahkscript.org.

http://ahkscript.org


Johnny R
  • Members
  • 54 posts
  • Last active: Sep 18 2015 05:36 AM
  • Joined: 03 Nov 2012

@nnnik, Du bist der Größte! Danke! Es klappt! Wie hast Du das gemacht? Warum hat das vorher nicht funktioniert?

 

Ich werde das nachher noch ausführlich testen. Aber vorläufig ist das für mich in Ordnung.

 

garry
  • Spam Officer
  • 3219 posts
  • Last active: Sep 20 2018 02:47 PM
  • Joined: 19 Apr 2005

vielen Dank , funktioniert fein

ich habe versucht script-code mit Url-Link und Datum  auf Desktop als Name_Datum.ahk zu kopieren ( durch rechtsklick auf rechte Seite von thread )

anbei script von atnbueno

http://www.autohotke...um/#entry583688



Johnny R
  • Members
  • 54 posts
  • Last active: Sep 18 2015 05:36 AM
  • Joined: 03 Nov 2012

Unglaublich, wie gut das funktioniert, und zwar nicht nur mit dem Firefox, sondern auch mit dem IE (B = iexplore).