Cookie mit AHK umschreiben ...?

Post a reply


In an effort to prevent automatic submissions, we require that you complete the following challenge.
Smilies
:D :) ;) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :!: :?: :idea: :| :mrgreen: :geek: :ugeek: :arrow: :angel: :clap: :crazy: :eh: :lolno: :problem: :shh: :shifty: :sick: :silent: :think: :thumbup: :thumbdown: :salute: :wave: :wtf: :yawn: :facepalm: :bravo: :dance: :beard: :morebeard: :xmas: :HeHe: :trollface: :cookie: :rainbow: :monkeysee: :monkeysay: :happybday: :headwall: :offtopic: :superhappy: :terms: :beer:
View more smilies

BBCode is ON
[img] is OFF
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Cookie mit AHK umschreiben ...?

Re: Cookie mit AHK umschreiben ...?

Post by just me » 02 Dec 2017, 07:54

Moin BoBo,

das ist tatsächlich interessant und natürlich wieder einmal von querty12. Vielleicht kannst Du den ja bewegen, sich das AutoIt-SKript mal anzuschauen. Wenn er es macht, wird das mit Sicherheit die schnellste Lösung.

Und bis dahin noch zum Thema JSON-Rückgaben:

Code: Select all

Test = {"text":"secret value"}
MsgBox, % Test . "`n" . RegExReplace(Test, "`a)^\Q{""text"":""\E(.*)\Q""}\E$", "$1")
sollte bei Bedarf tun.

Re: Cookie mit AHK umschreiben ...?

Post by BoBo » 01 Dec 2017, 17:38

Re: Cookie mit AHK umschreiben ...?

Post by just me » 01 Dec 2017, 17:11

BoBo wrote:Übrigens habe ich genau den im AU3 thread angedachten fix versucht in einen abgleich einzufrickeln. Vergeblich, da AHK sich konstant an 'verwaisten' doppelpunkten, anführungszeichen und/oder gelockten klammern verschluckt :lolno:
Das machen wir morgen..
BoBo wrote:PS. da ja bei solchen "wiederbelebungsversuchen" generell mitschwingt "ein totes pferd reiten zu wollen" - :arrow: [hier] etwas zum NMH für Microsoft Edge (mit vergleichen zu Chrome). Das thema bleibt uns also erhalten ;)
Zur Zeit nutze ich weder Chrome noch Edge. Sollte ich mich aber entschließen, meinen Browser zu wechseln, dann wäre es wohl eher Edge. Microsoft hat ja immer noch andere Einkommensquellen.

Das tote Pferd ist übrigens AHKv2.

Re: Cookie mit AHK umschreiben ...?

Post by BoBo » 01 Dec 2017, 16:40

@ nnnik
Zu deiner nachfrage nach einer Python NMH source (full package attached) ...
Spoiler

erm, ... falls da ein open source AHK NMH draus würde <sabbernder>-smiley :)



https://devhub.io/repos/eladkarako-Chro ... PI-Example
Attachments
Chromium-Native-Messaging-API-Example-master.zip
(10.25 KiB) Downloaded 75 times

Re: Cookie mit AHK umschreiben ...?

Post by BoBo » 01 Dec 2017, 12:48

just me wrote:Ein Korrekturvorschlag wurde bereits im Jahr 2013 für AutoIt gemacht, vom Autor aber nicht in die Downloadversion von Chrome.au3 übernommen.

Das Skript sendet kein JSON-Format an den NMH, bekommt vom NMH aber JSON geliefert. Wenn man das dann mit Werten aus dem Skript vergleichen will, muss man sich jedesmal ganz genau anschauen, was wie zurückgegeben wird.
... was es ja interessant machen dürfte einen NMH selbst zu stricken welcher auf die zwtl geänderten gegebenheiten angepasst, und zugänglich ist.
Haben wir keine begnadet gelangweilten C++er in unseren reihen :?:

Übrigens habe ich genau den im AU3 thread angedachten fix versucht in einen abgleich einzufrickeln. Vergeblich, da AHK sich konstant an 'verwaisten' doppelpunkten, anführungszeichen und/oder gelockten klammern verschluckt :lolno:

PS. da ja bei solchen "wiederbelebungsversuchen" generell mitschwingt "ein totes pferd reiten zu wollen" - :arrow: [hier] etwas zum NMH für Microsoft Edge (mit vergleichen zu Chrome). Das thema bleibt uns also erhalten ;)
PPS. Ich hab mal zu Sean Griffin recherchiert, und denke ich werd ihn mal demnächst bzgl des AU3 NMH sourcecodes anschreiben.

