計算機名稱嗨jmpers,
我需要在 jmp 中為不同的用戶構建一個應用程序,這意味著不同的用戶將有不同的用戶界面。 (這是同一個應用程序)我想知道是否有辦法獲取用戶個人資料? 讓我們說出 jmp 中的計算機名稱、用戶名或服務器名稱? 這樣做我可以決定打開哪個腳本
坦克
普尼爾回复:計算機名稱對於 Mac 操作系統
嘗試這個:
If( Host is( "Mac" ),username=Get Environment Variable( "USER" );
stamp="Test "||username||", "||char(today());
);
回复:計算機名稱驚人的!謝謝回复:計算機名稱您可以使用 For() 循環,也可以執行如下操作:
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Consumer Preferences.jmp" );
uname = Get Environment Variable( "COMPUTERNAME" );
dt << New Column( "User", character, set each value( uname ) );
回复:計算機名稱它可以工作。但是如果我有 10 行並且想要在所有行中都使用 uname 該怎麼辦?
我使用 for 循環嗎?
回复:計算機名稱您必須告訴 JMP 您要將值保存到 User 列的數據表中的哪一行。
uname = Get Environment Variable( "COMPUTERNAME" );
dt:user[1] = uname;
上面的代碼會將“uname”的值保存到“user”列的第 1 行值
回复:計算機名稱我需要獲取計算機用戶名並將其存儲在數據表的列中。我正在使用以下腳本 -
uname = 獲取環境變量( "COMPUTERNAME" );
dt:用戶=uname;
其中 dt 是數據表,user 是列名。
但我收到以下錯誤 -
“無法設置‘用戶’列的值,因為行號 (-1) 無效。”
有人可以告訴我這裡出了什麼問題嗎?
回复:計算機名稱<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />謝謝,JMP12 中的語法實際上是:
獲取環境變量(“計算機名”);
回复:計算機名稱我需要一些不能通過設置環境變量這樣簡單的事情來破解的東西。感謝 JohnP 提供的兩種解決方案!
回复:計算機名稱JMP 10 直接支持此查詢
獲取環境變量(“計算機名”)
最好的,
-馬特
回复:計算機名稱原帖還詢問了計算機名稱。 要獲取計算機名稱,請使用 Kernel32.dll 和方法名稱 GetComputerNameA()。 所以它看起來像這樣:
動態鏈接庫=加載動態鏈接庫( “Kernel32.dll” );
dll << 聲明函數(
“獲取計算機名稱A”,
約定(STDCALL),
別名( “獲取計算機名稱” ),
精氨酸( Ansi 字符串, “計算機名” , 輸出 ),
精氨酸( UInt64, “長度” , 更新 ),
返回(UInt32)
);
姓名 = ” “ ;
未長 =長度(姓名);
結果 = dll << GetComputerName(name, unlen);
展示(姓名);
dll << 卸載DLL();
約翰·P
回复:計算機名稱約翰·P,
非常感謝!這正是我正在尋找的。無法將此標記為正確答案,因為我沒有啟動此線程。
回复:計算機名稱這是我為從系統獲取用戶名而編寫的一些 JSL。 這適用於在 Windows 7 上運行的 JMP 10。
動態鏈接庫=加載動態鏈接庫( “mpr.dll” );
dll << 聲明函數(
“WNetGetUserA”,
約定(STDCALL),
別名( “獲取用戶名” ),
精氨酸( UInt8, “格式” , 輸入 ),
精氨酸( Ansi 字符串, “用戶名” , 輸出 ),
精氨酸( UInt64, “長度” , 更新 ),
返回(UInt32)
);
用戶名 = ” “ ;
未長 =長度(用戶名);
結果 = dll << 獲取用戶名( 0 ,用戶名,unlen);
展示(用戶名);
dll << 卸載DLL();
首先,您需要加載系統DLL。 我對 Advapi32.dll 沒有任何運氣。 但我通過 mpr.dll 找到了我需要的東西。 請注意,我不需要指定 DLL 的路徑,因為它位於我的系統路徑上。
動態鏈接庫=加載動態鏈接庫(“mpr.dll”);
接下來,您需要聲明要在 DLL 中調用的任何方法。 我想要使用的方法實際上稱為 WNetGetUserA(),但通過定義別名,我可以簡單地使用 GetUserName() 來調用它。
dll << 聲明函數(
“WNet獲取用戶A” ,
約定(STDCALL),
別名( “獲取用戶名” ),
精氨酸( UInt8, “格式” , 輸入 ),
精氨酸( Ansi 字符串, “用戶名” , 輸出 ),
精氨酸( UInt64, “長度” , 更新 ),
返回(UInt32)
);
現在我想定義要作為參數傳遞的變量。 我創建一個用戶名並將其初始化為空白。 然後我使用 JMP 中的 length() 函數來獲取剛剛創建的緩衝區的當前長度。
用戶名 = ” “ ;
未長 =長度(用戶名);
現在我可以調用該函數了。 請注意,第一個參數只是輸入,因此我只使用常量而不是定義變量。 然後 show() 命令在撥打電話後顯示我的用戶名。
結果 = dll << 獲取用戶名( 0 ,用戶名,unlen);
展示(用戶名);
最後,我完成了,所以我清理乾淨。
dll << 卸載DLL();
我希望這對你有用。 如果您想出更好的方法,請告訴我們。
順便說一句,使用 loadDLL 僅適用於 Windows。 Mac 上不支持它。 因此,我在腳本的頂部進行了檢查。
名稱默認為此處( 1 );
如果(主機是( 蘋果 ),
打印( “抱歉,Mac 不支持此腳本。” );
停止();
);
享受,
約翰·P
回复:計算機名稱有人可以幫助我了解調用 DLL 的語法嗎?我想使用 Windows API GetUserName 函數獲取用戶的用戶名。我不想查找用戶名環境變量,因為它可能被欺騙。
Advapi32.dll
BOOL WINAPI 獲取用戶名(
_Out_ LPTSTR lpBuffer,
_Inout_ LPDWORD lpnSize
);
謝謝!
回复:計算機名稱你好:
假設使用 Windows XP 和 JMP 8,可以通過 LoadDLL 命令檢索 Windoz 變量(如果想要檢索所有 ENV 變量,也可以使用 JMP 9)。
下面的示例使用“GetEnvironmentStrings”Windows 函數來檢索所有全局環境變量(包括 COMPUTERNAME),並在數據表和數組中進行有趣的加載。
看:
http://www.nesug.org/Proceedings/nesug10/ad/ad04.pdf
此致,
-馬特
回复:計算機名稱你好,
我正在使用 jmp 8 是否有類似的功能可以檢索計算機名稱
坦克回复:計算機名稱嗨,尼爾:
在 Windose 上,從開始菜單運行 cmd 將打開一個 DOS 窗口。 在提示符中鍵入“set”以獲得活動環境變量的列表。
另外 - 右鍵單擊桌面上的“我的計算機”圖標 - 選擇底部附近的“高級”選項卡環境變量按鈕。
JMP 9 包含一個方便的功能,可以從環境中檢索其中任何一項:
cname = 獲取環境變量( "COMPUTERNAME" );
並且可以根據從那裡返回的值進行相應的分支。
此致,
-馬特回覆:電腦名稱這對我在 Windows 上取得當前使用者名稱有用:
uname = Get Environment Variable( "USERNAME" );
回覆:電腦名稱非常感謝:)
有人可以將@bswedlove的回覆標記為解決方案嗎?