当前位置: 代码迷 >> C语言 >> [求助]问个有关管道的问题
  详细解决方案

[求助]问个有关管道的问题

热度:200   发布时间:2007-08-16 02:43:17.0
[求助]问个有关管道的问题

偶在网上找了个miniqq 只有70k 很适合挂qq 可是不太稳定 有时登陆不上 偶就想用比较

输出的方法来判断是否正常 可怎么也搞不定 虽然可以读出数据 miniqq 却不正常了



开始以为是miniqq 加壳的问题 可自己脱了 还是一样

是偶的程序有问题 还是不能这样实现?

请指点





//偶改了别人的程序 想试试 可是不行
#include <stdio.h>
#include <windows.h>
#include <conio.h>

int main(void)
{

SECURITY_ATTRIBUTES sa;
HANDLE hRead,hWrite;

sa.nLength = sizeof(SECURITY_ATTRIBUTES);
sa.lpSecurityDescriptor = NULL;
sa.bInheritHandle = TRUE;

if (!CreatePipe(&hRead,&hWrite,&sa,0))
{
printf("Error On CreatePipe()");
return 0;
}

STARTUPINFO si={0};
PROCESS_INFORMATION pi={0};
si.cb = sizeof(STARTUPINFO);
GetStartupInfo(&si);
si.hStdError = hWrite;
si.hStdOutput = hWrite;
si.wShowWindow = SW_HIDE;
si.dwFlags = STARTF_USESHOWWINDOW|STARTF_USESTDHANDLES;

char szPath[MAX_PATH]="miniqq";
strcat(szPath," ");//可以添个能登陆的号试一下

if (!CreateProcess(NULL,szPath,NULL,NULL,TRUE,DETACHED_PROCESS,NULL,NULL,&si,&pi))
{
printf("Error on CreateProcess()");
return 0;
}
CloseHandle(hWrite);
CloseHandle(pi.hThread);
CloseHandle(pi.hProcess);

char buffer[4096] = {0};
DWORD bytesRead;
//Sleep(5000);
int i = 0;
while (i<6)
{
if (ReadFile(hRead,buffer,4095,&bytesRead,NULL) == NULL) break;

printf("%s\r\n",buffer);
printf("%ld\r\n",bytesRead);
i++;
}
getch();
//CloseHandle(hRead);
return 0;
}

传上去就不齐了 没办法
搜索更多相关的解决方案: windows  管道  include  miniqq  

----------------解决方案--------------------------------------------------------

这里是源码 还有个自己脱了壳的 miniqq

用dev-cpp编译 和用vc的结果相同


[此贴子已经被作者于2007-8-16 3:44:14编辑过]


----------------解决方案--------------------------------------------------------
初学编程 望给位高人指点  先谢谢了
----------------解决方案--------------------------------------------------------
好东西,我下回去瞧瞧
----------------解决方案--------------------------------------------------------
回复:(lishizelibin)好东西,我下回去瞧瞧


您看是哪里的问题


----------------解决方案--------------------------------------------------------
  相关解决方案