Kein Fenstername verfügbar

09/04/2013 00:29 Rolle#1
Huhu Leute bin grade dabei nen kleinen Bot in AutoIT zu schreiben, um verschiedene Commands an nen Programm zu schicken. Das Problem ist hierbei nur das dieses Programm über keinen FensterTitel verfügt und ich jetzt nicht weiß ob ich per ProcessID dem Programm irgendwelche Commands schicken kann? Habe nichts brauchbares gefunden .

Wäre über Hilfe sehr dankbar :)

grüße
09/04/2013 11:04 alpines#2
Wie wärs damit das du den Title / Handle vom aktuellen fokussierten Fenster nimmst und es einfach umbenennst damit du es später einfacher hast?

Prozesskommunikation geht eigentlich von AutoIt zu AutoIt per Pipeline-UDF aber von AutoIt zu Random bräuchte man glaub ich einen Injector und die dazugehörige DLL.

So kriegst du den Fenstertitle vom aktiven Fenster raus, wenn es hilft:
Code:
$sWindowTitle = WinGetTitle(WinActive(""))

MsgBox(64, "Window Title", $sWindowTitle)
09/04/2013 11:45 Rolle#3
Danke für deine Antwort, habe mich heute Nacht vielleicht etwas doof ausgedrückt :awesome:. Das Programm hat keinen Fenstertitel per Au3Info kommt kein Fenstername und wenn ichs per Autoit mit ner MsgBox auslesen lasse bekomme ich immer wieder 0 raus.

Gibt es ne Möglichkeit dem Prozess anhand der ProcessID oder der ProcessEXE einen FensterTitel zuzuweisen ?
Es handelt sich übrigens um AdBuck.
Früher hieß der FensterTitel Form17 und man konnte schön damit arbeiten, das haben die aber jetzt leider gefixt.

Hoffe ich konnte meine Frage etwas klarer formulieren :)

Grüße
09/04/2013 12:32 butter123#4
probier mal WinGetHandle
09/04/2013 12:36 c0w#5
Quote:
Originally Posted by Rolle View Post
Danke für deine Antwort, habe mich heute Nacht vielleicht etwas doof ausgedrückt :awesome:. Das Programm hat keinen Fenstertitel per Au3Info kommt kein Fenstername und wenn ichs per Autoit mit ner MsgBox auslesen lasse bekomme ich immer wieder 0 raus.

Gibt es ne Möglichkeit dem Prozess anhand der ProcessID oder der ProcessEXE einen FensterTitel zuzuweisen ?
Es handelt sich übrigens um AdBuck.
Früher hieß der FensterTitel Form17 und man konnte schön damit arbeiten, das haben die aber jetzt leider gefixt.

Hoffe ich konnte meine Frage etwas klarer formulieren :)

Grüße
so weit ich weiß handelt es sich im adbuckfenster um eine explorer objekt, also controlsend, falls du das vor hast, geht denk ich ned =)
09/04/2013 12:42 Rolle#6
Mit WinGetHandle klappt das ganze leider auch nicht.

Quote:
Originally Posted by c0w View Post
so weit ich weiß handelt es sich im adbuckfenster um eine explorer objekt, also controlsend, falls du das vor hast, geht denk ich ned =)
Jo das ist soweit richtig, ich habe mal die Au3Infos zusammen gefügt.
Code:
>>>> Window <<<<
Title:	
Class:	WindowsForms10.Window.8.app.0.2bf8098_r13_ad1
Position:	1620, 0
Size:	300, 1040
Style:	0x96010000
ExStyle:	0x00010088
Handle:	0x0002044C

>>>> Control <<<<
Class:	Internet Explorer_Server
Instance:	1
ClassnameNN:	Internet Explorer_Server1
Name:	
Advanced (Class):	[CLASS:Internet Explorer_Server; INSTANCE:1]
Grüße
09/04/2013 15:13 alpines#7
Code:
Local $title = WinGetTitle("[CLASS:Notepad]", "")
Das steht in der Hilfe zu WinGetTitle, versuch mal Notepad durch deine Klasse zu ersetzen?
09/04/2013 15:54 Rolle#8
ehm das Fenster hat definitiv keinen Titel ^^ ich kriege immer ne leere MsgBox raus wenn ich das mit WinGetTitle abfrage :/
Code:
local $wintitle = WinGetTitle ("[CLASS:WindowsForms10.Window.8.app.0.2bf8098_r13_ad1]","")
 Msgbox (0,"",$wintitle)
Ist es möglich dieses Fenster anhand des Processes oder über MemoryWrite zu renamen?
09/04/2013 16:06 alpines#9
Du sollst die Klasse da eintragen und nicht was anderes! Die Klasse hast du doch da schon gezeigt: Internet Explorer_Server
09/04/2013 16:22 Rolle#10
auch mit CLASS: Internet Explorer_Server genau die gleiche Ausgabe..
WinGetTitle in ner MsgBox auslesen lassen ist doch klar das er mir nur 0 ausgeben kann wenn das Fenster keinen Namen hat oder :confused:
09/04/2013 19:14 alpines#11
Wenn das nicht Funktioniert dann versuch mal:
Code:
$sWindowTitle = WinGetTitle(Chr(0))
Es kann sein das sie den Char 0 verwenden. (das kann man nicht darstellen, zumindest nicht im Fenstertitel / String / etc...)

Ich hab das in der Documentation gefunden, vielleicht hilft dir das weiter, da dein AdBuck Fenster eine Instanz ist:
Code:
WinWaitActive("[CLASS:My Class; INSTANCE:2]", "")
Musst nur noch Class sowie Instance ersetzen und statt WinActive natürlich WinGetTitle.
09/04/2013 21:39 Rolle#12
Okay habs nun mit nem WinGetHandle und ner Ini Datei hin bekommen!

Code:
$adstatwindow= INIREAD("config.ini","config","adstatwindow","Key nicht gefunden")
Local $hWnd = WinGetHandle ("[CLASS:"&$adstatwindow&"]", "")
ControlSetText ($hWnd,"",$adstattext,$capt)
Danke für eure Hilfe :)