GVKun编程网logo

如何从另一个进程访问控制台缓冲区? AttachConsole ERROR_INVALID_PARAMETER(从一个进程切换到另一个进程需要保存哪些信息)

41

对于如何从另一个进程访问控制台缓冲区?AttachConsoleERROR_INVALID_PARAMETER感兴趣的读者,本文将会是一篇不错的选择,我们将详细介绍从一个进程切换到另一个进程需要保存哪

对于如何从另一个进程访问控制台缓冲区? AttachConsole ERROR_INVALID_PARAMETER感兴趣的读者,本文将会是一篇不错的选择,我们将详细介绍从一个进程切换到另一个进程需要保存哪些信息,并为您提供关于android – 失败[INSTALL_FAILED_UPDATE_INCOMPATIBLE]后跟DELETE_FAILED_INTERNAL_ERROR、asp.net – DOM异常:INVALID_CHARACTER_ERR(5)[已关闭]、CallNtPowerInformation API失败,错误代码为STATUS_INVALID_PARAMETER、CASS_ERROR_SERVER_INVALID_QUERY:无法将 JSON 字符串解码为地图:org.codehaus.jackson.JsonParseException:意外字符('?'的有用信息。

本文目录一览:

如何从另一个进程访问控制台缓冲区? AttachConsole ERROR_INVALID_PARAMETER(从一个进程切换到另一个进程需要保存哪些信息)

如何从另一个进程访问控制台缓冲区? AttachConsole ERROR_INVALID_PARAMETER(从一个进程切换到另一个进程需要保存哪些信息)

我想访问另一个进程控制台的缓冲区(通过AttachConsole),调用ReadConsoleOutput等

是一个DOS 16位应用程序。 我不能使用pipe道,因为它不会写输出secuentially(它模拟“窗口”..如FAR指挥官,如果你知道我的意思)。

所以我应该:

1)启动应用程序2)获取进程ID 3)调用AttachConsole(ProcId)4)调用GetConsoleScreenBufferInfo获取大小5)调用ReadConsoleOutput

在Windows上,控制台窗口所有权如何工作?

如何在Linux中获取键盘状态?

在Linux中使用Ctrl-Alt-F6,无法恢复屏幕

如何将Alt +空格发送到控制台窗口?

在程序运行的时候可以获得程序的输出吗?

问题是在3:当我调用AttachConsole ir时返回0,在调用GetLastError之后,它报告ERROR_INVALID_ParaMETER 87(0x57)。

AttachConsole的唯一参数是ProcessId,我用ProcessExplorer检查了它是正确的(它实际上是模拟应用程序的ntvdm.exe的PID)。

Delphi代码:

function AttachConsole(dwProcessId: DWORD): Cardinal; external kernel32 name 'AttachConsole'; var Handle: HWND; function EnumWindowsProc(hwnd: HWND; lParam: LParaM): BOOL; stdcall; var s: string; IsVisible,IsOwned,IsAppWindow: Boolean; begin Result := True;//carry on enumerating IsVisible := IsWindowVisible(hwnd); if not IsVisible then exit; IsOwned := Getwindow(hwnd,GW_OWNER)<>0; if IsOwned then exit; IsAppWindow := getwindowlongPtr(hwnd,GWL_STYLE) and WS_EX_APPWINDOW<>0; if not IsAppWindow then exit; SetLength(s,GetwindowTextLength(hwnd)); GetwindowText(hwnd,PChar(s),Length(s)+1); if AnsiContainsText(s,'????.EXE') then // set windows name to search Handle := hwnd; end; procedure Test(Strings: TStrings); var ProcessID: Cardinal; begin Handle := 0; EnumWindows(@EnumWindowsProc,0); Strings.Add('Handle: ' + IntToStr(Handle)); if Handle <> 0 then SetForegroundWindow(Handle); Sleep(100); GetwindowThreadProcessId(Handle,@ProcessID); Strings.Add('ProcessId: ' + IntToStr(ProcessID)); if AttachConsole(ProcessId) <> 0 then Strings.Add('Ok Attached') else Strings.Add('Error: ' + IntToStr(GetLastError)); end;

放下备忘录和button的forms。 在OnClick调用Test(Memo1.Lines)。

=====编辑完整的解决scheme=====

