我如何SetCursorPos
从Windows RunDll32
应用程序正确调用该函数?
如果我试试这个,它会将光标发送到右下角:
RunDll32.exe user32.dll,SetCursorPos 100, 100
Run Code Online (Sandbox Code Playgroud)
但是我将正确的值传递给它的参数:
https://msdn.microsoft.com/en-us/library/windows/desktop/ms648394%28v=vs.85%29.aspx
PS:我对NirCMD应用程序等替代品不感兴趣,我知道它们,我只想知道我所做问题的答案,谢谢.
我正在尝试调用WinAPI函数DialogBox()
.在Microsoft网站上,此功能指定在user32.dll中.但是,当试图通过将其声明为从dll导入的函数来导入此函数时,链接器告诉我它不存在.然后我试图在C:\ Windows\System32\user32.dll中找到具有依赖性walker的函数,但该函数不存在.(虽然我可以看到所有其他花哨的函数文字.)可能是什么原因以及如何解决问题?
我正在使用D编程语言.标准库中的Windows模块不会导入WinAPI中的完整功能集.因此,我有时必须手工进口东西.
我正在从User32.dll导入GetLastInputInfo()。在GetLastInputInfo()定义中,它声明使用滴答计数。但是,实际上,它返回毫秒计数。可以通过简单的乘法来校正,因为我不需要那种精度,但是我想知道是否总是这样,或者它是否有所不同。
编辑:
最初可能没有足够详尽的说明。如下所述,在导入函数的上下文中,滴答是毫秒。困惑来自于我与Datetime.Now.Ticks一起使用的事实。在这种情况下,刻度是100纳秒。
我有一个 C# 应用程序可以防止屏幕捕获,但我想禁用“黑屏”。
这是我的代码:
[DllImport("user32.dll")]
public static extern uint SetWindowDisplayAffinity(IntPtr hWnd, uint dwAffinity);
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
SetWindowDisplayAffinity(this.Handle, WDA_MONITOR);
}
Run Code Online (Sandbox Code Playgroud)
我可以通过什么方式禁用它?
我想要做的是:
获取所有运行进程的列表:( processName
没有.exe
)ProcessFullFilePath
ProcessMainWindowTitle
类似于:
process1 c:\p1.exe TheprocessTitle
..............
Run Code Online (Sandbox Code Playgroud)
非常重要:
我需要工作代码,不会出现任何异常(try catch
)
我的代码:
我曾经TLHelp32
获得名称列表:
var handler: THandle;
data: TProcessEntry32;
function GetName: string;
var i:byte;
begin
Result := '';
i := 0;
while data.szExeFile[i] <> '' do
begin
Result := Result + data.szExeFile[i];
Inc(i);
end;
end;
begin
Application.ShowMainForm := False;
handler := CreateToolhelp32Snapshot(TH32CS_SNAPALL, 0);
if Process32First(handler, data) then
begin
ShowMessage(GetName());
while Process32Next(handler, data) do
ShowMessage(GetName());
end;
Run Code Online (Sandbox Code Playgroud)
这还不够,
我需要:名称路径标题