Re: pipe problem
William DePalo [MVP VC++] wrote:
<one2001boy@yahoo.com> wrote in message
news:OqzY1qAGHHA.1468@TK2MSFTNGP04.phx.gbl...
> int main()
{
...
while (fgets(psBuffer, BUFFER_SIZE, stdin) != NULL) {
PostString(hwndText, psBuffer);
}
...}
void
PostString(HWND hwnd, char *pc)
{
while(*pc) {
PostMessage(hwnd, WM_CHAR, (unsigned char) *pc, 1L);
pc++;
}
}
I have done more research,
I noticed that I have enough memory and disk space, and it get the problem
of ERROR_NOT_ENOUGH_QUOTA for the function of PostMessage() after
processing 4k of stdin piped data ( I have 14K of stdin data to process)
If you are trying to simulate keypad input, the SendInput() would probably
be a better option. On really old platforms, you might have to use
keybd_event() instead.
I don't think stdio is the problem.
even if I don't use stdio, PostMessage() still have the problem. it is
unable to handle the data.txt files with 14k.
here is the sample code:
int main()
{
.....
if((fp1 = fopen("data.txt", "r")) == NULL)
{
printf("error\n");
return -1;
}
fgets(psBuffer, BUFFER_SIZE, fp1);
while(!feof(fp1)) {
PostString(hwndText, psBuffer);
fgets(psBuffer, BUFFER_SIZE, fp1);
}
fclose(fp1);
....
}
void PostString(HWND hwnd, char *pc)
{
while(*pc) {
PostMessage(hwnd, WM_CHAR, (unsigned char) *pc, 1L);
pc++;
}