コンピュータネームこんにちは。
さまざまなユーザー向けに jmp でアプリケーションを構築する必要があります。つまり、ユーザーごとにユーザー インターフェイスが異なります。 (同じアプリケーションです)ユーザープロファイルを取得する方法があるかどうか疑問に思っていました。 jmp のコンピュータ名、ユーザー名、またはサーバー名を言いますか? そうすることで、どのスクリプトを開くかを決めることができます
タンク
プニールRe: コンピュータ名Mac OSの場合
これを試して:
If( Host is( "Mac" ),username=Get Environment Variable( "USER" );
stamp="Test "||username||", "||char(today());
);
Re: コンピュータ名素晴らしい!ありがとうRe: コンピュータ名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 ) );
Re: コンピュータ名それは機能します。しかし、行が 10 行あり、すべての行に uname を入れたい場合はどうすればよいでしょうか?
for ループを使用しますか?
Re: コンピュータ名データテーブルの User 列のどの行に値を保存するかを JMP に指示する必要があります。
uname = Get Environment Variable( "COMPUTERNAME" );
dt:user[1] = uname;
上記は、「uname」の値を列「user」の行 1 の値に保存します。
Re: コンピュータ名コンピューターのユーザー名を取得して、データテーブルの列に保存する必要があります。次のスクリプトを使用しています。
uname = 環境変数を取得( "COMPUTERNAME" );
dt:ユーザー = uname;
ここで、dt はデータテーブル、user は列の名前です。
しかし、次のエラーが発生します -
「行番号 (-1) が無効であるため、列 'user' の値を設定できません。」
誰かここで何が間違っているのか教えてもらえますか?
Re: コンピュータ名<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />ありがとう、JMP12 の構文は実際には次のとおりです。
環境変数を取得("コンピューター名");
Re: コンピュータ名環境変数を設定するような単純な方法ではハッキングできないものが必要です。両方の解決策を教えてくれた JohnP に感謝します!
Re: コンピュータ名JMP 10 はこのクエリを直接サポートしています
環境変数を取得("コンピュータ名")
一番、
-マット
Re: コンピュータ名元の投稿ではコンピューター名についても質問されていました。 コンピューター名を取得するには、Kernel32.dll とメソッド名 GetComputerNameA() を使用します。 したがって、次のようになります。
dll = DLLをロードする( 「カーネル32.dll」 );
dll << DeclareFunction(
"GetComputerNameA",
規約( STDCALL )、
エイリアス ( 「コンピューター名を取得」 )、
引数(AnsiString、 "コンピュータネーム" 、出力)、
引数(UInt64、 "長さ" 、 アップデート )、
戻り値( UInt32 )
);
名前 = 「」 ;
ウンレン =長さ(名前);
結果 = dll << GetComputerName(name, unlen);
見せる(名前);
dll << UnloadDLL();
ジョンP
Re: コンピュータ名ジョンP、
本当にありがとう!まさにそれが私が探しているものです。私がこのスレッドを開始していないため、これを正解としてマークできません。
Re: コンピュータ名以下は、システムからユーザー名を取得するために作成した JSL です。 これは、Windows 7 上で動作する JMP 10 で機能しました。
dll = DLLをロードする( "mpr.dll" );
dll << DeclareFunction(
"WNetGetUserA",
規約( STDCALL )、
エイリアス ( 「ユーザー名を取得」 )、
引数( UInt8, "フォーマット" 、入力)、
引数(AnsiString、 「ユーザー名」 、出力)、
引数(UInt64、 "長さ" 、 アップデート )、
戻り値( UInt32 )
);
ユーザー名 = 「」 ;
ウンレン =長さ(ユーザー名);
結果 = dll << GetUserName( 0 、ユーザー名、unlen);
見せる(ユーザー名);
dll << UnloadDLL();
まず、システム DLL をロードする必要があります。 Advapi32.dll には運がありませんでした。 しかし、mpr.dll で必要なものが見つかりました。 DLL はシステム パス上にあるため、DLL へのパスを指定する必要がないことに注意してください。
dll = DLLをロードする(「mpr.dll」);
次に、DLL 内で呼び出すメソッドを宣言する必要があります。 使用したいメソッドは実際には WNetGetUserA() という名前ですが、エイリアスを定義することで、GetUserName() を使用して簡単に呼び出すことができます。
dll << DeclareFunction(
「WNetGetUserA」 、
規約( STDCALL )、
エイリアス ( 「ユーザー名を取得」 )、
引数( UInt8, "フォーマット" 、入力)、
引数(AnsiString、 「ユーザー名」 、出力)、
引数(UInt64、 "長さ" 、 アップデート )、
戻り値( UInt32 )
);
次に、引数として渡す変数を定義したいと思います。 ユーザー名を作成し、空白に初期化します。 次に、JMP の length() 関数を使用して、作成したバッファの現在の長さを取得します。
ユーザー名 = 「」 ;
ウンレン =長さ(ユーザー名);
これで関数を呼び出すことができます。 最初の引数は入力専用であるため、変数を定義する代わりに定数を使用していることに注意してください。 次に、show() コマンドにより、通話後のユーザー名が表示されます。
結果 = dll << GetUserName( 0 、ユーザー名、unlen);
見せる(ユーザー名);
ようやく終わったので片づけをします。
dll << UnloadDLL();
これがうまくいくことを願っています。 より良い方法を思いついた場合は、ぜひお知らせください。
ちなみに、loadDLLの使用はWindowsでのみ動作します。 Mac ではサポートされていません。 このため、スクリプトの先頭でチェックを行っています。
デフォルトの名前はここにあります( 1 );
もしも(ホストは( マック )、
印刷する( 「申し訳ありませんが、このスクリプトは Mac ではサポートされていません。」 );
ストップ();
);
楽しみ、
ジョンP
Re: コンピュータ名誰かがDLLを呼び出すための構文を手伝ってくれませんか?Windows APIのGetUserName関数を使用してユーザーのユーザー名を取得したいと考えています。ユーザー名環境変数はなりすましの可能性があるため、検索したくありません。
Advapi32.dll
BOOL WINAPI GetUserName(
_Out_ LPTSTR lpBuffer、
_Inout_ LPDWORD lpnSize
);
ありがとう!
Re: コンピュータ名やあ:
Windows XP および JMP 8 を想定すると、LoadDLL コマンドを使用して Windoz 変数を取得できます (すべての ENV 変数を取得したい場合は JMP 9 を使用することもできます)。
以下の例では、Windows 関数「GetEnvironmentStrings」を使用して、すべてのグローバル環境変数 (COMPUTERNAME を含む) を取得し、データ テーブルと配列に読み込みます。
見る:
http://www.nesug.org/Proceedings/nesug10/ad/ad04.pdf
よろしくお願いします、
-マット
Re: コンピュータ名やあ、
私はjmp 8を使用していますが、コンピューター名を取得する同様の機能はありますか?
タンクRe: コンピュータ名こんにちはプニール:
Windose では、スタート メニューから「ファイル名を指定して実行」を選択し、cmd で DOS ウィンドウを開きます。 プロンプトで「set」と入力すると、アクティブな環境変数のリストが表示されます。
また、デスクトップ上の My COmputer アイコンを右クリックし、下部近くの [詳細設定] タブの [環境変数] ボタンを選択します。
JMP 9 には、環境からこれらのいずれかを取得する便利な関数が含まれています。
cname = 環境変数を取得( "COMPUTERNAME" );
そして、そこから返された値に基づいて、それに応じて分岐できます。
よろしくお願いします、
-マットRe: コンピュータ名これは、Windows で現在のユーザー名を取得するのに役立ちました:
uname = Get Environment Variable( "USERNAME" );
Re: コンピュータ名どうもありがとう:)
誰かフォローの返信を解決策としてマークしてもらえますか。