Re: Cookie mit AHK umschreiben ...?

Post by just me » 01 Dec 2017, 12:41

Ein Korrekturvorschlag wurde bereits im Jahr 2013 für AutoIt gemacht, vom Autor aber nicht in die Downloadversion von Chrome.au3 übernommen.

Das Skript sendet kein JSON-Format an den NMH, bekommt vom NMH aber JSON geliefert. Wenn man das dann mit Werten aus dem Skript vergleichen will, muss man sich jedesmal ganz genau anschauen, was wie zurückgegeben wird.

Re: Cookie mit AHK umschreiben ...?

Post by BoBo » 01 Dec 2017, 12:08

just me wrote:Die 'december.com' Testseite liefert auch dann einen '500 Server Error', wenn ich sie händisch bediene. Außerdem funktioniert - wie gesagt - Chrome_DocWaitForExistenceByTitle() nicht, wenn man nicht den kompletten von Chrome_DocGetTitle() zurückgegebenen String als Title übergibt. Mehr kann ich nicht beitragen.
Da habe ich derzeit wenig(er) bedenken, da sich der titel doch ziemlich sklavisch AKA statisch zusammensetzt und schon vor dem abgleich via Chrome_DocWaitForExistenceByTitle() in Chrome_DocGetTitle() zurechtgestutzt werden könnte (?)

Vom NMH retourniert: {"text":"HTML Form Example"}

... was ich, mangels RegEx-know how gerade mal mit StrSplit() gegen die Anführungszeichen gemacht habe. UN FUNZT!
Die seiten laufen zügig durch, und alle (?) elemente werden erfolgreich angetriggert :mrgreen:

SIEG (sort of) :superhappy:

Re: Cookie mit AHK umschreiben ...?

Post by just me » 01 Dec 2017, 10:27

Die 'december.com' Testseite liefert auch dann einen '500 Server Error', wenn ich sie händisch bediene. Außerdem funktioniert - wie gesagt - Chrome_DocWaitForExistenceByTitle() nicht, wenn man nicht den kompletten von Chrome_DocGetTitle() zurückgegebenen String als Title übergibt. Mehr kann ich nicht beitragen.

Re: Cookie mit AHK umschreiben ...?

Post by BoBo » 01 Dec 2017, 06:54

- Breaking News -

Bei anwendung des (aus AU3 übersetzten) scripts "chrome_example_2.ahk" gegen die lokale testpage "chrome_udf_example_2.html" (von hier)
konnte ich sinnvolle rückmeldungen provozieren. Ich habe die mal zur sichtung (und zum vergleich mit der verlinkten testpage) für JS-kundige mitgeschnitten ...

Code: Select all

{die rückmeldungen des browsers}  ; die beschreibung von Sean zum funktionsaufruf.

{"text":"post"}         ; Get the "method" attribute of the "ExampleForm" form element
{"text":"secret value"} ; Get the "value" attribute of the "hiddenExample" hidden input element
{"text":"ERYPATUIMM"}   ; Set the "value" attribute of the "textExample" text input element to a random string
{"text":"ERYPATUIMM"}   ; Get the "value" attribute of the "textExample" text input element
{"text":"NWOVNSMRWL"}   ; Set the "value" attribute of the "passwordExample" password input element to a random string
{"text":"NWOVNSMRWL"}   ; Get the "value" attribute of the "passwordExample" password input element
{"text":"file"}         ; Get the "type" attribute of the "fileExample" file input element

{"text":"http://www.autoitscript.com/images/autoit_6_240x100.jpg"}   ; Get the "src" attribute of the "imageExample" image input element
{"text":"Form Submitted!<br>"}                                       ; Get the "innerHTML" attribute of the "messages" DIV element (updated from the "imageExample" click above)

{"text":"EGGUHJYPAT"}   ; Get the "innerHTML" attribute of the "messages" DIV element (updated from the "imageExample"-click above)
{"text":"EGGUHJYPAT"}   ; Set the "value" attribute of the "textareaExample" textarea input element to a random string
{"text":"false"}        ; Get the "value" attribute of the "textareaExample" textarea input element
{"text":"true"}         ; Get the "checked" attribute of the first "checkboxG1Example" checkbox input element
{"text":"1"}            ; Get the selected value of the "selectExample" select element
{"text":"1"}            ; Get the selected value of the "multipleSelectExample" select element

