Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Messages unter Windows 10 (https://www.delphipraxis.net/188792-messages-unter-windows-10-a.html)

idefix2 7. Apr 2016 15:39

Messages unter Windows 10
 
Unter Windows 10 scheint das Versenden von Nachrichten zwischen verschiedenen Prozessen nicht mehr zu funktionieren.
Ich verwende das in einem Programm, um ein Autohotkey Skript mit einem Delphi Programm zu koppeln (manche Dinge sind per AHK ungeich einfacher zu machen als per Delphi)
Unter Delphi 10 reagiert das AHK-Skript nicht mehr auf eine solche Message, unter Windows 7 funktioniert das gleiche einwandfrei.

Code:
ahkHandle:=inifile.ReadInteger('Scan','AHK',0);
PostMessage(ahkHandle,inifile.ReadInteger('Scan','AHKMsg',0),2,0);
Die entsprecchenden Werte - Fensterhandle des AHK Skripts und Message Nummer - werden im Ini-File vom AHK-Skript richtig hinterlegt, das habe ich schon überprüft. Aber unter Windows 10 kommt die Message anscheinend nicht an. Sind euch in dem Bereich irgend welche Änderungen seitens Microsoft bekannt?

TiGü 7. Apr 2016 15:52

AW: Messages unter Windows 10
 
Gehts damit?

Delphi-Quellcode:
var
  ahkHandle: HWND; //<--- wichtig!
begin
  ahkHandle := inifile.ReadInteger('Scan', 'AHK', 0);
  PostMessage(ahkHandle, UINT(inifile.ReadInteger('Scan', 'AHKMsg', 0)), WPARAM(2), LPARM(0));
end;

jaenicke 7. Apr 2016 16:07

AW: Messages unter Windows 10
 
Mit dem window Detective kannst du auch sehen ob die Messages nicht ankommen oder ob falsche Werte drin sind.

Dalai 7. Apr 2016 16:12

AW: Messages unter Windows 10
 
Laufen die Prozesse in unterschiedlichen Rechte-Kontexten? Vereinfacht gesagt: wird einer davon als Administrator ausgeführt?

MfG Dalai

idefix2 7. Apr 2016 17:23

AW: Messages unter Windows 10
 
Ich habe mir den Window detective heruntegeladen und installiert, dnke für den Hinweis. Es wird von meinem Delphi-Programm offenbar keine Message an das AHK-Fenster geschickt, zumindest zeigt auch der window detectivbe nichts an.
Die Fensterhandle, die ich an das sendmessage übergebe, ist genau der Wert, den auch der window detective anzeigt (es ist natürlich nach jedem Neustart des AHK-Skripts ein anderer Wert, aber der wird vom Skript richtig im Ini-File hinterlegt).

Zitat:

ahkHandle: HWND; //<--- wichtig!
Habs jetzt zur Sicherheit auch so probiert, aber da war (von mir erwartungsgemäß) keine Änderung. Integer ist so wie HWND ein 32-Bit Wert, und solange damit nicht herumgerechnet wird, ist es egal, ob der Wert als signed oder als unsigned interpretiert wird.

Als Messagenummer habe ich willkürlich den Wert 8193 festgesetzt - Hat sich am Bereich der erlaubten Messagenummern von Win7 auf win10 etwas geändert?

@Dalai
Beide Prozesse werden im noralen Userkontext ausgeführt, zumindest sollten sie das. Dass das AHK-Skript normalerweise schon im Windows autostart geladen wird, sollte daran ja nichts ändern, oder? Kann ich das für laufende Prozesse irgendwie überprüfen?

edit:
@Dalai
Danke, das war es. Ich dürfte das Skript irgendwann beendet haben und dann von meinem Total Commander aus gestartet haben, der immer mit Adminrechten läuft. Danach lief es natürlich im Admin-Kontext. Bei Win 7 und ausgeschalteter UAC war das anscheinend kein Problem. Unter win10 dürfte man die aber nicht mehr loswerden, oder?

jaenicke 7. Apr 2016 18:08

AW: Messages unter Windows 10
 
Zitat:

Zitat von idefix2 (Beitrag 1334933)
Unter win10 dürfte man die aber nicht mehr loswerden, oder?

Theoretisch schon, aber empfehlenswert ist das absolut nicht.

Zacherl 7. Apr 2016 18:57

AW: Messages unter Windows 10
 
Zitat:

Zitat von jaenicke (Beitrag 1334941)
Zitat:

Zitat von idefix2 (Beitrag 1334933)
Unter win10 dürfte man die aber nicht mehr loswerden, oder?

Theoretisch schon, aber empfehlenswert ist das absolut nicht.

Exakt. Stattdessen musst du dein Tool wohl oder übel auch einfach als Admin ausführen und schon geht wieder alles.

idefix2 7. Apr 2016 20:01

AW: Messages unter Windows 10
 
Zitat:

Zitat von jaenicke (Beitrag 1334941)
Zitat:

Zitat von idefix2 (Beitrag 1334933)
Unter win10 dürfte man die aber nicht mehr loswerden, oder?

Theoretisch schon, aber empfehlenswert ist das absolut nicht.

Mich nervt diese Bevormundung ungeheuer. Ich lasse mir gerne Sachen empfehlen, aber ich will dann trotz allem selbst entscheiden, was ich mache.

Natürlich ist das in vielen Umgebungen nicht empfehlenswert.
Aber was ist das (mit einer sehr sehr geringen Wahrscheinlichkeit behaftete) Risiko in meinem privaten Netzwerk, als dass ich schlimmstenfalls den PC neu aufsetzen und die gesicherten Daten vom Vortag zurückspielen muss, wenn ich über das Internet einen ganz neuen, ganz bösartigen Virus erwische, den mein Antivirus noch nicht kennt, der die Kontrolle über den PC übernimmt? Dem stehen unnötige Rückfragen der UAC am laufenden Band gegenüber. Und allein dieses unnötige Zwischenspiel mit der blockierten Message hat mich in Summe genauso viel, wenn nicht mehr Ärger und mehr Zeit an Fehlersuche gekostet, als so ein worst case mich kosten könnte.

Luckie 8. Apr 2016 04:14

AW: Messages unter Windows 10
 
Du kannst alles abschalten und deaktivieren. Wo ist da die Bevormundung? Auf der anderen Seite wird sich immer beschwert, dass dich Sicherheitseinstellungen von Windows zu locker sind. :roll:

CCRDude 8. Apr 2016 08:13

AW: Messages unter Windows 10
 
Zitat:

Zitat von idefix2 (Beitrag 1334971)
Aber was ist das (mit einer sehr sehr geringen Wahrscheinlichkeit behaftete) Risiko in meinem privaten Netzwerk

Vielleicht versuchst Du mal etwas weniger egozentrisch zu denken - je nach Art der Schadsoftware hat diese, bis Du sie entdeckt, schon tausende Spam-Emails verschickt, oder hunderte weitere Rechner zu infizieren versucht.

Und wenn's nur um Dich gehen sollte - die Krypto-Schadsoftware wird auch immer gerissener und befällt - je nach Backup-Methode natürlich - selbst Backups.

Dass Dich die Geschichte mit den Messages Ärger gekostet hat, ist ärgerlich - aber ist nunmal Standard-Ursache Nummer 1 für fehlgeschlagene Window Message-IPC.

Beschwer Dich lieber bei den Entwicklern, die Programme so entwickeln, dass sie unnötigerweise immer mit Admin-Rechten laufen wollen. Microsoft hat da eigentlich in allen Logo-Programmen immer gegengesteuert - wenn ein Programm "works with" oder "certified for" (oder moderne Varianten davon) sein soll, darf das Hauptprogramm keine Elevation benötigen (kann sich natürlich trotzdem selber bei Bedarf später elevaten).


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:25 Uhr.
Seite 1 von 2  1 2      

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