excSchaKaL
Grünschnabel
hi
ich bin nich wirklich so gut in c++ und brauch ma hilfe
ich bekomm ständig fehlermeldungen ausgeschickt wenn ich was mach
also kann ich schlecht die fehlermeldungen hierhinschreiben da ich schon einige bekommen hab
mit dem programm will ich per pc das telefonsteuern können
also mit dem pc anrufen das ich nich am telefon tippen muss
ich will jetzt aber auch so machen das wenn ich "programmname.exe 84678" das er direkt die nr anrufen tut
vielleicht kann mir ja wer helfen ich verzweifel nur ^^
ein danke an alle die mir helfen können oda es versucht haben *g*
ich bin nich wirklich so gut in c++ und brauch ma hilfe
ich bekomm ständig fehlermeldungen ausgeschickt wenn ich was mach
also kann ich schlecht die fehlermeldungen hierhinschreiben da ich schon einige bekommen hab
mit dem programm will ich per pc das telefonsteuern können
also mit dem pc anrufen das ich nich am telefon tippen muss
ich will jetzt aber auch so machen das wenn ich "programmname.exe 84678" das er direkt die nr anrufen tut
vielleicht kann mir ja wer helfen ich verzweifel nur ^^
Code:
#include "stdafx.h"
#include "windows.h"
#include "iostream.h"
#include <iomanip.h>
#include <conio.h>
#include <stdio.h>
HANDLE hCom1;
const int dwStateSendByteAvailable = 1;
const int dwStateReceiveByteAvailable = 2;
const int dwStateRTS = 4;
const int dwStateCTS = 8;
const int dwSendByteOffset = 16;
const int dwReceiveByteOffset = 24;
void PrintHeader( ostream &os )
{
os << " RTS CTS" << endl;
os << " Snd Rcv 0 1 0 1" << endl;
}
BOOL gbPrintChangesOnly = FALSE;
DWORD gdwLastState = 0x0;
BOOL ReadByte( HANDLE hCom, BYTE &byRead )
{
DWORD dwBytesRead = 0;
ReadFile( hCom1,
&byRead,
1,
&dwBytesRead,
NULL );
return (dwBytesRead == 1);
}
void Communicate()
{
DWORD dwTickOffset = GetTickCount();
while (1)
{
BYTE byRead = 0xaa;
if (ReadByte(hCom1, byRead))
{
printf ("%c",byRead);
}
if (kbhit())
{
char anykey;
DWORD BytesWritten;
anykey = getch();
printf ("%c",anykey);
WriteFile
(
hCom1,
&anykey,
1,
&BytesWritten,
NULL
);
}
}
cout << "End Logging" << endl;
}
BOOL WriteData (const char *pDaten)
{
printf ("%s", pDaten);
BOOL a;
return a;
}
BOOL isPhoneConnectet()
{
WriteData ("AT");
return 0;
}
BOOL Dial(char *pNumber)
{
WriteData (pNumber);
return 0;
}
int main(int argc, char *argv[])
{
if (argv[1])
{
isPhoneConnectet ();
return 0;
}
if (argv[2])
{
Dial(pNumber);
printf ("%s", pDaten);
return 0;
}
cout << "Hallo" << endl;
if (argc==2 &&
(strcmp(argv[1], "/C")==0 || strcmp(argv[1], "/c")==0))
{
cout << " logging changes only" << endl;
gbPrintChangesOnly = TRUE;
}
else
{
cout << " use /C for logging changes only" << endl;
gbPrintChangesOnly = FALSE;
}
hCom1 = CreateFile( "\\\\.\\COM1",
GENERIC_READ | GENERIC_WRITE,
0,
0,
OPEN_EXISTING,
0,
0 );
if (hCom1==INVALID_HANDLE_VALUE)
{
cout << "Cannot open COM1" << endl;
exit(1);
}
DCB DCBInfo;
memset( &DCBInfo, 0, sizeof(DCB) );
DCBInfo.DCBlength = sizeof(DCB);
DCBInfo.fBinary = 1;
DCBInfo.fDtrControl = 2;
DCBInfo.fRtsControl = 0;
DCBInfo.BaudRate = 1200;
DCBInfo.ByteSize = 8;
DCBInfo.Parity = NOPARITY;;
DCBInfo.StopBits = ONESTOPBIT;
if (!SetCommState( hCom1, &DCBInfo ))
{
cout << "Cannot set parameters for COM1" << endl;
}
COMMTIMEOUTS timeouts;
GetCommTimeouts( hCom1, &timeouts );
timeouts.ReadIntervalTimeout = MAXDWORD;
timeouts.ReadTotalTimeoutConstant = 0;
timeouts.ReadTotalTimeoutMultiplier = 0;
SetCommTimeouts( hCom1, &timeouts );
cout << "Press <Enter> to start and stop logging" << endl;
cout << "Press <ESC> to quit logger" << endl;
char c;
do
{
c = getch();
if (c==13)
{
PrintHeader(cout);
Communicate();
}
}
while (c!=27);
return 0;
}
ein danke an alle die mir helfen können oda es versucht haben *g*