各位老板,我使用RDP5.x的虛擬通道技術,能打開通道發不了資料,為什么呢???
我在我的機器上生成一個dll,ClientDLL.dll,在注冊表里面是這樣配置的,項名:Clip11Rdp,字串值:Name=C:\work\TS Window Clipper\Release\ClientDLL.dll
在遠程機器上,有個exe,監聽session,能監聽到,之后就打開通道
#define CHANNELNAME "CLIP11"
m_vcHandle = WTSVirtualChannelOpen(WTS_CURRENT_SERVER_HANDLE,WTS_CURRENT_SESSION, CHANNELNAME);
m_vcHandle不為空。
打開通道是成功的,但是寫資料失敗,回傳0,GetLastError為1
PULONG bytesRead = 0;
PULONG pBytesWritten = 0;
BOOL result = WTSVirtualChannelWrite(m_vcHandle,buffer,(ULONG) strlen(buffer),pBytesWritten);
if (result)
{
return 1;
}
else
{
int nRet = GetLastError(); //為1
return 0;
}
同時,我在ClientDll.dll的VirtualChannelEntry入口函式列印日志,也沒看到日志
頭檔案宣告:
BOOL VCAPITYPE VirtualChannelEntry(PCHANNEL_ENTRY_POINTS pEntryPoints);
CPP實作:
BOOL VCAPITYPE VirtualChannelEntry(PCHANNEL_ENTRY_POINTS pEntryPoints)
{
FILE *f = fopen("c:\\work\\clipert.txt", "ab+");
if (f != NULL)
{
fwrite("aaaa\r\n", 1, strlen("aaaa\r\n"), f); //沒看到檔案
fclose(f);
}
}
def檔案為:
LIBRARY
EXPORTS
VirtualChannelEntry @1
為什么呢???
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/80153.html
標籤:其它技術問題
