Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Raimo •-->


Anmeldedatum: 20.08.2003 Beiträge: 111
|
Verfasst am: 20.08.2003 - 08:35 Titel: Namen der Activen Anwendung |
|
|
FRAGE
wie erhalte ich den namen der application die active ist bevor ich den script starte über einen shortcut??
WARUM und MEINE IDEEN
ich möchte in irgend einem programm der aktuell markierte bereich in die zwischenablage kopieren. dies soll mit Sändi's Additon TypeText "c" with command geschehen, weil diese nicht an eine application gebunden ist.
nun muss ich aber bevor ich TypeText "c" with command ausführe das gewünschte programm activieren(wenn ich den script starte ist ja der script dann das active programm).
Wenn ich diessen code im Scripteditor laufen lasse kommt schön das ergebnis "ScriptEditor"
tell application "Finder"
set programm to (name of first process whose frontmost is true as list)
display dialog "Apllication in front: " & (programm as string)
end tell
starte ich den script aber über einen shortcut (auf zBs. F5) dann ist das ergebniss "Frontmost application" was wohl bedeuten soll, das der script selber die frontmost application ist. |
|
Nach oben |
|
 |
Raimo •-->


Anmeldedatum: 20.08.2003 Beiträge: 111
|
Verfasst am: 20.08.2003 - 09:20 Titel: |
|
|
ich habe was hier im forum was gefunden(http://www.fischer-bayern.de/phpBB2/viewtopic.php?t=468) und das es keine möglichkeit gibt ist ziemlich mühsam
unter windows (bitte nicht schlagen) kann man ja mit Ctrl + Tap zwischen 2 programmen immer hin und her wechseln (erst wenn man mehrmals Tap bei gedrückter Ctrl taste drückt kommt man in die anderen progemme) gibt es unter Mac nicht auch so eine möglichkeit? so könnte man auf das vor dem script aktive programm zurück springen!! |
|
Nach oben |
|
 |
Raimo •-->


Anmeldedatum: 20.08.2003 Beiträge: 111
|
Verfasst am: 20.08.2003 - 10:00 Titel: IDEE |
|
|
tell application "Finder"
set anzahlProgramme to count (name of every process as list)
end tell
repeat anzahlProgramme - 1 times
TypeText (ASCII character 9) with Command
end repeat
jetzt muss ich nur noch eine eigenschaft der processe finden die diese, die man mit propeler + tab erreichen kann, von den anderen unterscheidet |
|
Nach oben |
|
 |
Raimo •-->


Anmeldedatum: 20.08.2003 Beiträge: 111
|
Verfasst am: 20.08.2003 - 10:35 Titel: |
|
|
ach mensch!!
tell application "Finder"
set anzahlProgramme to count (name of every process whose visible is true) as list
end tell
repeat anzahlProgramme times
TypeText (ASCII character 9) with Command
end repeat
jetzt habe ich die anzahl der programme durch die man navigieren kann, aber das ganz funktioniert ja nicht, weil das (sorry) doofe sture OS ja einfach immer der Liste nach die Programme wechselt (war selber doof, dass ich das nicht gemerkt habe, war ja vorher schon klar)
naja, jetzt gehen mir langsam die ideen aus!
hat niemand eine idee wie man heraus findet welches programm vor dem script aktiv war!!! ???? |
|
Nach oben |
|
 |
Snow Administrator


Anmeldedatum: 21.11.2000 Beiträge: 1946 Wohnort: Deiningen
|
Verfasst am: 20.08.2003 - 17:43 Titel: |
|
|
Hallo Raimo,
unter OS X funktioniert das Wechseln zwischen Programmen genauso wie du es für Windows beschrieben hast.
Für OS 9.x sieht's allerdings anders aus.
Befehlstaste + Tab schaltet immer weiter durch alle geöffneten Programme.
Wenn man jetzt allerdings noch zusätzlich die Shift-Taste drückt, geht's in der Reihenfolge zurück. Das dürfte dir weiterhelfen.
TypeText tab with Shift and Command
delay 1
TypeText "c" with Command
Ich kann mir zwar nicht vorstellen, wofür das gut sein soll, denn alle Programme, bei denen es Sinn macht, reagieren doch auf die Tastenkombi Befehlstaste-C zum Kopieren. Das geht doch einfacher, als erst ein Skript zu starten. _________________ Peter
-
Fischer-Bayern.de|Shadetreemicro.com |
|
Nach oben |
|
 |
Snow Administrator


Anmeldedatum: 21.11.2000 Beiträge: 1946 Wohnort: Deiningen
|
Verfasst am: 20.08.2003 - 17:59 Titel: |
|
|
Nachtrag:
Das obige Verfahren funktioniert nur, wenn die Reihenfolge in der Programm-Palette auf "Startreihenfolge - launch order" gestellt ist.
Ich weiß gar nicht, ob bzw. wo man das evtl. manuell einstellen kann.
Mit AppleScript geht's auf jeden Fall so:
tell application "Programmumschalter"
set theOrder to button ordering of palette
if theOrder is not launch order then
set button ordering of palette to launch order
end if
end tell _________________ Peter
-
Fischer-Bayern.de|Shadetreemicro.com |
|
Nach oben |
|
 |
Raimo •-->


Anmeldedatum: 20.08.2003 Beiträge: 111
|
Verfasst am: 21.08.2003 - 09:45 Titel: |
|
|
Snow hat Folgendes geschrieben: |
TypeText "c" with Command[/size]
Ich kann mir zwar nicht vorstellen, wofür das gut sein soll, denn alle Programme, bei denen es Sinn macht, reagieren doch auf die Tastenkombi Befehlstaste-C zum Kopieren. Das geht doch einfacher, als erst ein Skript zu starten. |
ja, die kombi propeller + c funktioniert schon in allen programme, aber wenn ich den script start und dann ohne in ein programm zu wechseln (tell application "XXX") propeller + c mit TypeText auslöse wird die tastenkombi auf den script angewendet, da dieser ja activated ist.
ich möchte aber, dass die kombi auf das programm (ein x beliebiges) vor dem start des script angewendet wird und darum suche ich eine möglichkeit, wie ich ein programm zurück (das welches als letztes activeted war) wechseln kann um den namen der application mit
tell application "Finder"
set avivesProgramm to (name of first process whose frontmost is true) as list
end tell
zuspeichern und damit zu arbeiten(TypeText tab with command).
Zuletzt bearbeitet von Raimo am 21.08.2003 - 12:41, insgesamt einmal bearbeitet |
|
Nach oben |
|
 |
Raimo •-->


Anmeldedatum: 20.08.2003 Beiträge: 111
|
Verfasst am: 21.08.2003 - 10:53 Titel: |
|
|
Snow hat Folgendes geschrieben: | Nachtrag:
Das obige Verfahren funktioniert nur, wenn die Reihenfolge in der Programm-Palette auf "Startreihenfolge - launch order" gestellt ist.
Ich weiß gar nicht, ob bzw. wo man das evtl. manuell einstellen kann.
Mit AppleScript geht's auf jeden Fall so:
tell application "Programmumschalter"
set theOrder to button ordering of palette
if theOrder is not launch order then
set button ordering of palette to launch order
end if
end tell |
auf lanche order ist doch eben falsch, nicht? es müsste auf benutzungsreihenfolge gestellt sein, oder? das programm welches vor dem script akive war ist ja nicht zwingend das programm welches ich als letztes vor dem script gestartet habe. |
|
Nach oben |
|
 |
Raimo •-->


Anmeldedatum: 20.08.2003 Beiträge: 111
|
Verfasst am: 21.08.2003 - 11:16 Titel: |
|
|
supi
button ordering alphabetical/launch order/reverse alphabetical/reverse launch order
keine möglichkeit um nach avtivity oder so zu ortnen  |
|
Nach oben |
|
 |
Snow Administrator


Anmeldedatum: 21.11.2000 Beiträge: 1946 Wohnort: Deiningen
|
Verfasst am: 21.08.2003 - 18:09 Titel: |
|
|
Ich gehe mal davon aus, dass das Kopieren nicht alles ist, was du beabsichtigst, denn das würde per Skript ja nun wirklich keinen Sinn machen.
Die Lösung:
Lade dir aus meinem Download-Bereich das OSA-Menü herunter und speichere dein Skript im "Universal Folder".
Wenn du nun in einem Programm etwas markiert hast, brauchst du das Skript nur über das OSA-Menü aufzurufen. Es arbeitet im Hintergrund und dadurch bleibt dein gewünschtes Programm im Vordergrund und somit wird auch aus diesem Programm heraus kopiert. _________________ Peter
-
Fischer-Bayern.de|Shadetreemicro.com |
|
Nach oben |
|
 |
Raimo •-->


Anmeldedatum: 20.08.2003 Beiträge: 111
|
Verfasst am: 22.08.2003 - 09:57 Titel: |
|
|
Snow hat Folgendes geschrieben: | Ich gehe mal davon aus, dass das Kopieren nicht alles ist, was du beabsichtigst, denn das würde per Skript ja nun wirklich keinen Sinn machen. |
Richtig, ist nicht alles, ich möchte den Text mit hilfe einer Filemaker DB in eine ander Sprache übersetzen.
Snow hat Folgendes geschrieben: |
Die Lösung:
Lade dir aus meinem Download-Bereich das OSA-Menü herunter und speichere dein Skript im "Universal Folder".
Wenn du nun in einem Programm etwas markiert hast, brauchst du das Skript nur über das OSA-Menü aufzurufen. Es arbeitet im Hintergrund und dadurch bleibt dein gewünschtes Programm im Vordergrund und somit wird auch aus diesem Programm heraus kopiert. |
THX werde das gleich mal ausprobieren |
|
Nach oben |
|
 |
Raimo •-->


Anmeldedatum: 20.08.2003 Beiträge: 111
|
Verfasst am: 22.08.2003 - 10:01 Titel: |
|
|
Snow hat Folgendes geschrieben: | Ich gehe mal davon aus, dass das Kopieren nicht alles ist, was du beabsichtigst, denn das würde per Skript ja nun wirklich keinen Sinn machen. |
Richtig, ist nicht alles, ich möchte den Text mit hilfe einer Filemaker DB in eine ander Sprache übersetzen.
Snow hat Folgendes geschrieben: |
Die Lösung:
Lade dir aus meinem Download-Bereich das OSA-Menü herunter und speichere dein Skript im "Universal Folder".
Wenn du nun in einem Programm etwas markiert hast, brauchst du das Skript nur über das OSA-Menü aufzurufen. Es arbeitet im Hintergrund und dadurch bleibt dein gewünschtes Programm im Vordergrund und somit wird auch aus diesem Programm heraus kopiert. |
THX werde das gleich mal ausprobieren |
|
Nach oben |
|
 |
Raimo •-->


Anmeldedatum: 20.08.2003 Beiträge: 111
|
Verfasst am: 22.08.2003 - 10:43 Titel: |
|
|
Snow du bist ein SCHMATZ
Eines der wenigen foren wo sich ein profi rum tummelt und sich auch die zeit nimmt auf fragen richtig einzugehen!! THX
cool, jetzt kann ich einfach propeller + T (Frontmost application \T) drücken und der script wird gestartet! nun ist die frontmost application auch die frontmost! einfach cool
einziger "schwachunkt" (kann auch ein vorteil sein) das propeller + T des OSA Menu ist mächtiger als dieses einer appliaction zBs. Freehand. da muss ich wohl einen shotcut finden, der nicht überlappt mit dem der programme
Echt gute Page Snow(war die erste die ich beim googlen entdeckt habe, wie konnte ich nur das forum solange übersehen)!
ach ja falls noch wer mehr infos zum OSA Menu braucht [url] http://www.lazerware.com/osamenu/OSAMenu_Docs.html[/url] |
|
Nach oben |
|
 |
Raimo •-->


Anmeldedatum: 20.08.2003 Beiträge: 111
|
Verfasst am: 22.08.2003 - 11:33 Titel: |
|
|
EDIT- obs habe den fehler glaub gesehen
Nein, doch, wer hat die voodopuppe wieder hervor genommen !!
immer wenn ich im finder bin aund den script über das osa menu starte spinnt der MAC oder stürtz ab.
aber das sollte doch nicht sein?
try
tell application "Finder"
set Programm to (name of every process whose frontmost is true) as string
if Programm = "" then set Programm to "Finder"
display dialog "Programm: " & Programm as string
end tell
on error
display dialog "Ein Programm muss geöffnet sein!"
end try
es nütz gar nichts auch das try error bringt keine abhilfe  |
|
Nach oben |
|
 |
Snow Administrator


Anmeldedatum: 21.11.2000 Beiträge: 1946 Wohnort: Deiningen
|
Verfasst am: 22.08.2003 - 15:30 Titel: |
|
|
Hallo Raimo,
nix is mit Voodoo!
Zunächst wäre mal interessant, zu erfahren, welche Systemversion und welche Version von AppleScript du im Einsatz hast.
Ich habe hier OS 9.1 und AppleScript 1.8.2b3
Meine Kiste stürzt nicht gleich ab - allerdings funktioniert dein Skript hier auch nicht, wenn der Finder im Vordergrund ist.
Irgendwas passt nicht an der if-Abfrage.
Ich habe das Skript mal eben so umgebaut, dass falls die Variable "Programm" leer ist eine andere Meldung kommt (kommen sollte).
try
tell application "Finder"
set tProgramm to (name of every application process whose frontmost is true)
if tProgramm = "" then
set tProgramm to "Finder"
display dialog "Der Finder ist im Vordergrund"
else
display dialog "Programm: " & tProgramm as string
end if
end tell
on error errMsg number errNr
display dialog errNr & return & errMsg
--display dialog "Ein Programm muss geöffnet sein!"
end try
Ist der Finder im Vordergrund, scheint die Variable nicht wirklich leer zu sein, denn ich bekomme immer die Meldung angezeigt "Programm: "
Es steht halt einfach kein Programmname da.
So, jetzt habe ich in der Zwischenzeit etwas geforscht.
Falls der Finder im Vordergrund ist, bekommt man als Ergebnis eine leere Liste. Die if-Abfrage müsste demnach etwa so aussehen:
tell application "Finder"
set frontApp to (name of every process whose frontmost is true)
if frontApp = {} then display dialog "Der Finder ist im Vordergrund"
end tell _________________ Peter
-
Fischer-Bayern.de|Shadetreemicro.com |
|
Nach oben |
|
 |
|