這裡所指的使用者名稱,指的不是 FileMaker 登入時候的帳號名稱。
這邊的使用者名稱的是「系統電腦」的「使用者名稱」,比如「XXX 的 MacBook Pro」電腦名稱。
查了一些資料,FileMaker 本身似乎並沒有辦法直接取得「電腦名稱」與「使用者名稱」,但可以藉由間接的方式來取得。
方法 1:利用原生的 Get(DesktopPath) 函數
比如我一開始看到的方式,透過 Get(DesktopPath) 函數來取得使用者名稱,在 DataViewer 裡面,如果輸入 Get(DesktopPath),會得到桌面位置,裡面就包含著使用者名稱。
/Macintosh HD/Users/oscarchen/Desktop/
使用者名稱 oscarchen 就在「 /Macintosh HD/Users/ 」的後面,於是我們可以這樣寫計算式:
就可以得到乾淨的 oscarchen 這個使用者名稱。
以上的方法可以得到「使用者名稱」,但是還是沒有辦法得到「電腦名稱」。
方法 2:利用 BaseElement Plugin
這邊要介紹的是另一個方式,透過 BaseElement Plugin 的函數來協助我們取得「使用者名稱」「電腦名稱」這兩個系統資訊,使用的函數是 BE_ExecuteSystemCommand
首先,你需要先安裝有 BaseElement Plugin
(還沒有安裝的人可以參考:安裝 BaseElement)
接著,我們先跳開一下,講一下這篇文章所提到的非 FileMaker 的方法:利用 Terminal 終端機來獲取系統資訊。
非常簡單,如果我們進入 Terminal 終端機,直接輸入 “whoami" 跟 “hostname",就可以得到我們要的兩個資訊了。
於是我們得到一個靈感,如果 FileMaker 有函數可以結合系統內建的 Terminal 來取得資料,那就可以在 FileMaker 內取得這兩個系統資訊了!
這個函數就是 BaseElement Plugin 的 BE_ExecuteSystemCommand 函數
這個函數可以讓我們在 FileMaker 內直接取得 Terminal 終端機的輸出結果
參考資料
How do I retrieve the client’s hostname…..?
How do I find my user ID and group in Mac OS X?
FM – Get Functions for Computer Name/IP Address?
對「[FileMaker] 如何取得 Client 端的「電腦名稱」與「使用者名稱」?」的想法