@DeddyH
Grundsätzlich stimme ich dir da natürlich zu. (Wenn allerdings "FindWindow" schon die Taskbar nicht mehr findet, dann ist das System sowieso höchstwahrscheinlich abgestürzt und es wird da wesentlich mehr nicht mehr funktionieren als nur mein Prog.)
@sx2008
Diese Idee hatte ich in der Zwischenzeit tatsächlich auch schon. Allerdings geht es mir in diesem Fall auch einfach etwas ums Prinzip. Dass nämlich ein relativ einfacher Code, der auf einem
Win32 bestens läuft, dieses auf einem Win64 jetzt nur wegen eines wahrscheinlich winzigen Fehlers nicht mehr tut... und ich, bevor ich da jetzt also irgendeinen anderen Lösungsweg einschlage, doch lieber erstmal versuche, diesen höchstwahrscheinlich nur "winzigen" Fehler rauszukriegen...
@himitsu
thx für deinen Codehilfe. Leider hat mein Delphi dieses elegante Exit('...') nicht, so dass ich in einem solchen Fall immer so eine relativ globige 4 Zeilen lange begin-end-Struktur brauche.
Ist dein "IntPtr" eigentlich ein normales ^integer? Habe diesbezüglich mal alles etwas ausprobiert, was der Compiler allerdings nie akzeptiert hat. Habe das dann wieder durchs Cardinal ausgetauscht.
Und direkt unter der fraglichen SendMessage-Zeile ist das "if (L=0)..." wohl durch ein "if (R=-1)..." auszutauschen, oder? Denn das L hattest du davor ja nirgendwo initialisiert etc...
Wie auch immer, dass Ergebnis nach dieser SendMessage-Zeile lautet auch mit deinem Code nach wie vor für das R = -1 und für die Übersetzung des GetLastError-Resultates: "[Error: SendMessage] Der Vorgang wurde erfolgreich beendet".
(PS. Hatte den Code mal vor einigen Jahren hier aus dem Forum aufgegabelt und auch ganz gut verstanden ...und deswegen auch nicht nochmal extra in die Dokumentation einer jeden Anweisung reingeguckt.)
@Alle,
imo müsste die eigentliche Fehlerursache immer noch in einer falschen Record-Umwandlung liegen. Weil der doch auch irgendwie das einzigste Teil ist, das sich am ganzen Code wirklich geändert hat! ???