我在“控制面板”->“用户帐户”->“更改您的姓名”中修改了我的用户名。但是当我使用GetUserName函数时,它返回了我的旧用户名。如何获得新的?编辑1这是请求的代码:charuser[UNLEN+1];DWORDuser_len=UNLEN+1;GetUserName(user,&user_len); 最佳答案 尝试使用APIGetUserNameEx,并以NameDisplay格式传递。我猜你更改了用户的显示名称,而不是登录名。 关于c++-在Windows上获取当前用户名,我们
我正在尝试附加WPF窗口作为外部应用程序(如记事本)的子窗口以提供覆盖。在研究了我可以在SO和MSDN上找到的所有答案之后,我已经在我的WPF应用程序运行时在记事本的一角创建了一个坚实的覆盖层。然而,一旦记事本获得焦点,叠加层就会消失,除了在记事本上显示覆盖外,覆盖还单独显示为一个窗口记事本上的叠加层不接收任何MouseMove事件(但单独的窗口接收。这是演示该问题的最小示例:Overlay.xamlOverlay.xaml.csusingSystem;usingSystem.Windows;usingSystem.Windows.Input;usingSystem.Windows.M
我正在尝试记录绘画消息以解决问题,我需要一种方法来了解WM_PAINT消息是否必须删除背景,所以我在WM_PAINT处理中做了这个:hdc=BeginPaint(hwnd,&ps);//codetooutputtheInvalidRECTisommited.....if(ps.fErase){//outputtrue}else{//outputfalse};ps.rcPaint具有正确的值,但ps.fErase始终为“false”,即使我调用InvalidateRect(hwnd,0,true);其中hwnd是我记录WM_PAINT消息的窗口这是一些outputimage我想知道无效的
我正在做一个学校项目,我应该修改在Windows登录用户界面中提供凭据的方式。经过一些搜索,我找到了著名的VistaRTM(Longhorn)示例和技术文档。我发现所有示例都是用C++开发的。因为我没有任何C/C++经验,而且我认为自己是一个不错的C#程序员,所以我想知道是否可以使用C#。我还需要与RESTAPI交换数据以验证登录,因此C#会更友好。我找到了这个https://stackoverflow.com/a/23496878/3626447,但@mageos提供的信息太“原始”了。有人知道一些有用的资源吗? 最佳答案 您提供
如何将整数转换为LARGE_INTEGER?例如,当我想立即触发一个定时器时:LARGE_INTEGERzero;zero.QuadPart=0;KeSetTimer(pTimer,zero,pDpc);有什么方法可以将0转换为LARGE_INTEGER?所以我可以这样做:KeSetTimer(pTimer,(SomeType)0,pDpc);我试过:KeSetTimer(pTimer,(LARGE_INTEGER)0,pDpc);但它不起作用。我用Google搜索过,但找不到任何帮助。 最佳答案 LARGE_INTEGER是一个结
我正在使用Win32::IsAdminUser()函数(无法粘贴代码,因为要使其可运行,我必须粘贴整个代码)。它返回0,我很好奇为什么因为运行它的用户是Administrators组的成员,所以我创建了一个小测试函数(c++)并在运行IsAdminUser之前运行它这是代码:intdavai(){FILE*fp;fp=fopen("C:\\tmp\\davai.txt","a");fprintf(fp,"shevedidavai");fflush(fp);HANDLEtoken=NULL;HANDLEdupToken=NULL;if(!OpenProcessToken(GetCurre
在我的previousunclearquestion之后,我以某种方式能够创建一个具有长路径名的目录。但是,如果我尝试通过添加长路径名前缀来访问它,它仍然会抛出如下错误。ERROR_FILENAME_EXCED_RANGE206(0xCE)Thefilenameorextensionistoolong.这是我正在使用的代码片段(在带有VS2015Update3编译器的Windows7上)#include#includeintmain(){conststd::wstringwdir_path(L"\\\\?\\c:\\temp\\aLongPathnameComponent\\aLong
我已经在Internet上搜索了答案,但除了模态对话框和无模态对话框之间的区别之外,我找不到任何对我的问题有用的东西。正如标题中所写,我的问题是-如何为我的对话框实现/使用特定于Windows版本的设计?IOW,在Windows10系统上使用Windows10按钮样式。我使用的是VisualStudio,我使用集成的资源编辑器为我的对话框创建了一个简单的资源。这是我的程序:intCALLBACKWinMain(HINSTANCEhInstance,HINSTANCEhPrevInstance,LPSTRlpCmdLine,intnCmdShow){DialogBox(hInstance
我已经在互联网上搜索但找不到答案,我如何从Windows的C++驱动器盘符中获取驱动器名称?我的意思是如果我说G:\它必须给我笔式驱动器的名称。例如:可移动磁盘。 最佳答案 就像调用GetVolumeInformationAPIfunction一样简单.您传入驱动器盘符作为路径名(例如,G:\),该函数将填充一个包含卷名的缓冲区(以及其他信息,如果您对此感兴趣)。这是检索G:\驱动器的卷名所需的代码。卷名被放入szVolumeName缓冲区:WCHARszVolumeName[MAX_PATH];BOOLbSucceeded=Get
这里有一个简单的C程序来说明:#include#includeintmain(intargc,char*argv[]){//MoveFile(argv[0],"dst.exe");getchar();return0;}根据上面的代码制作一个test.exe。现在执行test.exe,test.exe由于getchar()卡在那里,然后我可以自由地剪切和粘贴这个exe。但是当我取消对MoveFile(argv[0],"dst.exe");的注释时,我希望它可以将自己移动到dst.exe,结果它有一个dst。exe,而program.exe仍然存在,就像CopyFile()一样。据我所知,