AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Daten von einem anderen Programm "auffangen" und verarbeiten
Thema durchsuchen
Ansicht
Themen-Optionen

Daten von einem anderen Programm "auffangen" und verarbeiten

Offene Frage von "schweindi"
Ein Thema von schweindi · begonnen am 7. Mär 2010 · letzter Beitrag vom 13. Mär 2010
Antwort Antwort
schweindi

Registriert seit: 4. Feb 2010
60 Beiträge
 
#1

Re: Daten von einem anderen Programm "auffangen" u

  Alt 9. Mär 2010, 16:19
jop danke - jetzt hab ich das ganze mal mit Synaser umgeschrieben... folgendes:

Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var StartIni : TIniFile;
    Answer : string;
begin
ComPort1.Connect(Edit1.Text);
//Ini File
StartIni:=TIniFile.Create(ChangeFileExt(Application.ExeName,'.INI'));
try
StartIni.writeString('Com1','Name',Edit1.Text);
finally
  StartIni.Free;
end;
//Modem Configuration
ComPort1.Config(com_rate, com_bits, Char(com_parity), com_stop, com_softflow, com_hardflow);
Memo_text.Lines.Add('-------');
Memo_text.Lines.Add('Connected to '+Edit1.text);
Memo_text.Lines.Add('-------');
Writeln(Logf, 'Connected to '+Edit1.text);
//Modem status
ComPort1.SendString('AT'+#13#10);
Writeln(Logf, 'SEND: AT');
Answer := ComPort1.RecvString(readtotal);
if (Answer = 'OK') then
begin
  if Logout then
    Writeln(Logf, 'RECIEVED: '+Answer);
  if Memoout then
    Memo_text.Lines.Add('RECIEVED: '+Answer);
end else
  begin
  Memo_text.Lines.Add('RECIEVED: no answer!');
  Memo_text.Lines.Add('ERROR: '+IntToStr(ComPort1.LastError));
  end;
ComPort1.Flush;
//set +cfun=1
ComPort1.SendString('AT+CFUN=1'+#13+#10);
Writeln(Logf, 'SEND: AT+CFUN=1');
Answer := ComPort1.Recvstring(readtotal);
if (Answer = 'OK') then
begin
  if Logout then
    Writeln(Logf, 'RECIEVED: '+Answer);
  if Memoout then
    Memo_text.Lines.Add('RECIEVED: '+Answer);
end else
  begin
  Memo_text.Lines.Add('RECIEVED: no answer!');
  Memo_text.Lines.Add('ERROR: '+IntToStr(ComPort1.LastError));
  end;
end;
das wird ausgeführt, wenn man den ConnectButton klickt.
Readtotal : Integer -> da hab ich zb 500 bzw 1000 eingegeben und es ging eigentlich.
aber nach "AT+CFUN=1" bekomme ich keine Antwrot mehr... und wenn ich manuell die Befehle eingebe:

Delphi-Quellcode:
procedure TForm1.Button4Click(Sender: TObject);
var Str: String;
begin
//write to port
Str := Edit2.Text;
ComPort1.SendString(str+#13+#10); // string type variable
if logout then
  Writeln(Logf, '(ComPort1) SEND: '+str+' #13 #10');
if memoout then
  Memo_text.Lines.Add('SEND: '+str+' #13 #10');
ComPort1.RecvString(readtotal);
  if memoout then
  Memo_text.Lines.Add('Answer: '+str);
Edit2.Clear;
end;
dann wird zwar der Befehl geschickt: (monitor) "COM Bridge.exe IRP_MJ_WRITE USBER000 SUCCESS AT+CFUN=1.."
aber ich bekomme keine Antwort zurück.........

und allgemein, wie kann ich, wie bei TComPort das Programm warten lassen, so dass es sofort, wenn es einen Input bekommt etwas macht...
Klartext: Programm startet -> connect drücken (den code oben ausführen) -> Programm ist fertig, es bleibt offen -> Modem sendet irgendwas -> Programm "wacht auf" und macht was mit dem Befehl, den es bekommen hat.

wie könnte das gehen?
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:16 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz