AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Suche einen Fehlerfinder!

Ein Thema von LDericher · begonnen am 29. Apr 2009 · letzter Beitrag vom 30. Apr 2009
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von LDericher
LDericher

Registriert seit: 29. Jan 2007
Ort: Erkelenz
224 Beiträge
 
Delphi 7 Enterprise
 
#1

Suche einen Fehlerfinder!

  Alt 29. Apr 2009, 14:50
Also, es geht um eine Übersetzung von AutoIt nach Delphi... Man sehe dazu HIER nach.

Wer den Fehler findet, kriegt einen Keks von mir!

MfG, Der LDer!
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#2

Re: Suche einen Fehlerfinder!

  Alt 29. Apr 2009, 14:53
Versuchs mal mit Packed Record

gruss Emil
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: Suche einen Fehlerfinder!

  Alt 29. Apr 2009, 14:54
Hallo,

ist das VB ?
Dann musst du String[255] statt String verwenden.

*Keks haben wollen*


Heiko
Heiko
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#4

Re: Suche einen Fehlerfinder!

  Alt 29. Apr 2009, 14:56
Zitat von hoika:
Hallo,

ist das VB ?
Dann musst du String[255] statt String verwenden.

*Keks haben wollen*


Heiko
Kein VB!
Sieht mir eher nach PB - Powerbasic aus
Und da muss man den Record auf Packed setzen da hier das erste byte verschoben wird im Record.

gruss Emil
  Mit Zitat antworten Zitat
Benutzerbild von LDericher
LDericher

Registriert seit: 29. Jan 2007
Ort: Erkelenz
224 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Suche einen Fehlerfinder!

  Alt 29. Apr 2009, 15:01
Bringt's leider beides nicht, aber danke für deine Idee schonmal

Das Zielprogramm reagiert noch nicht einmal mit Schwachsinn, und es ist AutoIt-Script, kein VB - denke aber, dass das recht ähnlich ist^^

Gruß vom LDer
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#6

Re: Suche einen Fehlerfinder!

  Alt 29. Apr 2009, 15:16
Hallo,

ändere bitte mal den
Delphi-Quellcode:
TStringRecord=record
  var1:string;
end;
in
Delphi-Quellcode:
TStringRecord=record
  var1:string[255];
end;
und natürlich alles, was dann damit zusammenhängt.
Meine mich schwach daran erinnern zu können, bei Strings ohne Längenangabe in Records immer Probleme gehabt zu haben.

Einfacher werden die Änderungen vermutlich, wenn Du CDString in einen String änderst und auf var1 verzichtest.
Delphi-Quellcode:
function _SendData(vData, ReceiverTitle:string):boolean;
type
  // TStringRecord=record
  // var1:string[255];
  // end;
  TlParamRecord=record
    none,
    count:word;
    Pointer:Cardinal;
  end;
var
  // CDString:TStringRecord;
  CDString:String;
  vs_cds:TlParamRecord;
  pCDString,
  pStruct:Cardinal;
  strLen:integer;
  hwndRec:HWND;
const
  MHAdditionalIdentifier='_CAL987qwerty2468';
  WM_COPYDATA_MH=$4A;
begin
Result:=true;
if(Length(ReceiverTitle)=0)
  then Result:=false
  else begin
  ReceiverTitle:=ReceiverTitle+MHAdditionalIdentifier;
  strLen:=Length(vData);
  // SetLength(CDString.var1, strLen);
  SetLength(CDString, strLen);
  // CDString.var1:=vData;
  CDString:=vData;
  pCDString:=integer(@CDString);
  vs_cds.count:=strLen+1;
  vs_cds.Pointer:=pCDString;
  pStruct:=integer(@vs_cds);
  hwndRec:=FindWindow('AutoIt v3 GUI', PAnsiChar(ReceiverTitle));
  if(hwndRec=0)
    then Result:=false
  else if(SendMessage(hWndRec, 74, 0, pStruct)=0)
    then Result:=false;
  end;
end;
  Mit Zitat antworten Zitat
Benutzerbild von LDericher
LDericher

Registriert seit: 29. Jan 2007
Ort: Erkelenz
224 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Suche einen Fehlerfinder!

  Alt 29. Apr 2009, 15:21
Bringt auch nix... Meiner Meinung nach müsste das Empfängerprogramm doch wenigstens eine Ausgabe machen, da es ja eine Eingabe bekommen sollte per SendMessage...
Also zumindest irgendeine sinnfreie Zeichenkette ausspucken...? Oder nicht?

Na ja, ich bin hier langsam echt am verdreifeln -.-

LDer.
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#8

Re: Suche einen Fehlerfinder!

  Alt 29. Apr 2009, 15:30
Hallo,

Empfängerprogramm: Welches Programm ist das? Wird es wirklich gefunden?
Sprich:
Delphi-Quellcode:
  
if(hwndRec=0) then begin
  ShowMessage('AutoIt v3 GUI wurde nicht gefunden.');
  Result:=false;
end else
if (SendMessage(hWndRec, 74, 0, pStruct)=0) then begin
  ShowMessage('SendMessage war erfolgreich');
  Result:=false;
end else begin
  ShowMessage('SendMessage war nicht erfolgreich!');
end;
Was bekommst Du hier zu sehen?
  Mit Zitat antworten Zitat
Benutzerbild von LDericher
LDericher

Registriert seit: 29. Jan 2007
Ort: Erkelenz
224 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: Suche einen Fehlerfinder!

  Alt 29. Apr 2009, 15:41
SendMessage liefert 0, kurz gesagt.
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#10

Re: Suche einen Fehlerfinder!

  Alt 29. Apr 2009, 15:47
Hallo,

liegt der Fehler beim Empfänger?

An Stelle von
Delphi-Quellcode:
pCDString:=integer(@CDString);
vs_cds.count:=strLen+1;
vs_cds.Pointer:=pCDString;
pStruct:=integer(@vs_cds);
mal bitte das
Delphi-Quellcode:
pCDString:=DWord(@CDString);
vs_cds.count:=strLen+1;
vs_cds.Pointer:=pCDString;
pStruct:=DWord(@vs_cds);
Allerdings ist das was ich hier mache bestenfalls noch als zu bezeichnen, 'ne vernünftige Idee zur Problemlösung habe ich nicht.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz