Autor Beitrag
MisterCP
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Mi 30.05.12 13:21 
Hallo,

ich muß ein fremdes Programm (c#) auf einem Touch-PC laufen lassen und möchte beim öffnen des ort integrierten Logins ein OnScreenKeyboard einblenden.

Wenn das Loginfenster geöffnet wird, erkenne ich das in meinem Delphi-Programm über den Klassennamen nur bedingt, weil sich auch andere Fenster des C-Programms mit diesem Klassennamen melden.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
function EnumWindowsProc(wHandle: HWND): Bool; stdcallexport;
var
  Title, ClassName: array[0..255of char;
  strClassName : String;
begin
  Result := True;
  GetWindowText(wHandle, Title, 255);
  GetClassName(wHandle, ClassName, 255);
  StrClassName := ClassName;
  if ((strClassName = 'AfxFrameOrView70u'and (IsWindowVisible(wHandle))) then begin
     AISLoginFound := True
  end;{if}
end;


Den Fenstertitel kann ich ebenfalls nicht zur Identifizierung nutzen, weil der sich gelegentlich ändert, spätestens, wenn die Oberflächensprache umgeschaltet wird.

Gibt es auch irgendeinen Befehl, wie ich etwas anderes eindeutiges, z.B. den Objektnamen zur Entwurfszeit oder ähnl. herausbekommen könnte?

Vielen Dank für eure Hilfe

Moderiert von user profile iconMartok: Code- durch Delphi-Tags ersetzt
bummi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1248
Erhaltene Danke: 187

XP - Server 2008R2
D2 - Delphi XE
BeitragVerfasst: Mi 30.05.12 23:43 
Vielleicht wir es über die enthaltenen ChildControls eindeutig identifizierbar ...

_________________
Das Problem liegt üblicherweise zwischen den Ohren H₂♂
DRY DRY KISS
MisterCP Threadstarter
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Do 31.05.12 07:47 
hatte ich auch gehofft, aber leider Fehlanzeige.
Es sind lediglich ein Eingabefeld für das Passwort sowie drei Tasten (Anmelden, Abmelden, Abbrechen) enthalten. Letztere ändern, ebenso wie das Fenster selbst, beim Wechsel der Oberflächensprache, ihre Caption, so daß ich auch hier einen konkreten, nicht änderbaren Namen bräuchte.

Falls die Idee auftauchen sollte, doch einfach auf mehrere (fremdsprachige) Captions abzufragen: Dies würde daran scheitern, daß die fremdsprachigen Texte vom Bediener beliebig manipuliert/eingegeben werden können. Die Recoucendatei liegt dann zwar immer mit im Programmverzeichnis, aber deren Aufbau kenne ich nicht, bzw. ich kann den gerade verwendeten Text für die Captions dort nicht auslesen.
bummi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1248
Erhaltene Danke: 187

XP - Server 2008R2
D2 - Delphi XE
BeitragVerfasst: Do 31.05.12 08:12 
Die Klassenkombinationen sind auch nicht eindeutig?

_________________
Das Problem liegt üblicherweise zwischen den Ohren H₂♂
DRY DRY KISS