wenn mir jetzt noch jemand sagen kann wiso das programm 2mal durchläuft, obwohl ich nur einmal gedrückt habe, dann mache ich luftsprünge
komischerweisse ist das aber nur bei den ersten 2 mal der fall, dass "er" das programm 2 mal ausführt, danach klappt es wie es sollte - aber leider auchnicht immer.
..
wenn ich wärend der sleeptime drücke, wird das programm nur einmal ausgeführt, dnach immer 2 mal
Code:#include <iostream> #include <stdio.h> #include <windows.h> #include <conio.h> #include <winioctl.h> using namespace std; int main(void) { DWORD dwfreq=800, dwDuration=200; DWORD dwEvtMask; int anzahl=0; BOOL succ; /////////////////////////////////////////////////// DCB dcb; memset(&dcb, sizeof(dcb), 0); dcb.DCBlength = sizeof(dcb); dcb.BaudRate = CBR_600; dcb.fBinary = TRUE; dcb.fParity = TRUE; // enable parity checking dcb.fOutxCtsFlow = FALSE; // CTS output flow control dcb.fOutxDsrFlow = FALSE; // DSR output flow control dcb.fDtrControl = DTR_CONTROL_ENABLE; // DTR flow control type dcb.fDsrSensitivity = FALSE; // DSR sensitivity dcb.fTXContinueOnXoff = FALSE; // XOFF continues Tx dcb.fOutX = FALSE; // XON/XOFF out flow control dcb.fInX = FALSE; // XON/XOFF in flow control dcb.fErrorChar = FALSE; // enable error replacement dcb.fNull = 0; // enable null stripping dcb.fRtsControl = RTS_CONTROL_ENABLE; // RTS flow control dcb.fAbortOnError = FALSE; // abort on error dcb.fDummy2 = 0; // reserved dcb.wReserved = 0; // not currently used dcb.XonLim = 0; // transmit XON threshold dcb.XoffLim =0; // transmit XOFF threshold dcb.ByteSize = 8; // number of bits/byte, 4-8 dcb.Parity = NOPARITY; // 0-4=no,odd,even,mark,space dcb.StopBits = ONESTOPBIT; // 0,1,2 = 1, 1.5, 2 dcb.XonChar = 0; // Tx and Rx XON character dcb.XoffChar = 0; // Tx and Rx XOFF character dcb.ErrorChar = 0; // error replacement character dcb.EofChar = 0; // end of input character dcb.EvtChar = 0; // received event character dcb.wReserved1 =0; // reserved; do not use /////////////////////////////////////////////////// HANDLE hCOM = CreateFile ("COM1",GENERIC_READ | GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL); ////////////////////////////// start: ////////////////////////////// //warteschelife - damit das signal nicht gleich 2 mal abgegriffen wird printf("Bitte warten!..."); Sleep(2000); printf("...Weiter."); //warteschleife ende ////////////////////////////// succ= SetCommState(hCOM, &dcb); ////////////////////////////// cout << "" <<endl; cout <<"------------------------"<<endl; cout <<"Auf Signal warten."<<endl; SetCommMask(hCOM,EV_DSR); // WaitCommEvent(hCOM,&dwEvtMask,NULL); // auf tastendruck warten printf("%d",dwEvtMask); cout <<"<--->"<<endl; printf("%d",EV_DSR); if(dwEvtMask & EV_DSR) { printf("....jjojojoojojojojoj...."); //noch ein peep ausgeben Beep (dwfreq,dwDuration); //cout<<'\a'; //bepp ende } cout <<"Signal erhalten."<<endl; cout <<"------------------------"<<endl; cout << "" <<endl; ////////////////////////////// ////////////////////////////// //datei oeffnen //funktioniert cout <<"Increment wird geoeffnet."<<endl; cout <<"------------------------"<<endl; system("d:\\Dev-Cpp\\Examples\\inc.bat"); cout <<"------------------------"<<endl; cout <<"Increment beendet."<<endl; //datei oeffnen ende ////////////////////////////// ////////////////////////////// ++anzahl; cout << "" <<endl; cout << "" <<endl; printf("Es wurde "); printf("%d",anzahl); printf(" mal Incrementiert."); cout << "" <<endl; cout << "" <<endl; ////////////////////////////// cout << "****************************" <<endl; cout << "" <<endl; goto start; ////////////////////////////// CloseHandle(hCOM); return 0; }







Zitieren

Lesezeichen