我想从我的Ffltter桌面应用程序中获取Windows用户的个人资料名称.有没有办法弄到它?

推荐答案

为此,Win32方法是GetUserName.我们可以用ffi直接调用它,而不是费力地用方法通道来设置插件.您需要ffiwin32个Package.

import 'dart:ffi';

import 'package:ffi/ffi.dart';
import 'package:win32/win32.dart';

// This is the max win32 username length. It is missing from the win32 package,
// so we'll just create our own constant.
const unLen = 256;

String getUsername() {
  return using<String>((arena) {
    final buffer = arena.allocate<Utf16>(sizeOf<Uint16>() * (unLen + 1));
    final bufferSize = arena.allocate<Uint32>(sizeOf<Uint32>());
    bufferSize.value = unLen + 1;
    final result = GetUserName(buffer, bufferSize);
    if (result == 0) {
      GetLastError();
      throw Exception(
          'Failed to get win32 username: error 0x${result.toRadixString(16)}');
    }
    return buffer.toDartString();
  });
}

Flutter相关问答推荐

如何在Flutter 中播放音频

当键盘在抖动中打开时,如何才能看到包装在SingleChildScrollView中的列中的最后一个小工具?

任务';:app:check DebugDuplicateClasss';的Ffltter Share_plus抛出执行失败

使用持久的侧边菜单和顶部栏在Ffltter Web应用程序中的页面之间导航

使用Ffltter CREATE创建项目时,androidManifest.xml中缺少包属性

Flutter - Riverpod 2.0 - 如何访问 onDispose 回调?

Flutter / 为什么当我点击我的图片时我的模型没有更新?

启动画面中的淡入淡出图像

如何在 Flutter (iOS) 中解决这个问题

Flutter - 如何将按钮对齐到行的右侧

如何使这种相机叠加在Flutter 中?

如何在 Flutter 中滚动时为多个小部件设置动画

在不丢失游戏状态的情况下从 Flame 游戏导航到 Flutter 小部件

type '({bool growable}) => List' 不是类型转换中类型 'List' 的子类型

Flutter如何从左到右连续 Select 多个列表项而不跳过任何

Firebase Cloud Messaging (Flutter):订阅主题时出现错误消息

Flutter Web Responsiveness 效率不高

这在Flutter 的 pubspec 文件中是什么意思?

如何从圆角go 除背景 colored颜色

Flutter Firebase 可以在真实设备上运行,而不是在 Android 模拟器上运行