{"text":"Form Submitted!<br>Form Submitted!<br>"}   ; Get the "innerHTML" attribute of the "messages" DIV element (updated from the "submitExample"-click above)
Das testscript chrome_example.ahk zum beackern der online-testpage :arrow: [hier] lief bis zum "submitten" soweit zufriedenstellend. Allerdings ergab es sich, nach anschließenden manuellem test, das der server nach eingabe aller daten jegliche anfragen mit einem serverfehler (500) quittiert. Somit ließ sich a) nicht testen ob die vom script gesteuerte nachfolgende 'innerhtml'-auswertung funktioniert hätte, und b) ob die vermeintlich fehlgeschlagene anwahl von radio-button und checkbox nur visuell, oder tatsächlich gescheitert waren.

Meh :(

Ergo, hinweise zu einer anderweitigen online-testpage zum befüttern/auswerten werden gerne genommen :)

Re: Cookie mit AHK umschreiben ...?

Post by just me » 01 Dec 2017, 03:50

Moin,
Den NMH habe ich erstmal vom APPDATA-pfad verchoben, da dieser ein system-pfad zu sein scheint ...
Zumindest könnte er Probleme bereiten, weil er auf ein Verzeichnis verweist, das dem angemeldeten Benutzer zugeordnet ist. Man bräuchte dann eine eigene 'Installation' pro Benutzer. Vielleicht wäre A_AppDataCommon (hier: C:\ProgramData) ein besserer Installationsordner. Man muss allerdings auch dann die beschriebenen Anpassungen machen und darf sich dabei keinen Fehler erlauben.
Bei der fenstererkennung, einer vorbedingung zur javascript evaluation, bekomme ich keinen echten namen gegriffen, sondern es werden hex-werte retourniert.
Wenn Du damit die Rückgabe von Chrome_WinExists() meinst, ist das ok. Sie liefert das Handle des gefundenen Fensters als Hex-Wert, ansonsten 0.

Du solltest in Chrome_Eval() einfach ein paar MsgBoxen einbauen, um zu prüfen, wie weit das kommt. Dazu muss allerdings die Variable Chrome_NativeMessagingHostDir auf den korrekten (geänderten) Pfad zeigen. Auch ohne NMH sollten dann in diesem Ordner die Input.txt Dateien entstehen. Dabei mag es noch ein kleines Problem geben, weil AutoIt zumindest in der aktuellen Version UTF-8-RAW Dateien schreibt. Das kann aber angepasst werden.

Edit: Da habe ich wohl zulange gebraucht! Glückwunsch!
Das Problem mit {"text":"AutoHotkey Community - Index page"} wurde schon im AutoIt Beitrag erwähnt. Die FunktionChrome_DocWaitForExistenceByTitle() kann so nur funktionieren, wenn man im Title Parameter ebenfalls den kompletten JSON Ausdruck übergibt.

Re: Cookie mit AHK umschreiben ...?

Post by BoBo » 01 Dec 2017, 03:30

Moin gemeinde :)
Es funzt was! Es ist mir gelungen den NMH (im stealth mode!) mit dem browser zu starten <"lust auf champus vor 18:00 verspür"-smiley> UND <trommelwirbel> bei übergabe einer input.txt mit der anfrage zum fenstertitel retournierte prompt eine output.txt mit der korrekten angabe! :thumbup:

input.txt

Code: Select all

document.title;
output.txt

Code: Select all

{"text":"AutoHotkey Community - Index page"}
Stay tuned ...

Re: Cookie mit AHK umschreiben ...?

Post by BoBo » 30 Nov 2017, 18:10

Stimmt. :lol: Gab schon reichlich vorschußlorbeeren. Spricht ja nichts gegen gute stimmung ;)

Welly well. Den NMH habe ich erstmal vom APPDATA-pfad verchoben, da dieser ein system-pfad zu sein scheint und ich mir nicht sicher bin inwieweit dort bereits system-restriktionen zu berücksichtigen wären? Daraus resultierte dann eine notwendige Pfad- und extension ID anpassung in der datei "manifest.jason" im NMH directory, sowie die pfadanpassung in der registry. Bei der fenstererkennung, einer vorbedingung zur javascript evaluation, bekomme ich keinen echten namen gegriffen, sondern es werden hex-werte retourniert. Da diese jedoch nur schwerlich mit dem zu vergleichenden text-pattern matchen, greifen danach lediglich die timeouts.
Dasamavolldoof :? Ich hoffe jetzt einfach mal das der fehler vor der tastatur sitzt ...

In der evaluierungs-sektion/funktion sollte allerdings das anlegen der "input.txt" per se funktionieren (ich denke mal die output.txt enthält die rückmeldung des browsers). Tuts allerdings nicht. Deswegen hatte ich, wie eingangs erwähnt den pfad geändert, falls fehlende schreibrechte ein thema gewesen wären. Nun, ich bin aktuell als "admin" unterwegs. Sollte also IMHO noch kein problem darstellen.

