SuperWimmie Posted October 27, 2015 Share Posted October 27, 2015 Dag allemaal, Het gros van jullie is hardstikke handig met MAC systemen. Ik niet, ik ben zo'n ouwe knar die lekker op Windows 10 blijft zitten en daar zeer, zeer, maar dan ook zeer tevreden mee is Maar alle gekheid op een stokje, nu even een echte MAC vraag voor de echte MAC kenner. In Windows is een lokale harde schijf te herkennen als C: of D:. In 95% van de gevallen weet ik dan dat het een lokale schijf is. Via de get ( FilePath ) herken ik of C: of D: daarin aanwezig is. Nu zoek ik ook zo'n herkenning in de MAC. Hoe valt dit te controleren? Quote Link to comment
0 marcelboot Posted October 27, 2015 Share Posted October 27, 2015 Wim, op een Mac heeft de C schijf gewoon een naam. Meestal Macintosh HD als basis. Een andere partitie (andere interne schijf) heeft ook een naam, die zelf gekozen wordt. Het pad daarna is altijd Maciontosh HD/users/usernaam/desktop/ enzovoorts Quote Link to comment
0 Jos Hofman Posted October 27, 2015 Share Posted October 27, 2015 "ls -l /Volumes". geeft je een lijst van alle volumes die aan je systeem hangen. Je kunt -l weglaten dan wordt het wat korter. Je kunt de opdracht doen via Applescript of met een plugin bv. Baseelements: BE_ExecuteSystemCommand ( "ls /Volumes" ) Quote Link to comment
0 SuperWimmie Posted October 27, 2015 Author Share Posted October 27, 2015 Dank voor de reacties! Met betrekking tot plugins, als er ook maar ergens een mogelijkheid is zonder plugin, dan heeft (uiteraard) dat de voorkeur. Dat er een lijst te maken valt van alle volumes is wel aardig, maar daar haal ik het onderscheid ook niet uit. Op mijn Mac kan ik de naam van de lokale harde schijf wel heel simpel aanpassen. De naam van de schijf lijkt mij dan ook geen goed uitgangspunt. Wie heeft er nog meer ideetjes? Quote Link to comment
0 SuperWimmie Posted October 27, 2015 Author Share Posted October 27, 2015 Ideetje, misschien... Zou ik het buroblad pad kunnen vergelijken met de installatie pad van Filemaker? Een buroblad pad zal in het algemeen op de lokale computer staan, lijkt me. De beperking ontstaat dan wel dat bij dubbele schijven het nog geen zuiver resultaat geeft, wat je tegenwoordig met de SSD schijven vaak ziet gebeuren. Maar netwerkbeheerders die MAC kennen, weten hoe of dit zit, vooral in combinatie met servers. Wie weet hier meer van? Quote Link to comment
0 Banach Posted October 27, 2015 Share Posted October 27, 2015 Even voor mijn beeldvorming; waarom wil je weten of een database op een lokaal of een remote volume staat? Wanneer het om een bestand onder FMS gaat krijg je trouwens fmnet:/... terug bij Get[filepath] Quote Link to comment
0 SuperWimmie Posted October 27, 2015 Author Share Posted October 27, 2015 Het is vanwege licentiekosten van een programma dat ik 3 jaar op de markt heb staan. Is bijna 500 keer verkocht, het blijkt dat netwerksituaties veel meer helpdesk nodig heeft dan een lokale installatie. In Nederland kom ik 98% Windows tegen, maar nu gaan we met dat pakket naar Duitsland. Daar zou Mac wel eens vaker kunnen voor gaan komen, en daar zit een Filemaker bedrijfje dat de ondersteuning gaat doen. Vandaar dat ik het weten wil, de "netwerk" installatie is wat duurder. Quote Link to comment
0 PJ007 Posted October 27, 2015 Share Posted October 27, 2015 Zie bijgevoegd voorbeeld. FilePath.fmp12.zip Houd er rekening mee dat het voorbeeld alleen met Filemaker Pro Advanced werkt. Applescript is namelijk native en dus hard-coded, maar makkelijk aan te passen. Applescript kijkt welke netwerk volumes aanwezig zijn en geeft een string aan Filemaker door, waarbij de volumes gescheiden zijn door een dubbele punt. Dubbele punt is het enige teken dat niet in een bestandsnaam op een Mac gebruikt mag worden. Filemaker maakt er weer een lijst van en controleert of de volume naam in get ( FilePath ) voorkomt. Ps. "ls -l /Volumes" geeft ook de lokale harde schijf, dus daar heb je niet zo veel aan. Quote Link to comment
0 menno Posted October 27, 2015 Share Posted October 27, 2015 Hi Wim, ik zie niet helemaal wat je precies zoekt. Als je wilt weten wat het pad naar de installatie van je programma is kan je: Get ( FileMakerPath ) gebruiken en als je het pad naar het huidige geopende bestand wilt weten kan je: Get ( FilePath ) gebruiken. Op een mac moet je daar filemac: voor zetten als je dat pad ergens voor wilt gebruiken zoals een bestand exporteren. Als je wilt weten wat er aan schijven is aangesloten en hoe de systeemschijf heet dan zou je een scriptje kunnen maken met de volgende inhoud: Set Variable [$result; Value:Let ( [ L = Substitute ( Get ( DocumentsPath ) ; [ "/" ; ¶ ] ) ; n = ValueCount ( L ) - 1 ; P = Substitute ( LeftValues ( L ; n ) ; [ ¶ ; "/" ] ) ; $F = ".bashresult.txt" ; $path = "filemac:" & P & $F ] ; "" )] Perform AppleScript ["do shell script \"ls -l /Volumes/ > " & $F & "\""] Import Records [No dialog; "$path"; Add; Mac Roman] Het importeren doe je gewoon uit text in een tabel met één veld. De inhoud ziet er ongeveer uit als: total 112 -rw-r--r-- 1 user admin 190 27 okt 20:14 Macintosh lrwxr-xr-x 1 root admin 1 27 okt 07:00 Macintosh HD -> / drwxrwxrwx 0 root wheel 0 27 okt 21:25 MobileBackups drwx------ 1 user staff 16384 28 dec 2014 data drwx------ 1 user staff 16384 15 feb 2015 films drwx------ 1 user staff 16384 18 jan 2015 muziek Na het uitvoeren van dit script zoek je bijvoorbeeld het record waar de tekst eindigt op " -> /" en daar kan je dan met Let ( [ V = ImportVeld ; O = 46 ; P = Position ( V ; " -> /" ; O ; 1 ) ] ; Middle ( V ; O ; P - O ) ) uitfilteren hoe de "root" heet en waar je systeem is opgestart. Met een plug-in zoals base-elements is dit een stuk simpeler te realiseren, maar dit werkt ook BTW net zoals jij ben ik ook nog steeds een WIndows-gebruiker Quote Link to comment
0 SuperWimmie Posted October 27, 2015 Author Share Posted October 27, 2015 Menno, PJ007, Stel dat ik een MAC aantref met maar 1 harde schijf er in. Dat is dan altijd de systeemschijf. Stel dat ik in Filemaker het pad naar het buroblad vraag, dan zal dat altijd een tekststring terug geven met de systeemschijf er in benoemd. Toch? Deze is te vergelijken met de map waarin Filemaker draait (ook via Get op te vragen), zodra deze overeenkomst weet ik dat Filemaker op de lokale schijf is geinstalleerd. Tenminste, is mijn gedachte, maar dat moet nog even getest worden. Ik zie echter een paar valluiken. a. Er zijn MAC systemen met twee lokale harde schijven, de tweede lokale schijf is niet te herkennen. b. Ik heb geen flauw idee of het buroblad op een netwerkschijf te parkeren valt. In Windows kan dat, maar gebeurt vrijwel nooit. Ik ga morgen maar eens puzzelen. Dank voor de reacties, heren!! Quote Link to comment
0 menno Posted October 27, 2015 Share Posted October 27, 2015 Wim je kan met df -bh opvragen wat er allemaal partitities is gekoppeld aan de mac (ook weer icm het voorbeeld in mijn vorige post) Je krijgt dan een antwoord dat lijkt op: Filesystem Size Used Avail Capacity Mounted on /dev/disk0s2 465Gi 356Gi 109Gi 77% / devfs 185Ki 185Ki 0Bi 100% /dev map -hosts 0Bi 0Bi 0Bi 100% /net map auto_home 0Bi 0Bi 0Bi 100% /home localhost:/a1jNyXWaRWzGYLKlashfO9 465Gi 465Gi 0Bi 100% /Volumes/MobileBackups //user@sambaserver/films 252Gi 73Gi 179Gi 29% /Volumes/films //user@sambaserver/data 252Gi 191Gi 61Gi 76% /Volumes/data //user@sambaserver/muziek 252Gi 215Gi 37Gi 86% /Volumes/muziek /dev/disk1s1 238Gi 177Gi 61Gi 75% /Volumes/SSD daar kan je gewoon uitfilteren wat een lokale schijf is door te kijken wat er op achter /dev/... hangt. De enige caveat die daar overblijft is dat je niet kan zien wat een interne en wat een externe schijf is. In het voorbeeldlijstje is /dev/disk0s2 de interne SSD en /dev/disk1s1 is een externe SSD Het tweede probleem dat je noemt zal op MacOS niet vaak voorkomen, eigenlijk kan je wel zeggen bijna nooit. Je moet eerst NFS opzetten en dan kan je op het netwerk voor de users $home mappen opzetten. Ik verwacht dat dit héél soms met open-directory wordt gedaan, maar MacOS maakt het je niet gemakkelijk om dit op te zetten (van de client zijde dan, want je moet eerst met OD op je netwerk inloggen om dit te kunnen gebruiken). Verder denk ik dat je dit dan met df -bh moet kunnen zien want map auto_home zal dan niet meer aan /home hangen maar een pad hebben in de trend van /Volumes/ODServerFolder/home hebben .... gemakkelijk te herkennen dus. Quote Link to comment
0 SuperWimmie Posted October 28, 2015 Author Share Posted October 28, 2015 Voorlopig heb ik het opgelost. De beste optie lijkt me om het buroblad pad "get ( desktoppath )" uit te kleden, zodat de naam van de schijf in beeld komt. Vervolgens wordt deze op aanwezigheid getest in de lokatie van de FMP12 file "get ( filepath )". Zo ja, dan weet ik zeker dat het programma lokaal geinstalleerd staat. Zo nee, dan kan het nog op een tweede schijf staan, of op een netwerk schijf. Voorlopig doe ik het daar maar even mee. Eerst maar eens zien hoe de markt er op reageert. Het programma is snel en eenvoudig in gebruik, men zal er niet al te zwaar aan tillen dat het op een SSD schijf geplaatst moet worden, mochten we Macjes aantreffen met twee schijven. @PJ007: Jouw script is precies wat ik zou willen hebben. Maar het moet ook functioneren in Pro en vooral ook in de Runtimer. Als ik jou zo begrijp dan werkt Apple Script niet onder een Pro of Runtimer... (is dat zo?). @Menno: Dit lijkt op wat PJ007 in zijn script heeft toegepast. Dank voor de inspanningen, heren! Quote Link to comment
0 menno Posted October 28, 2015 Share Posted October 28, 2015 Het scriptje van PJ007 werkt puur met applescript en mijn voorbeeld gebruikt de terminal, maar het resultaat kan hetzelfde zijn. Het scriptje van PJ007 is wél veel eenvoudige in te bouwen. Ik heb net ook even gekeken om het universeel werkend te krijgen: De eerste stap in het script is een "native" applescript uitvoeren. Als je die aanpast naar een "calculated applescript" en daar de volgende inhoud in zet: Let ( [ apppath = Get ( FileMakerPath ) ; appname = Case ( PatternCount ( apppath ; "FileMaker" ) = 0 ; "MyRuntimeName" ; PatternCount ( apppath ; "Advanced" ) = 0 ; "FileMaker Pro" ; "FileMaker Pro Advanced" ) ] ; "tell application \"Finder\"¶ set ListVolumes to get name of every disk whose local volume is false¶ end tell¶ ¶ set oldDelim to AppleScript's text item delimiters¶ set AppleScript's text item delimiters to \":\"¶ set ListFMVolumes to ListVolumes as text¶ set AppleScript's text item delimiters to oldDelim¶ ¶ tell application \"" & appname & "\"¶ tell database \"FilePath\"¶ tell table \"FilePath\"¶ set cell \"g_LijstVolumes\" to ListFMVolumes¶ end tell¶ end tell¶ end tell" ) en je vervangt daarin "MyRuntimeName" voor de naam van jouw runtime, dan werkt het altijd (mits de gebruikers de apps niet zelf hernoemen) Quote Link to comment
Question
SuperWimmie
Dag allemaal,
Het gros van jullie is hardstikke handig met MAC systemen.
Ik niet, ik ben zo'n ouwe knar die lekker op Windows 10 blijft zitten en daar zeer, zeer, maar dan ook zeer tevreden mee is
Maar alle gekheid op een stokje, nu even een echte MAC vraag voor de echte MAC kenner.
In Windows is een lokale harde schijf te herkennen als C: of D:.
In 95% van de gevallen weet ik dan dat het een lokale schijf is.
Via de get ( FilePath ) herken ik of C: of D: daarin aanwezig is.
Nu zoek ik ook zo'n herkenning in de MAC.
Hoe valt dit te controleren?
Link to comment
12 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.