小编Mr *_*eph的帖子

获取当前用户的上次登录

我试图让当前用户上次登录.我可能是当前的会议,也可能是之前的会议.
我正在调用GetUserName()来获取当前用户名.我将其提供给NetUserGetInfo()以尝试获取上次登录时间.所有这些都失败,错误2221(未找到用户).当我尝试使用"管理员"时,它可以工作.即使我对用户名进行硬编码,也会返回2221.这就是我使用的内容:

nStatus = NetUserGetInfo(NULL, L"administrator", dwLevel, (LPBYTE *) & pBuf);
Run Code Online (Sandbox Code Playgroud)

如何获得当前用户的上次登录时间?

谢谢,代码随时欢迎.

这是我目前使用的完整代码:

DWORD dwLevel = 2;
NET_API_STATUS nStatus;
LPTSTR sStringSid = NULL;
LPUSER_INFO_0 pBuf = NULL;
LPUSER_INFO_2 pBuf2 = NULL;
WCHAR UserName[256];
DWORD nUserName = sizeof(UserName); 

if(GetUserName(UserName, &nUserName))
{
    printf("information for %ls\n", UserName);
    nStatus = NetUserGetInfo(NULL, UserName, dwLevel, (LPBYTE *) & pBuf);
    if (nStatus == NERR_Success) 
    {
        pBuf2 = (LPUSER_INFO_2) pBuf;
        printf("\tUser account name: %ls\n", pBuf2->usri2_name);
        printf("\tLast logon (seconds since January 1, 1970 GMT): %d\n", pBuf2->usri2_last_logon);
        printf("\tLast logoff …
Run Code Online (Sandbox Code Playgroud)

c windows authentication

4
推荐指数
1
解决办法
7092
查看次数

C for Linux中的公钥实现

我正在尝试使用公钥加密签名并稍后验证文件.该文件是一个简单的纯文本文件,其中包含用于创作目的的用户信息.

我为公钥加密算法的C实现尝试了不同的站点,但我没有找到任何东西.许多站点都指向使用证书(x.509等),但这远远超出我的需要.我只是在寻找一种生成公钥和私钥的方法,并使用一种相对众所周知的算法来签名和验证文件.

有没有指向纯C实现的指针?重点是我可以重用的代码,而不是外部库.主要问题是我不想链接完整的lib及其依赖关系,以便拥有一个非常基本的公钥系统.

谢谢.

c linux encryption public-key-encryption

4
推荐指数
2
解决办法
4821
查看次数

将wchar_t转换为CFStringref

wchar_t *需要在需要的函数上使用CFStringref

我尝试过使用,CFStringCreateWithCharacters但我没有随处可见.

所以,如果我有:

wchar_t * widecharvar = L"some value";
CFStringRef stringref;
Run Code Online (Sandbox Code Playgroud)

如何转换和复制widecharvarstringref?该值将用于SecRequirementCreateWithString()

谢谢

c macos

4
推荐指数
1
解决办法
1531
查看次数

打开一个新窗口并等待它关闭

我有一个用 Objective-C Cocoa 编写的 Mac OS X 应用程序。您可以在上一个问题中看到大部分代码。本质上,您单击主窗口(应用程序委托)上的按钮,它会打开另一个窗口,用户可以在其中输入信息。

在以下代码中(当用户按下应用程序主窗口中的按钮时调用)

- (IBAction)OnLaunch:(id)sender {

    MyClass *controllerWindow = [[MyClass alloc] initWithWindowNibName:@"pop"]; 
    [controllerWindow showWindow:self];

    NSLog(@"this is a log line");
}
Run Code Online (Sandbox Code Playgroud)

NSLog我打电话后,线路立即得到打印机showWindow。有什么办法可以等到controllerWindow关闭后再继续NSlog吗?

原因是用户在我打开的新窗口上设置了一个值,我需要在同一窗口上收集该值,OnLaunch所以我需要等待。

我知道模式窗口在 Mac 中是不好的形式,但我无法控制此功能。

我尝试过

[NSApp runModalForWindow:[controllerWindow window]];
Run Code Online (Sandbox Code Playgroud)

然后将弹出窗口设置为

[[NSApplication sharedApplication] runModalForWindow:popupwin];
Run Code Online (Sandbox Code Playgroud)

它可以工作,但焦点再也不会传递到主窗口了,谢谢!

macos cocoa objective-c

3
推荐指数
1
解决办法
6698
查看次数

选择在普通C中的数组上具有更多重复项的元素

这个问题让我回到了我的大学时代,但由于那些日子(20多年前)我没有编码,所以我有点生疏了.

基本上我有256个元素的数组.数组中可能有1个元素,14或256.此数组包含从系统请求数据的人的用户名.我正在尝试计算列表中的重复项,以便我可以为具有大多数请求的用户提供优先级.所以,如果我有一个列表,如:

{john, john, paul, james, john, david, charles, charles, paul, john}
Run Code Online (Sandbox Code Playgroud)

我会选择约翰,因为它出现了4次.我可以迭代数组并将元素复制到另一个并开始计数,但一段时间后它会变得复杂.正如我所说,我非常生疏.

我相信有一个简单的方法可以做到这一点.有任何想法吗?代码在这里非常有用.谢谢!

编辑:

缓冲区声明为:

static WCHAR userbuffer[150][128];
Run Code Online (Sandbox Code Playgroud)

最多可以有150个用户,每个用户名长达128个字符.

c arrays duplicates

2
推荐指数
1
解决办法
208
查看次数

从字符串中提取未知子字符串

我有一个程序以下列格式返回数据:

<CFData 0x1001219c0 [0x7fff7027aee0]>{length = 20, capacity = 20, bytes = 0x8deead13b8ae7057f6a629fdaae5e1200bcb8cf5}
Run Code Online (Sandbox Code Playgroud)

我需要提取8deead13b8ae7057f6a629fdaae5e1200bcb8cf5(是的,减去0x).我尝试使用sscanf并传递一些正则表达式,但我对此没有任何线索.

知道怎么做吗?代码片段表示赞赏.

c substring

1
推荐指数
1
解决办法
425
查看次数