我有同样的问题。 Delphi应用程序停止响应没有任何明显的原因。从madExcept查看堆栈跟踪,我可以看到应用程序在nview.dll中冻结。我找到的唯一“解决方案”是寻找nView,并建议用户使用下面的代码关闭它:
function CheckForNview: Boolean;
function IsNviewModuleRunning(AHandle: THandle; AProcessId: DWord): Boolean;
var
AModuleEntry: TModuleEntry32;
begin
AModuleEntry.dwSize := SizeOf(AModuleEntry);
AModuleEntry.th32ProcessID := AProcessId;
Result := False;
if Module32First(AHandle, AModuleEntry) then
begin
if SameStr(AModuleEntry.szModule, 'nview.dll') then
Result := True;
while Module32Next(AHandle, AModuleEntry) do
begin
if SameStr(AModuleEntry.szModule, 'nview.dll') then
Result := True;
end;
end;
end;
var
AHandle: THandle;
AProcessEntry: TProcessEntry32;
begin
Result := False;
AHandle := CreateToolhelp32Snapshot(TH32CS_SNAPALL, 0);
if Process32First(AHandle, AProcessEntry) then
begin
if SameStr(AProcessEntry.szExeFile, ExtractFileName(ParamStr(0))) then
Result := Result or IsNviewModuleRunning(AHandle, AProcessEntry.th32ProcessID);
while Process32Next(AHandle, AProcessEntry) do
begin
if SameStr(AProcessEntry.szExeFile, ExtractFileName(ParamStr(0))) then
Result := Result or IsNviewModuleRunning(AHandle, AProcessEntry.th32ProcessID);
end;
end;
我已经完全设置。刚刚写了一个小应用程序来做你所描述的,不幸的是,你的预期行为没有发生。当我将主窗体拖到第二台显示器时,它是唯一可见的。尽管使用Delphi 6。 NVIDIA nView桌面管理器v105.31。 –
谢谢。你只是拖动应用程序?您需要使用nView命令“将其发送到其他监视器”来解决问题。 – MarkF