function AttachAndGetConsoleHandle(ProcessId: Cardinal): Cardinal; begin if not AttachConsole(ProcessId) then raise Exception.Create('AttachConsole error: ' + IntToStr(GetLastError)); Result := GetStdHandle(STD_OUTPUT_HANDLE); if Result = INVALID_HANDLE_VALUE then raise Exception.Create('GetStdHandle(STD_OUTPUT_HANDLE) error: ' + IntToStr(GetLastError)); end; procedure DettachConsole; begin if not FreeConsole then raise Exception.Create('FreeConsole error: ' + IntToStr(GetLastError)); end; function ReadConsole(ConsoleHandle: Cardinal): TStringList; var BufferInfo: _CONSOLE_SCREEN_BUFFER_INFO; BufferSize,BufferCoord: _COORD; ReadRegion: _SMALL_RECT; Buffer: Array of _CHAR_INFO; I,J: Integer; Line: AnsiString; begin Result := TStringList.Create; ZeroMemory(@BufferInfo,SizeOf(BufferInfo)); if not GetConsoleScreenBufferInfo(ConsoleHandle,BufferInfo) then raise Exception.Create('GetConsoleScreenBufferInfo error: ' + IntToStr(GetLastError)); SetLength(Buffer,BufferInfo.dwSize.X * BufferInfo.dwSize.Y); BufferSize.X := BufferInfo.dwSize.X; BufferSize.Y := BufferInfo.dwSize.Y; BufferCoord.X := 0; BufferCoord.Y := 0; ReadRegion.Left := 0; ReadRegion.Top := 0; ReadRegion.Right := BufferInfo.dwSize.X; ReadRegion.Bottom := BufferInfo.dwSize.Y; if ReadConsoleOutput(ConsoleHandle,Pointer(Buffer),BufferSize,BufferCoord,ReadRegion) then begin for I := 0 to BufferInfo.dwSize.Y - 1 do begin Line := ''; for J := 0 to BufferInfo.dwSize.X - 1 do Line := Line + Buffer[I * BufferInfo.dwSize.X + J].AsciiChar; Result.Add(Line) end end else raise Exception.Create('ReadConsoleOutput error: ' + IntToStr(GetLastError)); end;

Python语法错误后保持打开的Windows控制台

我怎样才能使Unicode iostream I / O在Windows和Unix的土地上工作?

控制台中的铃声挂起Windows 7

我怎样才能在c ++控制台中写入文本而不会破坏行

获取一个事件挂钩到Console.WriteLine

定义应该是:

function AttachConsole(dwProcessId: DWORD): BOOL; stdcall; external kernel32 name 'AttachConsole';

所以它后面的代码应该是:

if AttachConsole(ProcessId) then

再也不能帮你了。

android – 失败[INSTALL_FAILED_UPDATE_INCOMPATIBLE]后跟DELETE_FAILED_INTERNAL_ERROR

android – 失败[INSTALL_FAILED_UPDATE_INCOMPATIBLE]后跟DELETE_FAILED_INTERNAL_ERROR

当我试图在nexus5设备上运行应用程序时,android studio打开错误窗口,显示“安装失败并显示消息INSTALL_Failed_CONFLICTING_PROVIDER”,而且我问我是否要卸载现有应用程序,即使它在设备上不存在.
此外,运行窗口显示“Failure [INSTALL_Failed_CONFLICTING_PROVIDER]”

点击确定后,我进入运行窗口:

“DEVICE SHELL COMMAND:pm uninstall com.app.app
DELETE_Failed_INTERNAL_ERROR”

谢谢您的帮助!

解决方法

我注意到在使用Marshmallow( Android 6.0)时,新的“com.google.android.gms”播放服务版本8.3.0存在问题.
我建议使用8.1.0版本 – 这解决了我的问题.

例如:

dependencies {
        compile filetree(include: [''*.jar''],dir: ''libs'')
        compile ''com.google.android.gms:play-services-gcm:8.3.0''
}

需要更改为:

dependencies {
            compile filetree(include: [''*.jar''],dir: ''libs'')
            compile ''com.google.android.gms:play-services-gcm:8.1.0''
    }

在build.gradle文件中

asp.net – DOM异常:INVALID_CHARACTER_ERR(5)[已关闭]

asp.net – DOM异常:INVALID_CHARACTER_ERR(5)[已关闭]

在IE9中运行的一个aspx页面中,出现以下脚本错误消息。该页面还具有telerik控件。

有人有这样的经验吗?

Message: DOM Exception: INVALID_CHaraCTER_ERR (5)
Line: 3422
Char: 8
Code: 0
URI: http://localhost/AbcWeb/Telerik.Web.UI.WebResource.axd?_TSM_HiddenField_=ctl00_RadScriptManager1_TSM&compress=1&_TSM_CombinedScripts_=%3b%3bSystem.Web.Extensions%2c+Version%3d4.0.0.0%2c+Culture%3dneutral%2c+PublicKeyToken%3d31bf3856ad364e35%3aen%3a1f68db6e-ab92-4c56-8744-13e09bf43565%3aea597d4b%3ab25378d2%3bTelerik.Web.UI%3aen%3a183fb741-216d-4765-9b46-4a1f5d38fdd7%3a16e4e7cd%3af7645509%3aed16cbdc%3bSystem.Web.Extensions%2c+Version%3d4.0.0.0%2c+Culture%3dneutral%2c+PublicKeyToken%3d31bf3856ad364e35%3aen%3a1f68db6e-ab92-4c56-8744-13e09bf43565%3a76254418%3bTelerik.Web.UI%2c+Version%3d2010.2.929.40%2c+Culture%3dneutral%2c+PublicKeyToken%3d121fae78165ba3d4%3aen%3a183fb741-216d-4765-9b46-4a1f5d38fdd7%3a874f8ea2%3a24ee1bba%3a19620875%3a490a9d4e%3abd8f85e4%3a9cdfc6e7

