Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Merkwürdiger Fehler - Compiler geht / Exe nicht... (https://www.delphipraxis.net/56611-merkwuerdiger-fehler-compiler-geht-exe-nicht.html)

th_bone 8. Nov 2005 18:53


Merkwürdiger Fehler - Compiler geht / Exe nicht...
 
Hi,

ich habe einen fehler der nur Auftritt, wenn ich die EXE direkt ausführe... hier der
Codeschnipsel

Delphi-Quellcode:
 delay(400);
 AppActivate('TestApp');
 delay(250);
 try
  // hier soll eine Drittapplikation online geschalten werden
  SendKeys('%(fw)' , false);
 except;
   showmessage('Fehler Sending Keys');
 end;
im Compiler ausgeführt wird die Tastenkombi ALT+F+W richtig übertragen,
wenn ich die EXE direkt ausführe, dann gibt es nur einen kurzen System piepton
und die Anwendung bleibt OFFLINE ...

wo ist den der Unterschied zwischen Ausführung vom Compiler aus und der EXE direkt ?

Danke

Ralf

Chrissi91 9. Nov 2005 06:41

Re: Merkwürdiger Fehler - Compiler geht / Exe nicht...
 
Also ...

Beim Compilieren funktioniert alles, aber die Exe außerhalb von Delphi nicht ...

Was passiert denn, wenn du die Exe öffnest? Irgendeine Fehlermeldung?

th_bone 9. Nov 2005 07:55

Re: Merkwürdiger Fehler - Compiler geht / Exe nicht...
 
Hi,

ja, wenn ich den code vom Compiler ausführe, dann wird die Anwendung in den Vordergrund geholt und aktiviert und anschließend die Tastenkombination ALT+F+W ausgeführt.
Das funktioniert absolut und 100%ig vom Compiler (Delphi gestartet Code von der IDE aus ausgeführt)...

Starte ich jetzt die vom Compiler erstellte EXE wird die Anwendung in den Vordergrund geholt und aktiviert und dann kommt ein kurzer peipton des Systemlautsprechers fertig...
die Tastenkombo ALT+F+W ist aber nicht ausgeführt worden.

Ich mache auch nichts anderes bei der Ausführung, da ja die Anwendung den Fokus behalten muss damit dass mit der Tastenkombi funktioniert aber Nada vom Compiler gehts EXE nicht

ist mir unerklärlich - hab schon versucht zwischen die delays zu vergrößern falls die EXE zu schnell arbeiten würde aber auch hier fehlanzeige

Gibt es noch einen anderen/sicheren Weg die Tastenkombi ALT+F+W an ein Drittprogramm zu übertragen...

Danke

Ralf

Nighthawk1310 9. Nov 2005 08:59

Re: Merkwürdiger Fehler - Compiler geht / Exe nicht...
 
Hi.
Erstmal zum Verständnis. Ein Compiler führt nichts aus, der übersetzt nur.
Ich gehe mal davon aus, dass Du den Debugmodus meinst, bzw. dein Programm innerhalb
der IDE ausführst und es dadurch funktioniert.
Wenn Du im Debugmodus Zeile für Zeile durchgehst, dann wartet er 'ne zeile weiter
bis Du Deine Eingabe getätigt hast und nimmt dann die Tastenkombinantion auch an.
Im anderen Fall rauscht er aber einfach nur durch.

Für eine genauere Diagnose ist es besser, wenn Du ein wenig mehr QuellCode abbildest oder den
selbigen als Download anhängst.

jim_raynor 9. Nov 2005 10:10

Re: Merkwürdiger Fehler - Compiler geht / Exe nicht...
 
Versuche doch lieber per Hier im Forum suchenFindWindow das Handle des Fensters zu ermitteln und dann die Tasten direkt per Hier im Forum suchenSendMessage an die Applikation zu schicken. Ist auf jeden Fall besser, als die "Krücke" mit dem Delay.

th_bone 9. Nov 2005 17:22

Re: Merkwürdiger Fehler - Compiler geht / Exe nicht...
 
Hi,

also mit sendmessage komme ich irgenwie nicht zurecht... habe mal versucht die tastenkombi ALT+D+B nachzubilden die den Editor beendet (ja ich weiß beenden geht auch anderst... aber mir geht es um die Tastenkombi, da ich bei der Anwenung für die ich es brauche nur so die benötigte funktion aktivieren kann, da ich an keine ControlID komme)

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
handle: thandle;
begin
 Handle := FindWindow(nil,PChar('Unbenannt - Editor'));

 SendMessage(Handle, WM_KEYDOWN, VK_MENU, 0);
 SendMessage(Handle, WM_CHAR, word('D'), 0);
 SendMessage(Handle, WM_CHAR, word('B'), 0);
 SendMessage(Handle, WM_KEYUP, VK_MENU, 0);
end;
das führt bei mir aber leider zu keinem Ergebnis...

Sendkey funktioniert eigentlich super nur halt leider nicht wenn ich die exe ausserhalb der Delphi-IDE
ausführe - und ich frage mich immmer noch wo ist hier der Unterschied ?

Delphi Compiliert den Code und führt doch dann die EXE aus... also müsste doch das Ergebnis dasselbe sein als wenn ich die EXE direkt ausführe (am verzweifeln)

Tschö

Ralf

th_bone 10. Nov 2005 09:45

Re: Merkwürdiger Fehler - Compiler geht / Exe nicht...
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,

ich hab jetzt mal ein kleines Testprog mit Source angehängt - es macht nichts anderes als den geöffneten
Editor per Tastenkombi ALT+d+b zu schließen...

Der Source in Delphi 2005 ausgeführt mit F9 funktioniert - startet man die EXE direkt wird der Editor nicht
geschlossen

Was ist den hier der Unterschied ? hat keiner eine Idee ?

Danke

Ralf

th_bone 11. Nov 2005 10:11

Re: Merkwürdiger Fehler - Compiler geht / Exe nicht...
 
Ich hab jetzt mal ne krücke gefunden wie es zumindest funktioniert... das
problem scheint bei appactivate zu liegen... warum der focus trotz
ergebnis "true" nicht bei dem fenster liegt ist mir schleicherhaft

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
handle: thandle;
begin
 handle:=findwindow(nil,('Unbenannt - Editor'));
 showwindow(handle,SW_MINIMIZE);
 showwindow(handle,SW_RESTORE);
 AppActivate('Unbenannt - Editor');
 SendKeys('%(db)' , false);
end;
wenn man das fenster aber zuerst minimiert und dann wieder herstellt geht es
immer...

na ja was erwarte ich - ich progge ja unter MS-windows

tschö

Ralf


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:06 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 by Thomas Breitkreuz