草庐IT

API管理

全部标签

c++ - 尝试连接到 MessageBeep 系统 API

一位客户要求我解决以下棘手的问题。他们有一个自定义软件,该软件倾向于在没有任何明显原因的情况下“左右”显示消息框。例如,软件本身是一个会计程序,当他们接受客户付款时,消息框可能会连续显示大约3或4次。每个消息框都播放Windows默认声音。不幸的是,这个软件的编程方式,它播放的声音类型是完全错误的。例如,当消息本身只是一条信息时,它可能会显示一个警告消息框并播放警告系统声音。对于使用该软件的员工来说,这一切都很烦人。我试图联系分发该软件的供应商,但我遇到了死胡同。所以现在我正在寻找缓解此问题的方法。我最简单的解决方案是建议将扬声器静音,但不幸的是,它们需要有声音才能听到传入的电子邮件,

c++ - 如何在任务管理器中更改应用程序图标

我有一些可以改变他的图标的windows应用程序,使用winapi函数SendMessage(hwnd,WM_SETICON,ICON_BIG,icon_handle);SendMessage(hwnd,WM_SETICON,ICON_SMALL,icon_handle);Shell_NotifyIcon(...);它更改了任务栏和托盘(任务栏通知区域)中的图标,但taskmanager中的图标仍然未更改。如何更改任务管理器中的图标?可能吗? 最佳答案 来自thisSOanswerIt'simportanttochangeallic

c++ - Windows API 中是否有类似于 POSIX 上的 ftruncate 的函数?

我正在使用CreateFile从WindowsAPI函数打开一个文件。现在此函数返回一个HANDLE对象,我们可以在该对象上进一步使用Read或Write或任何归档操作。我找到了SetEndOfFile它谈论截断文件,但它没有文件大小的参数。最后,_chsize函数不接受HANDLE对象。有解决办法吗? 最佳答案 使用SetFilePointer或SetFilePointerEx将当前位置设置为您想要的大小,然后调用SetEndOfFile。 关于c++-WindowsAPI中是否有类似

c# - 如何仅通过 Win32 API 实现 .NET Process.Exited 事件

在C#上,很容易检测到特定进程ID是否已退出。Processp=Process.GetProcessById(pid);p.Exited+=newEventHandler(OnExited);如果只用Win32API写出与此相同的操作,我该怎么办? 最佳答案 您执行此操作的方式与.NETProcess类执行此操作的方式完全相同。使用RegisterWaitForSingleObject()在进程句柄上。当句柄收到信号(即进程完成)或可选超时到期时,您的回调将运行。请记住,与.NET一样,回调在theadpool线程上运行,因此需要适

c++ - Windows API 不会退出

出于某种原因,在我关闭此窗口后,我的程序不会退出并进入无限循环。这个问题的解决方案似乎是将GetMessage(&message,handel,0,0)更改为GetMessage(&message,NULL,0,0)。但是我不明白这是为什么。有人可以解释一下吗?此外,我不明白为什么要调用UpdateWindow(handel),因为窗口将在没有它的情况下显示。#include#includeusingnamespacestd;LRESULTCALLBACKEventHandler(HWND,UINT,WPARAM,LPARAM);intWINAPIWinMain(HINSTANCEin

c++ - 使用 Win32/C++ API 更改 Windows 7 墙纸(操作未实现异常)

以下代码适用于Windows8.1(已测试)但不适用于Windows7。std::wstringloc=L"C:\\Users\User\\Desktop\\wallpaper.jpg";BOOLret=SystemParametersInfo(SPI_SETDESKWALLPAPER,0,(PVOID)loc.c_str(),SPIF_UPDATEINIFILE);当我在Windows7上运行该程序时,出现以下异常:First-chanceexceptionat0x76E3C41F(KernelBase.dll)inMyApp.exe:0xC0000002:Therequestedo

c# - 如何在 Windows 资源管理器工具栏中创建自定义按钮

我想知道以编程方式将自定义按钮添加到Windows资源管理器栏的过程是什么?在Windows7和8中有什么不同?可以用C#实现吗?或者最好的方法是C++?谢谢! 最佳答案 按钮在Windows注册表中设置,在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderTypes\GUID\TasksItemsSelected和HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersio

windows - 批处理文件不会以管理员身份运行

我正在尝试在Windows批处理(.bat)文件中运行此代码@echooffechoAddingNewUser-LogMeInRemoteUsernetuser|find/i"LogMeInRemoteUser"||NetuserLogMeInRemoteUserpassword/add/fullname:"LogMeInRemoteUser"pauseechoAddingUsertoAdministratorsGroupNETLOCALGROUPAdministrators"LogMeInRemoteUser"/ADDpauseechoCreatingRegistryKeystore

windows - 在 Windows 上,我可以安装到哪些标准位置而不需要管理员权限?

我的应用程序当前将文件写入其安装目录,这意味着ProgramFiles不是一个有效的选项(我知道这并不理想)。但我也希望我的安装程序(Inno)不需要管理员权限,即不需要UAC;我认为GoogleChrome可以做到这一点。在考虑这两个限制的情况下,默认使用哪个常见位置是有意义的? 最佳答案 如果你真的想制作一个不需要管理员权限的每用户安装程序,使用的正确设置是:[Setup]PrivilegesRequired=lowestDefaultDirName={userpf}\YourAppName请注意(解决Glytzhkof的顾虑)

windows - 尝试编写批处理文件以管理员身份打开程序

我正在尝试编写一个批处理文件,它将以管理员身份打开计算机管理(在Windows764位系统上)。我已经使用cmd成功完成了此操作,但无法使其与计算机管理一起使用。我对cmd的命令是:runas/profile/env/user:用户名@domaincmd在我使用我的密码进行身份验证后,我就可以开始了。我为计算机管理尝试过的命令是:runas/profile/env/user:username@domaincompmgmt.msc在我进行身份验证后,我收到一条错误消息,告诉我“compmgmt.msc不是有效的Win32应用程序。runas/profile/env/user:userna