Was sich mir bisher nicht erklärt ist, das der NMH zwar wie beabsichtigt mit dem shutdown von chrome ebenfalls schließt, ich jedoch nirgends erkenne wann und wo dieser gestartet wird?
Dazu muß zur laufzeit eine chrome browserinstanz bestehen, denn ohne aktuelle instanz klappt der NMH (ein konsolenfenster) einfach wieder zusammen.
Erklärung dazu findet sich [hier] :shifty:

So, BoBo macht jetzt BuBu. Bis morgen(s). Greetz 8-)

Re: Cookie mit AHK umschreiben ...?

Post by just me » 30 Nov 2017, 16:49

Hallo BoBo,

es mag Dich enttäuschen, aber Chrome_Startup() und Chrome_Shutdown() sind wohl die einzigen 'Core'-Funktionen, die ohne NMH auskommen.

Ich habe den AutoIt-Beitrag schon mehrfach durchgekaut. Und ich habe dabei Zweifel bekommen, ob das mit auch dem originalen AU3-Skript überhaupt noch funktioniert. SeanGriffin hält sich jedenfalls seit einiger Zeit sehr zurück.

Es gibt ja einige AHK-User, die auch AutoIt nutzen. Vielleicht könnte einer von Denen es mal probieren.

Re: Cookie mit AHK umschreiben ...?

Post by BoBo » 30 Nov 2017, 11:44

Falls ich es noch nicht kund getan habe, Chrome_Startup() und Chrome_ShutDown() haben schon mal anstandslos funktioniert :dance:

And yep, it wasn't me.
Full credit goes to :arrow: just-me :ugeek: - and of course to our unknown mate "Mr. AutoIT 2013" :arrow: Sean Griffin :salute: :beard: :salute:

Re: Cookie mit AHK umschreiben ...?

Post by BoBo » 30 Nov 2017, 04:31

nnnik wrote:Ist das auch die Version die AutoIt verwendet?
TBH - bin ich überfragt!?!
Hier was zur Python version/dll ...
https://www.autoitscript.com/forum/topi ... nt-1115173
... und hier die anmerkung zur ersetzung durch einen AU3 NMH (weshalb auch die Python.exe nur noch schwer erhältlich sein dürfte)
https://www.autoitscript.com/forum/topi ... nt-1119940

Den AU3 thread selbst nochmal in gänze zu lesen macht wahrscheinlich sinn, zumal mir mangels kenntnis evtl etwas maßgebliches durch die lappen gegangen sein könnte :shifty:

Re: Cookie mit AHK umschreiben ...?

Post by nnnik » 30 Nov 2017, 04:16

Ist das auch die Version die AutoIt verwendet?

Re: Cookie mit AHK umschreiben ...?

Post by BoBo » 30 Nov 2017, 04:09

nnnik wrote:Der kompilierte Python Code wäre als Source sehr interessant zu haben.
Sowas wie [hier] von [hier]? Wobei dieser [hier] noch nachbearbeitet wurde, da der Google beispielcode zwischenztl veraltet war.

BTW, im AU3 wurde ebenfalls angemerkt das in das kompilat eine python-dll includiert wurde. J4TR. Have fun :mrgreen:

BoBo 8-) (der ziemlich frustriert ist da Apple den App Store aus iTunes entfernt hat :x )

Re: Cookie mit AHK umschreiben ...?

Post by nnnik » 30 Nov 2017, 03:21

Der kompilierte Python Code wäre als Source sehr interessant zu haben.

Re: Cookie mit AHK umschreiben ...?

Post by nnnik » 30 Nov 2017, 03:05

Re: Cookie mit AHK umschreiben ...?

Post by just me » 30 Nov 2017, 02:59

Moin,

möglicherweise, aber dazu müsste sich jemand finden, der die Mechanisman im Hintergrund versteht.

Lassen sich die mit dem AU3-Skript verteilten Browser-Komponenten überhaupt installieren und gibt es irgendeine erfolgreiche Kommunikation mit dem portierten AHK-Skript? Das tauscht ja wie auch das AU3-Skript die Informationen über fest definierte Textdateien aus, nicht über STDIN/STDOUT.

Die Schlüsselfunktion ist Chrome_Eval(). Der Rest ist eher schmückendes Beiwerk. Für einen JS-Kundigen sollte es deshalb recht einfach sein, die Grundfunktionalität zu testen.

Top