hilfdirselbst.ch
Facebook Twitter gamper-media

**********************************************
        Facelifting HDS: Danke für deine Unterstützung!

**********************************************


fabiantheblind S
Beiträge: 92
23. Nov 2012, 10:29
Beitrag #1 von 10
Bewertung:
(3394 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Platform feststellen (win oder mac?)


Hallo Leute,
ich könnte mal wieder eure Hilfe gebrauchen.

Ich möchte feststellen auf welchem Betriebsystem der Nutzer meines Skriptes arbeitet. Da ich leider nur eine Betriebssystem benutze bin ich mir nicht sicher ob dieses Skript richtig ist. Ich würde mich freuen wenn ihr es kurz laufen lassen würdet und mir sagt ob es das richtige Ergebnis ausspuckt. Oder vielleicht hat ja jemand noch eine bessere Lösung.
Beste Grüsse
Fabian

Code
var res = checkOS(); 
if(res == true){
alert("WIN");
}else if(res == false){
alert("MAC");
}else{
alert("ERROR");
}

/*
* a function to check the operating system
*
* @returns true if the OS is windows
*/

function checkOS(){
var os_string = $.os;
var os_char = os_string.charAt(0);
var bool = null;
if (os_char == "w" || os_char == "W") {
bool = true;
}
else {
bool = false;
}
return bool;
}


Auf OSX 10.8.2 funktioniert es.
(Dieser Beitrag wurde von fabiantheblind am 23. Nov 2012, 10:44 geändert)
Top
 
X
Martin Fischer  M  p
Beiträge: 11808
23. Nov 2012, 10:51
Beitrag #2 von 10
Beitrag ID: #504574
Bewertung:
(3377 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Platform feststellen (win oder mac?)


Hallo Fabian,

im Prinzip liefert Dein Code das richtige Ergebnis.
Solange ein 'Mac'-OS ein 'Macintosh' ist und nicht etwa ein 'Wac'.

Eine Alternative (so lange Windows 'Windows' zurückgibt):
Code
var str_os = ($.os.search(/windows/i) != -1) ? 'Win' : 'Mac' 


Viele Grüße
Martin
als Antwort auf: [#504569] Top
 
fabiantheblind S
Beiträge: 92
23. Nov 2012, 10:58
Beitrag #3 von 10
Beitrag ID: #504576
Bewertung:
(3367 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Platform feststellen (win oder mac?)


Cool danke. Ich bin die ganze Zeit am überlegen und suchen ob es eine Variante gibt die sicherer ist. Deine und meine bauen drauf auf, dass der String aus $.os win beinhaltet.
Gibt es eine sicherere Variante?
Cheers
:F
als Antwort auf: [#504574] Top
 
Martin Fischer  M  p
Beiträge: 11808
23. Nov 2012, 11:35
Beitrag #4 von 10
Beitrag ID: #504585
Bewertung:
(3340 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Platform feststellen (win oder mac?)


Antwort auf: Gibt es eine sicherere Variante?


[Scherz ein]

Baue drauf, dass der String aus $.os macintosh beinhaltet. ;-)
Code
var str_os = ($.os.search(/macintosh/i) != -1) ? 'Mac' : 'Win' 

[/Scherz ein]

Nein, mir ist keine sicherere Alternative bekannt.
Welche realistischen Risiken siehst Du in dieser Abfrage?

Viele Grüße
Martin
als Antwort auf: [#504576] Top
 
fabiantheblind S
Beiträge: 92
23. Nov 2012, 11:41
Beitrag #5 von 10
Beitrag ID: #504586
Bewertung:
(3335 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Platform feststellen (win oder mac?)


Hehe. Scherzbold. ;)

Zitat Welche realistischen Risiken siehst Du in dieser Abfrage?

Bisher keine. Ich wollte nur sichergehen das ich nichts übersehe.

Cheers
:fab
als Antwort auf: [#504585] Top
 
WernerPerplies
Beiträge: 2184
23. Nov 2012, 12:00
Beitrag #6 von 10
Beitrag ID: #504592
Bewertung: ||
(3306 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Platform feststellen (win oder mac?)


Fabian,
Warum fragst Du nicht beide (Mac/Win) Versionen ab und verweigerst die Ausführung (Meldung mit Ergebnis), wenn kein Treffer erzielt wurde?

Einen schönen Tag wünscht

Werner Perplies
Auftragsprogrammierung und Skripte für Adobe InDesign
neu: WpsProjectHandler jetzt mit Vollwaschgang
Aktuelles
XING
als Antwort auf: [#504586] Top
 
fabiantheblind S
Beiträge: 92
23. Nov 2012, 12:33
Beitrag #7 von 10
Beitrag ID: #504596
Bewertung:
(3259 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Platform feststellen (win oder mac?)


Vielleicht so. Das wirkt sicher.
Code
 
var res = checkOS();
if((res[0] == true)&&(res[1]== false)){
alert("This is windows");
}else if((res[0] == false)&&(res[1]== true)){
alert("This is macintosh");
}else{
alert("ERROR");
}

/*
* a function to check the operating system
*
* @returns array of boolean
*/

function checkOS(){
var os_w = null;
var os_m = null;
os_w = ($.os.search(/windows/i) != -1) ? true : false;
os_m = ($.os.search(/macintosh/i) != -1) ? true : false;
return [os_w,os_m];

}

als Antwort auf: [#504592] Top
 
Gerald Singelmann  M  p
Beiträge: 6178
25. Nov 2012, 16:19
Beitrag #8 von 10
Beitrag ID: #504681
Bewertung:
(3187 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Platform feststellen (win oder mac?)


Wenn die Frage nur "Mac oder Win" ist, greife ich immer auf die File-Klasse zurück.
Code
if (File.fs == "Macintosh") { 
alert("Das ist wohl ein Mac");
} else if (File.fs == "Windows") {
alert("Ach was, Windows...");
} else {
alert("Huch! Unix?");
}

Es gibt wie meistens keine weitere Dokumentation, unter welchen Umständen es sein kann, dass ein Windows-Rechner ein Unix-Filesystem sieht.

Bisher bin ich aber noch nicht auf den Bauch gefallen damit.

--------------------------

InDesign-Wissen und Automatisierung nicht nur rund um die Suite.

http://www.cuppascript.com
als Antwort auf: [#504596] Top
 
fabiantheblind S
Beiträge: 92
27. Nov 2012, 17:39
Beitrag #9 von 10
Beitrag ID: #504788
Bewertung:
(3096 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Platform feststellen (win oder mac?)


Danke Gerald.
als Antwort auf: [#504681] Top
 
Uwe Laubender S
Beiträge: 4039
11. Mai 2017, 13:39
Beitrag #10 von 10
Beitrag ID: #557384
Bewertung:
(1601 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Platform feststellen (win oder mac?)


Hallo zusammen,

das ist zwar ein älterer Beitragsfaden, aber ich denke, das passt ganz gut hier herein.

Bei $.os hat sich ein Bug eingeschlichen, wenn es um die genaue Abfrage der Windows-Version geht.

Siehe u.a. hier:
Incorrect value of $.os on Windows 10
antosuv Feb 12, 2016
https://forums.adobe.com/message/8490942#8490942

Soweit ich mitbekommen habe, geschieht das bereits auf Windows 8 und nicht erst auf Windows 10.

Unser Mitforist Werner bietet nun eine Lösung basierend auf ExtendScript an.
Hier der verlinkte Artikel:

Windows-Version ermitteln
https://www.weepee.de/...c.php?f=62&t=130

Ich kann's nicht testen, bin auf Mac OSX unterwegs, aber soweit ich das verstanden habe, basiert die Lösung auf das Abfragen der Windows Management Instrumentation Command-line, kurz wmic:
https://msdn.microsoft.com/...31%28v=vs.85%29.aspx
*****
Mit herzlichem Gruß,
Uwe Laubender
als Antwort auf: [#504788] Top
 
X