컴퓨터 이름안녕하십니까?
다른 사용자를 위해 jmp에서 응용 프로그램을 빌드해야 합니다. 즉, 다른 사용자는 다른 사용자 인터페이스를 갖게 됩니다. (동일한 어플리케이션입니다) 사용자 프로필을 얻을 수 있는 방법이 있는지 궁금합니다. jmp에서 컴퓨터 이름, 사용자 이름 또는 서버 이름을 말하게 하시겠습니까? 이렇게 하면 어떤 스크립트를 열지 결정할 수 있습니다.
탱크
프니엘Re: 컴퓨터 이름맥 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: 컴퓨터 이름사용자 열의 데이터 테이블에서 값을 저장하려는 행을 JMP에 알려야 합니다.
uname = Get Environment Variable( "COMPUTERNAME" );
dt:user[1] = uname;
위의 내용은 "uname" 값을 "user" 열의 1행 값에 저장합니다.
Re: 컴퓨터 이름컴퓨터 사용자 이름을 가져와 데이터 테이블의 열에 저장해야 합니다. 다음 스크립트를 사용하고 있습니다.
uname = 환경 변수 가져오기( "COMPUTERNAME" );
dt:사용자 = uname;
여기서 dt는 데이터 테이블이고 user는 열의 이름입니다.
하지만 다음과 같은 오류가 발생합니다.
"행 번호(-1)가 유효하지 않기 때문에 '사용자' 열에 대한 값을 설정할 수 없습니다."
누군가 pls가 여기에 무엇이 잘못되었는지 말해 줄 수 있습니까?
Re: 컴퓨터 이름<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />감사합니다. JMP12의 구문은 실제로 다음과 같습니다.
환경 변수 가져오기("컴퓨터 이름");
Re: 컴퓨터 이름환경 변수를 설정하는 것처럼 간단한 것으로 해킹할 수 없는 것이 필요합니다.두 솔루션 모두에 대해 JohnP에게 감사드립니다!
Re: 컴퓨터 이름JMP 10은 이 쿼리를 직접 지원합니다.
환경 변수 가져오기("컴퓨터 이름")
최상의,
-매트
Re: 컴퓨터 이름원래 게시물은 컴퓨터 이름에 대해서도 물었습니다. 컴퓨터 이름을 가져오려면 Kernel32.dll과 메서드 이름 GetComputerNameA()를 사용합니다. 따라서 다음과 같이 표시됩니다.
DLL = DLL 로드 ( "Kernel32.dll" );
dll << DeclareFunction(
"GetComputerNameA",
컨벤션( STDCALL ),
별칭( "GetComputerName" ),
인수 (안시스트링, "컴퓨터 이름" , 출력 ),
인수 (UInt64, "길이" , 업데이트 ),
반환( UInt32 )
);
이름 = " " ;
언렌 = 길이 (이름);
결과 = dll << GetComputerName(이름, unlen);
보여주다 (이름);
dll << UnloadDLL();
존P
Re: 컴퓨터 이름존피,
정말 고마워!그것이 바로 내가 찾고 있는 것입니다.이 스레드를 시작하지 않았기 때문에 정답으로 표시할 수 없습니다.
Re: 컴퓨터 이름다음은 시스템에서 사용자 이름을 얻기 위해 작성한 JSL입니다. 이것은 Windows 7에서 실행되는 JMP 10에서 작동했습니다.
DLL = DLL 로드 ( "mpr.dll" );
dll << DeclareFunction(
"WNetGetUserA",
컨벤션( STDCALL ),
별칭( "GetUserName" ),
인수 (UInt8, "체재" , 입력 ),
인수 (안시스트링, "사용자 이름" , 출력 ),
인수 (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 ),
별칭( "GetUserName" ),
인수 (UInt8, "체재" , 입력 ),
인수 (안시스트링, "사용자 이름" , 출력 ),
인수 (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도 사용).
아래 예제는 "GetEnvironmentStrings" windows 함수를 사용하여 모든 전역 환경 변수(COMPUTERNAME 포함)를 검색하고 재미있는 로드를 위해 데이터 테이블과 배열에 로드합니다.
보다:
http://www.nesug.org/Proceedings/nesug10/ad/ad04.pdf
친애하는,
-매트
Re: 컴퓨터 이름안녕,
나는 jmp 8을 사용하고 있습니다. 컴퓨터 이름을 검색하는 유사한 기능이 있습니까?
탱크Re: 컴퓨터 이름안녕 프네일:
Windose의 시작 메뉴에서 cmd를 실행하면 DOS 창이 열립니다. 활성 환경 변수 목록에 대해 프롬프트 유형 "set"에서.
또한 - 바탕 화면에서 내 컴퓨터 아이콘을 마우스 오른쪽 버튼으로 클릭 - 하단 근처의 고급 탭 환경 변수 버튼을 선택합니다.
JMP 9에는 환경에서 다음 중 하나를 검색하는 편리한 기능이 포함되어 있습니다.
cname = 환경 변수 가져오기( "COMPUTERNAME" );
거기에서 반환된 값에 따라 그에 따라 분기할 수 있습니다.
친애하는,
-매트답: 컴퓨터 이름이것은 Windows에서 현재 사용자 이름을 얻는 데 도움이 되었습니다.
uname = Get Environment Variable( "USERNAME" );
Re: 컴퓨터 이름많은 감사합니다:)
누군가 @bswedlove 의 답변을 해결책으로 표시해 줄 수 있나요?