Capture windows name in Delphi
我在delphi中做一个捕获活动窗口的程序问题是代码没有做我想要的,我想要的是一个计时器在适当的时候识别活动窗口,以便附加活动窗口的名称而不是永远等到你看到一个不同的名字,问题是它总是显示没有做我想做的事。
如果问题不是我做的很好验证。
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | procedure TForm1.Timer4Timer(Sender: TObject); var ventana1: array [0 .. 255] of char; nombre1: string; nombre2: String; begin GetWindowText(GetForegroundWindow, ventana1, SizeOf(ventana1)); nombre1 := ventana1; if not(nombre1 = nombre2) then begin nombre2 := nombre1; Memo1.Lines.Add(nombre2); end; end; |
你什么都不做初始化
在
将
1 2 3 4 5 6 7 8 | type TForm1 = class(TForm) // normal declarations here procedure Timer4Timer(Sender: TObject); private Nombre2: string; // I'd use LastWindowName myself. :-) ... end; |
现在,在你的计时器事件中:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | procedure TForm1.Timer4Timer(Sender: TObject); var ventana1: array [0 .. 255] of char; nombre1: string; // I'd use 'NewName' begin GetWindowText(GetForegroundWindow, ventana1, SizeOf(ventana1)); nombre1 := ventana1; if not(nombre1 = nombre2) then // Now nombre2 still has the last value, begin // because it's no longer a local variable nombre2 := nombre1; // Store new"last window name" Memo1.Lines.Add(nombre2); end; end |