解决方法

IE9于2011年3月发布。在您发布的URL中,我看到Telerik版本是2010.2.929.40(2010年9月)。或许这只是旧版Telerik版本和新浏览器的兼容性问题?您可以做的是获取更新的RadControls构建,或强制您的页面使用IE8渲染。有关IE兼容性模式的更多信息,请参见 http://msdn.microsoft.com/en-us/library/cc288325%28v=vs.85%29.aspx

TL; DR – 在页面的标题中添加以下元标记,看看它是否有所不同:

<Meta http-equiv="X-UA-Compatible" content="IE=IE8" >

CallNtPowerInformation API失败,错误代码为STATUS_INVALID_PARAMETER

CallNtPowerInformation API失败,错误代码为STATUS_INVALID_PARAMETER

我运行下面的代码来从Windows操作系统获取video显示超时:

SYstem_POWER_POLICY spp = {0}; DWORD dwRes = CallNtPowerinformation(SystemPowerPolicyAc,NULL,&spp,sizeof(spp)); if(dwRes != STATUS_SUCCESS) { //Error 0xC000000D or STATUS_INVALID_ParaMETER //An invalid parameter was passed to a service or function. } else { int nTimeout = spp.VideoTimeout; }

它可以在我的Windows 7上运行,但是在运行Windows 7的另一台笔记本电脑上运行也会返回错误代码STATUS_INVALID_ParaMETER。 有没有人有任何想法,为什么? 而如何补救呢?

是否可以在Windows中写入任何内存地址?

如何在使用epoll_wait时正确读取数据

如何在c ++中使用tagDEC(DECIMALtypes)?

如何configuration线程负载平衡?

如何使用PHP将.NET源文件编译为可执行文件?

总结

以上是小编为你收集整理的CallNtPowerInformation API失败,错误代码为STATUS_INVALID_PARAMETER全部内容。

如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。

CASS_ERROR_SERVER_INVALID_QUERY:无法将 JSON 字符串解码为地图:org.codehaus.jackson.JsonParseException:意外字符('?'

CASS_ERROR_SERVER_INVALID_QUERY:无法将 JSON 字符串解码为地图:org.codehaus.jackson.JsonParseException:意外字符('?'

如何解决CASS_ERROR_SERVER_INVALID_QUERY:无法将 JSON 字符串解码为地图:org.codehaus.jackson.JsonParseException:意外字符(''?''?

我正在尝试使用 json 插入到 cassandra 表。 我尝试了一个静态插入语句,它奏效了。但是当我尝试使用“?”进行绑定时它产生了以下错误/

#define NEW_INSERT_STMT "INSERT INTO test_user_record JSON ''{\"user_id\":120,\"first_name\":\"?\",\"last_name\":\"?\",\"company\":\"?\"}''"
Error:
        File: CassLg2Meta.c
        Function: prepare_cass_user_record_table_Insert
        Line: 125
        Message: CASS_ERROR_SERVER_INVALID_QUERY:Could not decode JSON string as a map: org.codehaus.jackson.JsonParseException: Unexpected character (''?'' (code 63)): expected a valid value (number,String,array,object,''true'',''false'' or ''null'')
 at [Source: java.io.StringReader@2c37ff3; line: 1,column: 30]. (String was: {"user_id":120,"first_name":?,"last_name":"?","company":"?"})

如何使用 json 绑定变量?

绑定参数:https://docs.datastax.com/en/developer/cpp-driver/2.16/topics/basics/binding_parameters/

解决方法

你不能这样做 - JSON 参数被视为一个完整的字符串,占位符在其中不起作用。

但是这里真的不需要用JSON,用普通的INSERT statement就可以了(我觉得还需要绑定user_id):

INSERT INTO test_user_record (user_id,first_name,last_name,company) 
VALUES (120,?,?)

然后准备并将值绑定到它。

今天关于如何从另一个进程访问控制台缓冲区? AttachConsole ERROR_INVALID_PARAMETER从一个进程切换到另一个进程需要保存哪些信息的介绍到此结束,谢谢您的阅读,有关android – 失败[INSTALL_FAILED_UPDATE_INCOMPATIBLE]后跟DELETE_FAILED_INTERNAL_ERROR、asp.net – DOM异常:INVALID_CHARACTER_ERR(5)[已关闭]、CallNtPowerInformation API失败,错误代码为STATUS_INVALID_PARAMETER、CASS_ERROR_SERVER_INVALID_QUERY:无法将 JSON 字符串解码为地图:org.codehaus.jackson.JsonParseException:意外字符('?'等更多相关知识的信息可以在本站进行查询。

本文标签: