Need help how to add text into a field (math)

Hi,

there is one position on my screen where ich regularly want my cursor to jump in, click, and now add/ subtract the number 3, hit enter, return to original mouse position.

My thoughts are:

  1. Save actual mouse position
  2. Search image on screen and move mouse. (Upper left edge)
  3. Move to X and Y. (Why: There is no "shift" parameters in the action trigger 2.)
  4. left click
  5. ?
  6. enter
  7. ?

Step 2: Wouldn't it be good to have a move mouse to upper left position -> "and then shift for X and Y" ?

Step 5: How do I add or subtract +/-3 to any number (including 0)? Example: the field says "0,0". Hitting FN + '+* creates '3,0' then '6,0'.
If I will use FN + '-' I'll get from '0,0' then '-3,0' or from '6,0' a '3,0' etc.

Step 7: I don't know yet which is the name for "jump back to saved position".

As this is a repeating task I may do several times every 10minutes, I am also interested in minimizing the effort for BTT to do this method. I want to keep in step 2. if I connect a larger monitor (step 3. won't work).

Do you mean which action?

image

Restore saved mouse position. Unfortunately, I don't know how to do the rest.

1 Like

Hi Frank, thanks for the first action! Great.
Search image on screen AND Move to position look different here :confused:

I‘m not on my computer today but in general these would be the steps:

  • Save actual mouse position
  • Search image on screen and move mouse. (Upper left edge), however if the field is always at the same position relative to the window, you can directly use the „move mouse to position“ action relative to the window (in that case you don’t need to search for an image)
  • Shift to X and Y using the „move mouse to position“ action (relative to the current mouse position)
  • left click
  • cmd+a to select the content
  • action: transform & replace selected text with javascript (or with chatgpt if you want to do it without code)
  • enter
  • restore saved mouse position

Usually an even better way would be to directly find & modify the textfield using apple script, but that requires some tinkering

Fine! So the action javascript is missing.

  1. ChatGPT: I never get 3. Instead the weird number 11111276000 is created in Logic. (code see below)
  2. Gemini: only if I delete the function "addiereDrei('0,0')". Now I get +333,230000 in Logic, which is wrong, too.

What I do not understand is this hint:
"Die Funktion sollte wie folgt aussehen. Der Parameter muss clipboardContentString heißen und es muss ein (neuer) String zurĂŒckgegeben werden."

So I put the generated code in between?

async (clipboardContentString) => {

<<<< here I copied the java script from ChatGPT >>>>

return clipboardContentString.toUpperCase()
}

FYI:
ChatGPT returns 11111276000:
// Funktion, um die markierte Zahl zu erhalten und 3 zu addieren
function addThreeToSelectedText() {
// Das markierte Textobjekt abrufen
const selection = window.getSelection();

// PrĂŒfen, ob ein Text markiert ist
if (selection.rangeCount > 0) {
    // Das markierte Textobjekt abrufen
    const range = selection.getRangeAt(0);
    const selectedText = range.toString();

    // Die markierte Zahl in eine Ganzzahl umwandeln
    let number = parseInt(selectedText, 10);

    // PrĂŒfen, ob die markierte Zahl eine gĂŒltige Zahl ist
    if (!isNaN(number)) {
        // 3 zur markierten Zahl hinzufĂŒgen
        number += 3;

        // Die markierte Zahl durch die neue Zahl ersetzen
        range.deleteContents();
        range.insertNode(document.createTextNode(number));
    } else {
        console.error("Die markierte Zahl ist nicht gĂŒltig.");
    }
} else {
    console.error("Kein Text markiert.");
}

}

  1. Gemini:
    // Funktion zum HinzufĂŒgen von 3 zu einer Zahl
    function addiereDrei(zahl) {
    // Konvertiere die Zahl in einen Gleitkommawert
    const nummer = parseFloat(zahl);

// Addiere 3 zur Zahl
const summe = nummer + 3;

// Formatiere die Summe als Zeichenfolge mit zwei Dezimalstellen
const summeString = summe.toFixed(2);

// Ersetze den markierten Wert mit der Summe
document.querySelector('#markierteZahl').textContent = summeString;
}

// Rufe die Funktion auf, um 3 zu 0,0 hinzuzufĂŒgen
addiereDrei('0,0');

Ich verstehe nichts davon, aber Spotlight rechnet auch und markiert (bereit um kopiert zu werden) das Ergebnis. :innocent:

sorry, ich meinte im speziellen die „transform selected text with chatgpt“ aktion mit z.B. diesem prompt:

„Add 3 to this, only return the result“

Wenn du transform with javascript machst sollte die Funktion ungefÀhr so ausschauen:

async (clipboardContentString) => {

return "" + parseFloat(clipboardContentString) + 3
}

1 Like

Fantastisch, danke! Du hast gefĂŒhlt 20 Zeilen Code auf 2 runtergebrochen und tatsĂ€chlich kann ich von 0,0 auf 3,0 wechseln (und mit einem anderen Shortcut) von 3 zurĂŒck auf 0. Das geht bereits.
Jetzt mĂŒsste es allerdings noch auf 6 weitergehen, bzw. -3, -6, -9 etc.

ChatGPT schlÀgt vor (funktioniert nicht, es bleibt bei 0,0):

async (clipboardContentString) => {
// Den aktuellen Wert aus dem clipboardContentString parsen
let currentValue = parseFloat(clipboardContentString);

// Den Wert um 3 erhöhen
let newValue = currentValue + 3;

// Den neuen Wert als String zurĂŒckgeben
return "" + newValue;
}

Vermute, weil am Ende der clipboardContentString nicht bedient wird?

das sollte eigentlich mein code schon tun (immer um 3 erhöhen). Ich bin leider heute nur mit Handy unterwegs, vielleicht ĂŒbersehe ich etwas. Ich kann heute Abend nochmal draufschauen!

Möglicherweise enthĂ€lt der clipboardContentString nicht den richtigen Wert. Du kannst die Aktion auch erstmal in einem Texteditor testen, um andere Fehlerquellen auszuschließen

Dann warte ich am besten auf heute Abend. :slight_smile:

Spotlight setzt das Ergebnis aber nicht in das Feld ein, das ich verÀndern will. (Eine Audio-Spur in LogicPro und die LautstÀrke soll geÀndert werden. Es ist extrem lÀstig, das mit der Maus einzustellen oder einzutippen. Taste + und ich habe +3dB an LautstÀrke wÀre phÀnomenal. Und die 3dB-Schritte helfen mir, im Falle eines Absturzes die Datei wieder herzustellen. :slight_smile:

hatte beim Tippen am Handy zwei Klammern vergessen. Hier noch eine etwas vereinfachte Version:

async (clipboardContentString) => {
   return parseFloat(clipboardContentString) + 3
}
1 Like

Das kann BTT machen :slight_smile: Vorausgesetzt, dieses Feld kann angesteuert werden.

Spotlight markiert das Ergebnis deiner Rechnung automatisch.

Kopiert man das, landet aber nur der Wert "3" in der Zwischenablage (ohne =). Es scheint mir offensichtlich, dass das dazu dient, weiterbenutzt zu werden.

Andreas' Lösung ist sicher besser. Ich hÀtte es so gemacht, weil ich keine Ahnung von scripts habe :slight_smile:

Danke! Ich musste noch 0,1s Pausen hinzufĂŒgen (als trigger) und es funktioniert und erleichtert mir das Arbeiten. Wunderschön :smiley:

Hahaha ich mag deine Ehrlichkeit und Offenheit, Frank. :wink: Geht mir genauso wie dir, wenn was nicht (schnell) geht, schaue ich (kreativ), wie ich das Problem anders lösen könnte. Die Finder-Markierung ist verfĂŒhrerisch.

Ich bin ziemlich baff, wie Andreas eine Menge Zeilen von ChatGPT/ Gemini auf 2 Zeilen reduziert. Das finde ich bewundernswert.

Er ist ein Ausnahmekönner in seinem Gebiet. Das zeigt sich aber eher nicht an diesen zwei Zeilen. :wink:

in diesem fall war die chatgpt ausgabe ziemlich offensichtlicher quatsch bzw. am thema vorbei :wink:

welche ich mehrfach gegengefragt und getestet habe, neu geladen und parallel Gemini benutzt. FĂŒr CoPilot hĂ€tte ich bezahlen mĂŒssen.
Definitiv kann ich meine Such- und Promptanfragen verbessern in Zukunft. Das gibt es bestimmt bald als Online-Kurs auf Udemy/Coursera "Richtig kommunizieren mit KĂŒnstlicher Intelligenz fĂŒr Fortgeschrittene". :wink: