c++ builder XE4, 10.2 Tokyo > ユーザリストを取得する
4732 ワード
動作確認
C++ Builder XE4
Rad Studio 10.2 Tokyo Update 2 (追記: 2017/12/27)
http://qiita.com/AinoMegumi/items/f46dc3f6da4bb62e622e
にて試していることが興味を引いたので実装してみた。
Unit1.cpp
#include <Windows.h>
#include <iostream>
#include <LM.h>
#pragma comment(lib, "netapi32.lib")
...
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
PVOID pv;
DWORD n, i = 0, err;
do
{
switch (err = NetQueryDisplayInformation(0, 1, i, MAXDWORD, MAX_PREFERRED_LENGTH, &n, &pv))
{
case 0:
case ERROR_MORE_DATA:
if (n)
{
PNET_DISPLAY_USER p = (PNET_DISPLAY_USER)pv;
do
{
i = p->usri1_next_index;
OutputDebugString(p->usri1_name);
} while (p++, --n);
}
NetApiBufferFree(pv);
break;
}
} while (err == ERROR_MORE_DATA);
}
//---------------------------------------------------------------------------
結果
デバッグ出力: Administrator プロセス Project1.exe
デバッグ出力: Guest プロセス Project1.exe
デバッグ出力: [自分のユーザ名] プロセス Project1.exe
...
上記のコードはC++ BuilderというよりWin32APIというものなのかもしれない。
Delphiコードは以下にあるが、上記のコードの方が読みやすい。
http://stackoverflow.com/questions/27689479/delphi-list-all-windows-users-logged-on-a-computer
Author And Source
この問題について(c++ builder XE4, 10.2 Tokyo > ユーザリストを取得する), 我々は、より多くの情報をここで見つけました https://qiita.com/7of9/items/951d22c02dd3c3e8bc46著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .