AHHH ist das gut. ![]()
Beiträge von 4ern
-
-
Hallo zusammen,
für eine Anwendug, die etwas länger braucht zum starten, suche ich lustige Lade Texte um das warten etwas zur versüßen...
Die Standard Texte, wie "Grafiken werden geladen" oder "Datenbankverbindung wird aufgebaut" sind eher langweilig und für die Nutzer unintressant...Ich meine sowas wie:
- "Backrezept für Kekse wird erstellt."
- "Suche die benötigten Daten, irgndwo hier hab ich die hingelegt"vielen Dank schonmal für eure Ideen

-
Design-Änderung ist nur temporär und nicht speicherbar. Nach jedem Login hat man wieder das light/edge-Design.
dito. Habe exakt das selbe Problem...
-
Google Suche funktioniert nicht mehr. Wenn man bei Google z.B. nach "alternative zu controlsend" such und auf den AutoIt.de Eintrag klickt führt Google auf die AutoIt.de Startseite und nicht direkt zum Eintrag. - Rewrite Regeln habe ich schon definiert. Muss nur mal schauen, warum die nicht umgeschrieben werden. Damit sollte dann die Weiterleitung funktionieren.
-
Ja mit diesem Regex habe ich auch meine Probleme... BugFix sein Pattern sollte helfen. Jedoch wenn ich mich nicht irre fehlt in BugFix sein Pattern ' "> ' also
[autoit]\<a\sclass="next_page".*href="([^"]+)">
[/autoit]Somit hast du dann den vollständigen Link.
-
Ja das Problem kenne ich.... kann man aber hervorragend abfangen mit:
[autoit]
[/autoit]
Local $s_IE_Titel = _IEPropertyGet($o_IE, "hwnd")
Local $id_IE_msg = '[CLASS:Internet Explorer_Server; INSTANCE:1]'
ControlSend($s_IE_Titel, '', $id_IE_msg, '{Enter}') -
Zitat
Dein Workarround bringt ja in dem Fall eigentlich garnichts:
Also da muss ich dich korrigieren. Bei mir funktioniert es perfekt. Ich kann jeden klick auf ein Button abfangen, ohne das dieser ausgeführt wird. Ich glaube das das macht _ispressed.
-
Ok ich habe leider keine Lösung für mich gefunden, daher habe ich mir selbst überlegt, wie ich das den selber bauen kann.
Ich bin nun wie folgt vorgegangen:- Als erstes versuche ich das Handle unter der Maus zu ermitteln.
- Danach muss ich irgendwie ermitteln ob die Linke Maustaste gedrückt wurde. Dies stelle ich mit _ispressed() an.
- Das ganze habe ich nun zusammen addiert und meine Funktion ist fertig.Ich hoffe das ich hier mit meiner Funktionen gegen keine Forum Regeln verstoße.... Ansonsten bitte diesen Post löschen.
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#include <WinAPI.au3>
#include <Misc.au3>; #FUNCTION# =======================================================================================
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
; Name ..........: _capture_click_on_hWnd
; Description ...: - Ermittelt ein Maus oder Tastenklick auf einem bestimmtes Handle.
;
; Parameters ....: $hWnd - der zu ermittelnde handle
; ...............: $sHexKey Default(01 "Links Klick") - Key welcher ermittlet werden soll.
;
; Return values .: (1) - wird zurückgegeben, wenn der klick auf das handle erfolgte.
; @error.........: (1) - das Übergebene Handle ist kein Handle.
;
; Includes.......: <WinAPI.au3> & <Misc.au3>
;
; Author ........: 4ern.de alias rYnow
; ==================================================================================================
func _capture_click_on_hWnd($hWnd,$sHexKey = '01')
if _IsPressed($sHexKey) then
Local $stInt64,$aRet,$stPoint=DllStructCreate("long;long")
DllStructSetData($stPoint,1,MouseGetPos(0))
DllStructSetData($stPoint,2,MouseGetPos(1))
$stInt64=DllStructCreate("int64",DllStructGetPtr($stPoint))
$aRet=DllCall("user32.dll","hwnd","WindowFromPoint","int64",DllStructGetData($stInt64,1))
if $aRet[0] = $hWnd then
return 1
endif
endif
endfunc ;<==/capture_click_on_hWnd;----------------------------------------------------------------------------------------------/
[/autoit]
; Beispiel "=" Taste auf dem Windows Taschenrechner
;----------------------------------------------------------------------------------------------/
$hWnd = ControlGetHandle('Rechner', '', '[CLASS:Button; INSTANCE:21]')
While 1
if _capture_click_on_hWnd($hWnd) = 1 then
ConsoleWrite('"'&ControlGetText('', '', $hWnd) &'" wurde geklickt' &@lf )
Endif
if _IsPressed('1B') then exit
Sleep(10)
WEnd -
Ein Button in eine Fremd gui Einzufügen ist ja nicht so schwer, da brauch ich keine extra Udf dafür. Diese Lösung ist so ähnlich wie meine mit dem Lebes drüberlegen...
Warum mir das nicht sogefällt, ist dass ich bei klick auf mein eingefügtes, mein Button deaktivieren bzw ausblenden muss das original Button ein blenden und draufdrücken... Und anschließend alles wieder zurücksetzen...
Ich glaube cheesetiger hat mir im Chat gesagt, dass dllinject oder so ähnlich dafür am besten geeignet ist... Aber ich finde de irgendwie dazu nix?
-
Hallo zusammen,
ich stehe erneut vor einer Herausforderung und konnte mir leider durch Google nicht weiterhelfen. Wie in der Überschrift bereits zu lesen, suche ich nach einer Möglichkeit einen Button Event Abzufangen oder mit zu Lesen.
Bei den meisten werden vermutlich nun alle Alarm Glocken klingeln, da es sich nach einem Cheat etc. anhört, dies ist aber so nicht. Hierbei handelt es sich nur um eine Schutzfunktion, die ich für eine Anwendung in meinem Unternehmen entwickle. Diese Anwendung hilft den Agents, die in der Chat Bearbeitung tätig sind die Chats effizienter zu handeln. Um sicherzustellen, dass es sich hierbei wirklich um kein Cheat handelt erkläre ich kurz was mein Tool so macht.
Wir haben eine Hauptanwendung, wo 1-5 Chats Parallel in Tabs dargestellt werden. Leider entspricht diese Anwendung nicht wirklich den Anforderungen bzw. den Wünsche der Mitarbeiter. Z.B.
- Kd. werden nicht automatisch im CRM System geöffnet.
- Es wird nicht angezeigt, ob Kd. bereits geschrieben hat.
- Es wird nicht angezeigt, ob Kd. sich erfolgreich legitimiert hat.
- Kein automatisch Begrüßung.
- Chats werden nicht automatisch gespeichert.
- usw,
daher muss der Agent die ganzen Sachen manuell tätigen, was enorm viel Zeit und demnach Geld kostet...Mein Tool erledigt, dass alles für den Agent. Beim Eingang eines Chats, zieht sich mein Tool alle notwendigen Daten des Chats und zeigt alle notwendigen Daten des Kunden in einer Oberfläche an und öffnet den Kd. im CRM System. Nun stehe ich jedoch vor folgenden Problem:
Aktuell muss man über mein Tool den Chat schließen, damit bestimmte Automatisierung im CRM System erfolgen, weitere Aufgaben erledigt werden und der Chat im eigentlich Chat-Programm geschlossen wird. Leider kommt es oft dazu, dass die Agents aus Macht der Gewohnheit den Chat im eigentlich Chat Porgramm schließen und der Chat in meinem Tool drin bleibt und somit bestimme Sachen nicht mehr automatisiert erfolgen können und z.B. Protokoll nicht mehr erstellt werden kann.
Als erste Lösung habe ich die Buttons beim Start meines Tools einfach ausgeblendet und beim Controllclick wieder eingeblendet. Funktioniert, finde aber das dies nicht die schönste Variante ist.
Als zweiter Methode, habe ich einfach über die Buttons unsichtbare Labels gelegt. Funktioniert, jedoch sieht man bei den Buttons keinerlei Hover oder klick auf den Button.
Dritte Methode habe ich die MouseOver UDF probiert.... naja das hat mein Tool massiv ausgebremst.Ich denke das muss doch irgendwie umzusetzen sein, dass ich den Klick auf den Button abfange und zu erst meine Ausführungen durchführe...
Ich bin für jede Idee dankbar.
BugFix ich wäre dir Dankbar, wenn du bestätigen könntest, dass ich hier wirklich an keinem Cheat oder ähnlichem arbeite

-
Das Thema hatten wir hier bereits. Und mit bissel Google findet man sogar was

-
Ok mit json wäre des evtl tatsächlich möglich. Aber mit mysql ist das sehr viel einfacher besonders mit der Udf von ProgAndy. Oder du läßt das Array mit printr ausgeben und rufst das in autoit mit inetget dem HTML Quellcode ab.
-
Du kannst kein Array von einer scriptsprache in eine andere einfach so übergeben. Hier muss eine datenbanklösung her... Am besten du machst es über mysql
-
-
-
-
Lies von der Seite den HTML Code mit:
[autoit]Local $sHTML = _IEDocReadHTML($oIE)
[/autoit]anschließend kannst du mit RegEx einen Wert ermitteln.
-
Kann mich philipp anschließen. Versuchs mal so...
[autoit]
[/autoit]
Local $hwnd = _IEPropertyGet($oIE, "hwnd")
_IEAction($oDiv1, "focus")
ControlSend($hwnd, "", "[CLASS:Internet Explorer_Server; INSTANCE:1]", "{Enter}") -
-
Zitat
Wenn ich dieses oben unter das while schreibe, dann ist es ja rund um die uhr in der Ausführung
Alles was in der While Schleife ist, wird rund um die Uhr ausgeführt. Daher kannst ruhig mit StringLen() arbeiten ...