 |
AutoHotkey Community Wir helfen uns gegenseitig aus der Patsche
|
| Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
| Autor |
Nachricht |
Moon93
Anmeldedatum: 29.11.2006 Beiträge: 152 Wohnort: Zuhause
|
Verfasst am: Mi Nov 29, 2006 3:31 pm Titel: überschreiben eines textes |
|
|
ganz nach dem leitsatz: ein thema - ein thread --- ein thread - ein thema erstelle ich hier einen neuen thread.
und zwar:
also ich habe bis jetzt diesen text:
| Code: | Gui, Add, Text,, Suchen:
Gui, Add, Edit,r5 vSearch,
Gui, Add, Text,, Ersetzen mit:
Gui, Add, Edit,r5 vErsetzen,
Gui, Add, Button,x150 y20 H180,Ersetzen
Gui, Show
return
GuiClose:
ExitApp
return
ButtonErsetzen:
Gui, Submit, NoHide
WinGetText, Text, A,
StringReplace, Textbea, Text,%vSearch%,%vErsetzen%,all |
so, als erstes erstelle ich die GUI... etc. beim Buttonklick wirds dann interesant. Ich lese den Text des gerade aktiven fensters aus, setze den in einen String, bearbeite diesen String nach den Benutzervorgaben und fertig. Jetzt muss ich aber irgendwie den Bearbeiteten string in das noch aktive fenster bekommen(überschreiben) so da liegt mein problem, wie mache ich das. |
|
| Nach oben |
|
 |
Thalon
Anmeldedatum: 25.10.2005 Beiträge: 1896 Wohnort: Österreich
|
Verfasst am: Mi Nov 29, 2006 3:39 pm Titel: |
|
|
WinGetText ist etwas ungeschickt, da du dabei alle möglichen Texte ausliest...
Besser wäre es das aktive Control herauszufinden (ControlGetFocus), den Text zu lesen (ControlGetText), zu bearbeiten und dann mit ControlSetText abzuschließen...
Alternativ (unschön, bisweilen aber dennoch zuverlässiger):
Strg-A
Strg-C
Replace
Strg-V
Thalon _________________ Mein Motto: Hilfe zur Selbsthilfe!
Teildeutsche Hilfe (CHM)!! und Deutsche Online-Hilfe |
|
| Nach oben |
|
 |
Moon93
Anmeldedatum: 29.11.2006 Beiträge: 152 Wohnort: Zuhause
|
Verfasst am: Mi Nov 29, 2006 3:56 pm Titel: |
|
|
| Code: | ButtonErsetzen:
Gui, Submit, NoHide
Gui, Minimize
Sleep 500
ControlGetFocus, Focus,
ControlGetText, Text,%Focus%
StringReplace, Textbea, Text,%vSearch%,%vErsetzen%,all
ControlSetText,%Focus%,%Textbea%
Gui, Restore
return |
also, ich hab des ganze so gemacht wie du es gesagt hast, minimiere das fenster vorher, weil sonst ja das programm selber das aktive fenster ist.
Aber es geht nciht.
Ich wei0 nciht warum. |
|
| Nach oben |
|
 |
BoBo Gast
|
Verfasst am: Mi Nov 29, 2006 4:01 pm Titel: |
|
|
| Zitat: | | StringReplace, Textbea, Text,%vSearch%,%vErsetzen%,all | Variablen innerhalb der Gui werden auschließlich bei deren Referenzierung mit einem v(ariable) versehen. Ansonsten im weiteren Verlauf ohne! Also so wie hier ...
| Zitat: | | StringReplace, Textbea, Text,%Search%,%Ersetzen%,all |
|
|
| Nach oben |
|
 |
Moon93
Anmeldedatum: 29.11.2006 Beiträge: 152 Wohnort: Zuhause
|
Verfasst am: Mi Nov 29, 2006 4:12 pm Titel: |
|
|
ok
aber daran lag es komischerweise nciht.
Probierts doch mal selber aus, hier der ganze code: | Code: | Gui, Add, Text,, Suchen:
Gui, Add, Edit,r5 vSearch,
Gui, Add, Text,, Ersetzen mit:
Gui, Add, Edit,r5 vErsetzen,
Gui, Add, Button,Default x150 y20 H180,Ersetzen
Gui, Show
return
GuiClose:
ExitApp
return
ButtonErsetzen:
Gui, Submit, NoHide
Gui, Minimize
Sleep 500
ControlGetFocus,Focus,
ControlGetText, Text,%Focus%
StringReplace, Textbea, Text,%Search%,%Ersetzen%,All
ControlSetText,%Focus%,%Textbea%
Gui, Restore
return |
ich habs mit einem word dokument versucht.
klappt nicht.
außer ihr findet noch einen fehler.
ich habe alle befehle nochmal mühsam mit der hilfe verglichen ob die variablen stimmen und ob alels richtig geschrieben wurde.
Nichts. Es muss ein denkfehler sein. |
|
| Nach oben |
|
 |
Thalon
Anmeldedatum: 25.10.2005 Beiträge: 1896 Wohnort: Österreich
|
Verfasst am: Mi Nov 29, 2006 4:13 pm Titel: |
|
|
Zusätzlich wäre es noch gut das aktive Fenster zu ermitteln um dann auch das richtige Control zu erwischen!
Optional sind die Parameter nur in Verbindung mit "Lastfound"...
Thalon _________________ Mein Motto: Hilfe zur Selbsthilfe!
Teildeutsche Hilfe (CHM)!! und Deutsche Online-Hilfe |
|
| Nach oben |
|
 |
Moon93
Anmeldedatum: 29.11.2006 Beiträge: 152 Wohnort: Zuhause
|
Verfasst am: Mi Nov 29, 2006 4:22 pm Titel: |
|
|
blos wie activiert man ein beliebiges fenster?
ich habe jetzt ein einfaches WinActivate eingebaut, doch jetzt nimmt der des Control von dem eigenen Gui (aber er ersetzt es!)
Ich kann ja keinen Namen angeben weil ich den namen ja nicht weiß. Und nach dem Titel suchen, und den dann eingeben funtzt au net, weil der dann den titel vom eigenen Gui nimmt.
Ja hm....
mir als neuling fällt nix weiteres mehr ein.
Ich bin auf eure Hilfe angewiesen.
(Ich wei0 cih nerve vieleicht ein wenig, aber nur jetzt, dann habt ihr wieder ne weile ruhe^^)
ps. mit dem ausschließen des titels ersetzer.ahk geht es acuh nicht, da nimmt er wieder garnix |
|
| Nach oben |
|
 |
Thalon
Anmeldedatum: 25.10.2005 Beiträge: 1896 Wohnort: Österreich
|
Verfasst am: Mi Nov 29, 2006 4:45 pm Titel: |
|
|
| Zitat: | | WinExist("A") is a fast way to get the ID of the active window |
Diese kannst du dann mit "ahk_id %Variable_mit_der_ID%" für die Funktionen verwenden (als Windowtext).
Ich schlage vor du liest dir erst einmal die Befehle zu "Window Management" durch (da sind Controls auch mit dabei ).
WinActivate liefert nicht das aktuelle Fenster, sondern Aktivert das angegebene (wird keines angegeben wird das letztgefundene verwendet.. In der Regel die GUI ..)
Thalon _________________ Mein Motto: Hilfe zur Selbsthilfe!
Teildeutsche Hilfe (CHM)!! und Deutsche Online-Hilfe |
|
| Nach oben |
|
 |
Moon93
Anmeldedatum: 29.11.2006 Beiträge: 152 Wohnort: Zuhause
|
Verfasst am: Mi Nov 29, 2006 5:51 pm Titel: |
|
|
| sry echt, aber der gibt mir immer die ID vom eigenen Gui, ich blicks einfach net. |
|
| Nach oben |
|
 |
Moon93' Gast
|
Verfasst am: Do Nov 30, 2006 3:07 pm Titel: Erläuterung meines Problems |
|
|
So:
Nochmal Genau.
Egal ob ich es per ID oder sonstwie mache, er nimmt entweder garkein Programm, oder sich selber.
Ich würde es ja gerne mit dem WinTitle machen, aber den kenne ich ja dummerweise ja nicht.
| Code: | ButtonErsetzen:
Gui, Submit, NoHide
Gui, Minimize
Sleep 500
ID := WinExist("A")
WinActivate,ahk_id%ID%
ControlGetFocus,Focus
ControlGetText, Text,%Focus%
StringReplace, Textbea, Text,%Search%,%Ersetzen%,All
ControlSetText,%Focus%,%Textbea%
Gui, Restore
return |
so das ist nochmal der Code von dem entsprechenden Button.
Wäre nett wenn ihr mir vieleicht doch noch helft.
Oder geht das einfach nicht? Kann ja auch sein das, was ich machen will einfach nicht geht. |
|
| Nach oben |
|
 |
Thalon
Anmeldedatum: 25.10.2005 Beiträge: 1896 Wohnort: Österreich
|
Verfasst am: Do Nov 30, 2006 3:55 pm Titel: |
|
|
Leerzeichen zwischen "ahk_id" und %ID% nicht vergessen!
Sollte es auch dann nicht funktionieren versuch das hier: | Code: | ButtonErsetzen:
Gui, Submit, NoHide
Gui, Minimize
WinWaitNotActive
Sleep 500
ID := WinExist("A")
WinActivate, ahk_id %ID%
ControlGetFocus, Focus, ahk_id %ID%
ControlGetText, Text, %Focus%, ahk_id %ID%
StringReplace, Textbea, Text, %Search%, %Ersetzen%, All
ControlSetText, %Focus%, %Textbea%, ahk_id %ID%
Gui, Restore
return | *ungetestet*
Thalon _________________ Mein Motto: Hilfe zur Selbsthilfe!
Teildeutsche Hilfe (CHM)!! und Deutsche Online-Hilfe |
|
| Nach oben |
|
 |
Moon93
Anmeldedatum: 29.11.2006 Beiträge: 152 Wohnort: Zuhause
|
Verfasst am: Do Nov 30, 2006 7:30 pm Titel: |
|
|
tut mir leid.
ich kann nur sagen das es warscheinlich nicht geht.
Ich habe schon alle möglichen Sachen Ausprobiert
dein Beispiel bringt leider auch nur das ergebniss das garnichts ersetzt wird
hm...
aber thx nochma ganz kräftig für die hilfe |
|
| Nach oben |
|
 |
|
|
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
|