Q&A

  • 실행한 프로그램의 컴퓨터이름
랜으로 연결된 다른 컴퓨터의 컴퓨터 이름을 알수 있는 방법이 있을까요 ?
ExtractFilePath() 를 이용하지 않고 하는 방법요...

GetComputerName() 을 사용하니까 내 컴퓨터의 이름이 나오네요...

한가지 더....
다른컴퓨터의 레지스트리를 읽을수 있는 방법도 있을까요 ?
즉 실행프로그램이 존재하는 컴퓨터의 특정 레지스트리를 읽는 방법요....

고수님들의 한수 부탁드립니다.
완연한 봄날씨네요...
즐건 하루 보내세요..
4  COMMENTS
  • Profile
    미니 2005.03.24 02:28
    답변해 주신분들에 감사드립니다.
  • Profile
    모영철 2005.03.23 02:53
    남의 컴퓨터에 있는 레지스트리를 읽을수 있다면 아주

    바이러스들이 판을 칠겁니다.

    레지스트리 몇개만 바꿔놔도 포맷해야 할 판이니..

    그런건 API는 없는걸로 알고 있구요..

    네트웍상에 있는 PC들을 가지고 오는 법은 API를 써야 하는데

    WNet 으로 시작하는 API들이 있습니다.

    저도 지금 보고 있는 설명 가지고는 무엇을 써야 할지 잘 모르겠네요..

    몇개 적어드릴테니 한번 헬프보시고 테스트 해 보세요..

    WNetAddConnection

    WNetCancelConnection

    WNetOpenEnum

    WNetCloseEnum

    WNetEnumResource

    WnetGetConnection

    WnetGetNetWorkInfomation

    WnetGetUser

    책에 몇가지가 더있는데..힘들어서 여기까지만.
    이참에 API 책을 한권 사보시는게 좋을거 같습니다.

    API공부하시면서 덤으로 C++도 약간 덤으로 얻어가게 되고  API 공부 하실땐

    차라리 C++ 쪽 책을 구하시는게 백번 편합니다.

  • Profile
    귀폭 2005.03.23 02:28
    프로그램 실행시 GetComputerName()를 이용해서 DB에 insert 시키고
    DB를 쿼리해서 가져오면 될거 같은데요...

    실행프로그램이 존재하는 컴퓨터의 특정 레지스트리를 읽는 방법은 모르겠네요 ㅜㅜ

    허접한 대답이였습니다... ㅠㅠ

  • Profile
    김태진 2008.07.12 00:47
    GetComputerName()의 예를 올려봤습니다.
    windows.pas 에 선언이 되어있습니다.

    function TForm1.GetComputerNetName: string;
    { 컴퓨터이름 }
    var buffer: array[0..255] of char;
    size: dword;
    begin
    size := 256;
    if GetComputerName(buffer, size) then // windows.pas
    Result := buffer
    else
    Result := ''
    end;

    function TForm1.GetUserFromWindows: string;
    { 사용자명 }
    var UserName : string;
    UserNameLen : Dword;
    begin
    UserNameLen := 255;
    SetLength(userName, UserNameLen) ;
    if GetUserName(PChar(UserName), UserNameLen) Then // windows.pas
    Result := Copy(UserName,1,UserNameLen - 1)
    else
    Result := 'Unknown';
    end;