[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt [JavaScript] angemeldeten Benutzernamen herausfinden

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Print/Bildbearbeitung - Photos, Layout, Design
Themen
Beiträge
Moderatoren
Letzter Beitrag

[JavaScript] angemeldeten Benutzernamen herausfinden

Martin Fischer
  
Beiträge gesamt: 12783

18. Nov 2008, 15:19
Beitrag # 1 von 20
Bewertung:
(40040 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

ich suche nach einer Möglichkeit, aus InDesign heraus den im System angemeldeten Benutzernamen per JavaScript auszulesen.

Auf dem Mac habe ich einen (wackeligen) workaround gefunden, indem ich den Pfad des Skript-Ordners auswerte (der Username steht zwischen dem 2. und dem 3. Slash):

Code
var p = app.scriptPreferences.scriptsFolder.relativeURI; 
alert (p.split( '/')[2] );


Funktioniert das auch unter Windows?
Oder weiß jemand eine Alternative?
X

[JavaScript] angemeldeten Benutzernamen herausfinden

flobuc
Beiträge gesamt: 246

18. Nov 2008, 18:01
Beitrag # 2 von 20
Beitrag ID: #375183
Bewertung:
(40012 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Herr Fischer,

unter Windows funktioniert folgender Befehl:
Code
$.getenv("USERNAME")); 


auf Mac:

Code
$.getenv("USER")); 


Die Unterscheidung ob Win oder Mac:
Code
if($.os.substring(0,7)=="Windows"){ 
//Win
} else {
//Mac
}


Gruss

Florian


als Antwort auf: [#375128]

[JavaScript] angemeldeten Benutzernamen herausfinden

Martin Fischer
  
Beiträge gesamt: 12783

18. Nov 2008, 18:41
Beitrag # 3 von 20
Beitrag ID: #375191
Bewertung:
(39998 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Florian,

prima!
Danke.


als Antwort auf: [#375183]

[JavaScript] angemeldeten Benutzernamen herausfinden

Martin Fischer
  
Beiträge gesamt: 12783

18. Nov 2008, 21:08
Beitrag # 4 von 20
Beitrag ID: #375204
Bewertung:
(39963 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Wer InDesign beim Start begrüßen möchte, kann das folgende Skriptle in den Startup-Ordner legen.
Wer weiß, für was das gut ist. ;-)

Code
var myString = 'Hallo InDesign ' + app.version + ', ich bin ' + getUser() + '.'; 
alert ( myString );

function getUser() {
var myUser = ($.os.substring(0, 7)=="Windows")
? $.getenv("USERNAME")
: $.getenv("USER");
return myUser;
}


Florian, ich danke Dir nochmals.
Nun hege ich den stillen Verdacht, Du könntest mir noch mehr zu $.getenv() und co. verraten.
Im Debugger nutze ich gern $.writeln(). Kannst Du mir eine Quelle für weitere '$.' nennen?


als Antwort auf: [#375183]

[JavaScript] angemeldeten Benutzernamen herausfinden

Gerald Singelmann
  
Beiträge gesamt: 6269

18. Nov 2008, 21:22
Beitrag # 5 von 20
Beitrag ID: #375207
Bewertung:
(39960 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Martin, $ ist eine Core JavaScript Class.

Welche anderen environment Variablen es gibt, muss dann wohl in einer Systemdokumentation stehen.


als Antwort auf: [#375204]

[JavaScript] angemeldeten Benutzernamen herausfinden

Martin Fischer
  
Beiträge gesamt: 12783

18. Nov 2008, 21:42
Beitrag # 6 von 20
Beitrag ID: #375210
Bewertung:
(39950 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Gerald,

danke.
Also mit Core will ich dann doch lieber nix zu tun haben.


als Antwort auf: [#375207]

[JavaScript] angemeldeten Benutzernamen herausfinden

Gerald Singelmann
  
Beiträge gesamt: 6269

18. Nov 2008, 22:34
Beitrag # 7 von 20
Beitrag ID: #375221
Bewertung:
(39933 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Zitat Also mit Core will ich dann doch lieber nix zu tun haben.

Warum nicht? File und Folder sind auch Core Klassen.


als Antwort auf: [#375210]

[JavaScript] angemeldeten Benutzernamen herausfinden

flobuc
Beiträge gesamt: 246

19. Nov 2008, 09:52
Beitrag # 8 von 20
Beitrag ID: #375262
Bewertung:
(39892 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Herr Fischer,

die Core-Klassen stellen das Grundgerüst der gesamten JavaScript implementierung dar und können auf jeden Fall gefahrlos benutzt werden. Die Core-Klassen sind in der ECMA-Spezification vorgegeben. Jeder der eine Standard-konforme Implementierung der Javascript-Spezification vornimmt (wahrscheinlich sind die wenigsten Standard-konform) muss diese Klassen implementieren. Zusätzlich steht es jeder Implemtierung frei zu den Core-Klassen noch weitere nützliche Klassen hinzuzufügen . Bei der InDesign-Implementierung gibt es hier $, File, Folder und noch ein paar zusätzliche Klassen. Die Klassen $, File, Folder gibt es z.B. in den Browser-Implementierungen nicht.

Mit $.getenv() können verschiedene Umgebungsvariablen des Betriebssystem abgefragt werden. Um sich diese Variablen anzeigen zu lassen, öffnen Sie auf dem Mac Programme/Dienstprogramme/Konsole und geben den Befehl "set" ein.

Gruss

Florian


als Antwort auf: [#375210]

[JavaScript] angemeldeten Benutzernamen herausfinden

Martin Fischer
  
Beiträge gesamt: 12783

19. Nov 2008, 10:09
Beitrag # 9 von 20
Beitrag ID: #375264
Bewertung:
(39888 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Gerald und Florian,

ich danke für die Ausführungen.
Das hilft mir weiter.


als Antwort auf: [#375262]

[JavaScript] angemeldeten Benutzernamen herausfinden

Martin Fischer
  
Beiträge gesamt: 12783

23. Mär 2009, 12:59
Beitrag # 10 von 20
Beitrag ID: #390481
Bewertung:
(39338 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Florian,

mit $.getenv("USER")); bekomme ich auf dem Mac die Kurzfassung des Benutzernamens.
Auch mit $.getenv("LOGNAME")); bekomme ich nur die Kurzform zurück.

Kannst Du mir sagen, wie ich an die Langfassung (RealName) komme?

In der Shell geht das so:
Code
dscl . -read /Users/[USER] RealName 


Aber wie komme ich über das Auslesen der Umgebungsvariablen aus einem JavaSkript in InDesign da ran?


als Antwort auf: [#375183]

[JavaScript] angemeldeten Benutzernamen herausfinden

Peter Kahrel
Beiträge gesamt: 182

23. Mär 2009, 15:12
Beitrag # 11 von 20
Beitrag ID: #390500
Bewertung:
(39308 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Zitat Welche anderen environment Variablen es gibt, muss dann wohl in einer Systemdokumentation stehen.


Help > JavaScript ToolsGuide CS4 (in the ESTK), pp. 210-213.

Peter


als Antwort auf: [#390481]

[JavaScript] angemeldeten Benutzernamen herausfinden

flobuc
Beiträge gesamt: 246

23. Mär 2009, 15:21
Beitrag # 12 von 20
Beitrag ID: #390502
Bewertung:
(39306 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,

über getenv kommst du an diese Information nicht ran.
Wie wichtig ist dir denn die Information?
Ich kenn nur eine Methode um da ran zu kommen und die ist direkt über das Betriebssystem.
Dazu musst du aber von Javascript auf VB bzw. AppleScript wechseln, weil meines Wissens nur diese Zugriff auf die Shells (Terminals, Konsolen oder wie auch immer) der zwei Betriebssysteme haben.

Das Konstrukt würde grop so aussehen:
1. Abfrage auf welchem System befinden wir uns (Mac oder Windows)
2. Dann über app.doScript ein VB- oder Apple-Script starten
3. in den Skript dann den entsprechenden Systemaufruf (in deinem Fall der "dscl"
4. Ergebnis auslesen

Das würde funktionieren ist bloß ein bischen aufwendiger.

Gruss

Flo


als Antwort auf: [#390481]

[JavaScript] angemeldeten Benutzernamen herausfinden

Martin Fischer
  
Beiträge gesamt: 12783

23. Mär 2009, 15:30
Beitrag # 13 von 20
Beitrag ID: #390505
Bewertung:
(39305 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi Peter,

pretty good.
Until now I have overlooked it.

Thank you.


als Antwort auf: [#390500]

[JavaScript] angemeldeten Benutzernamen herausfinden

Martin Fischer
  
Beiträge gesamt: 12783

23. Mär 2009, 15:36
Beitrag # 14 von 20
Beitrag ID: #390506
Bewertung:
(39299 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Florian,

an das Anzapfen der Shell über doScript() habe ich auch schon gedacht.
Und für AppleScript wüßte ich da auch die Lösung.
Für Win (dafür bräuchte ich es) kenne ich sie aber nicht.

Eventuell reicht mir bzw. meinem Kunden aber auch der app.userName.

Danke für Deine Info.


als Antwort auf: [#390502]

[JavaScript] angemeldeten Benutzernamen herausfinden

Peter Kahrel
Beiträge gesamt: 182

23. Mär 2009, 17:41
Beitrag # 15 von 20
Beitrag ID: #390520
Bewertung:
(39270 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Martin,

I forgot about this one: ~ (the tilde) designates the user's home directory, so that a line like this

Folder ('~').openDlg ("Select some files")

opens the OS's file select dialog and selects the user's folder. Maybe that could be useful to you. (See p. 40 of the same PDF file.)

Regards,

Peter


als Antwort auf: [#390506]
X