AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Change text of other App Edit Control
Thema durchsuchen
Ansicht
Themen-Optionen

Change text of other App Edit Control

Ein Thema von Razor · begonnen am 4. Okt 2009 · letzter Beitrag vom 4. Okt 2009
Thema geschlossen
Seite 2 von 3     12 3      
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#11

Re: Change text of other App Edit Control

  Alt 4. Okt 2009, 14:34
Zitat von Razor:
Nobody...?Dont know or is it that almost everybody is lazy to hit the post button.
Where is your question?
 
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#12

Re: Change text of other App Edit Control

  Alt 4. Okt 2009, 14:36
42
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
 
Razor
(Gast)

n/a Beiträge
 
#13

Re: Change text of other App Edit Control

  Alt 4. Okt 2009, 14:37
Question is: Why dosen't this work under win 7/vista?Please someone test it!
It only opens the dialog i knew how to do that on my own.So nothing new.

Delphi-Quellcode:
uses
  ShellAPI,ddeman;

 
procedure WindowsSuchenDialog(Verzeichnis, Suchstring: string);
var
  hOtherWin, hFocusWin: HWND;
  OtherThreadID, iTimeOut: Integer;
  aDwordVar: DWORD;
  buf: array [0..40] of Char;
  sVerz: string;
begin
  // ShellExecute(application.handle, 'find', 'c:\', nil, nil, SW_SHOWNORMAL);
  // oder mit TDDEClientConv
  with TDDEClientConv.Create(nil) do
  begin
    ConnectMode := ddeManual;
    ServiceApplication := 'explorer.exe';
    SetLink('Folders', 'AppProperties');
    OpenLink;
    sVerz := IncludeTrailingBackslash(Verzeichnis);
    ExecuteMacro(PChar('[FindFolder(, '+ sVerz +')]'), False);
    CloseLink;
    Free;
  end;
  iTimeOut := 0;
  repeat
    { Warten, bis der Such Dialog erscheint. 
      Unter Win95/98/NT4 hat der Suchdilaog die Klasse #32770. 
      Unter ME/2000/XP ist die Suche in den Explorer integriert, 
      darum auf CabinetWClass warten}
   
    Sleep(100);
    hOtherWin := GetForegroundWindow;
    buf[0] := #0;
    GetClassName(hOtherWin, buf, 60);
    inc(iTimeOut);
  until (StrComp(buf, '#32770') = 0) or (StrComp(buf, 'CabinetWClass') = 0) or (iTimeOut > 20);
  if iTimeOut > 20 then Exit;
  repeat
    { Wait until it is visible }   
    { Warten, bis das Fenster erscheint }   
    Sleep(100);
  until IsWindowVisible(hOtherWin);

 
  { Handle vom Control finden, welches den Fokus besitzt }   
  OtherThreadID := GetWindowThreadProcessID(hOtherWin, @aDwordvar);
  if AttachThreadInput(GetCurrentThreadID, OtherThreadID, True) then
  begin
    hFocusWin := GetFocus;
    if hFocusWin <> 0 then
      try
        SendMessage(hFocusWin, WM_SETTEXT, 0, Longint(PChar(Suchstring)));
      finally
        AttachThreadInput(GetCurrentThreadID, OtherThreadID, False);
      end;
  end;
end;

 
procedure TForm1.Button1Click(Sender: TObject);
begin
  WindowsSuchenDialog('c:\temp','test.txt');
end;

Offtopic comment:@ DeddyH and others > Delphipraxis will be delphipraxis unique in its own weird bizzaree way.
 
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#14

Re: Change text of other App Edit Control

  Alt 4. Okt 2009, 15:50
The answer was already given by sx2008.

This link might also be of interest: Windows Integrity Mechanism Design
Thomas
 
Razor
(Gast)

n/a Beiträge
 
#15

Re: Change text of other App Edit Control

  Alt 4. Okt 2009, 15:52
Look toms no offense but you should really really update your Winspy 2008 in win 7 its showing completely diffrent handles.
WinID vs WinSpy 2008 = WinID wins by far!

The problem was WRONG HANDLE!
 
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#16

Re: Change text of other App Edit Control

  Alt 4. Okt 2009, 16:00
Zitat von Razor:
The problem was WRONG HANDLE!
That's why I asked you the question "Is the message ShowMessage(..) shown?"

Zitat von Razor:
its showing completely diffrent handles.
Where exactly was the error? How does the FindWindow Code look like now?
Thomas
 
Razor
(Gast)

n/a Beiträge
 
#17

Re: Change text of other App Edit Control

  Alt 4. Okt 2009, 16:06
Well its kind of weird but i will explain step by step:

Winspy 2008 gets handle alright but the last wndchild gets diffrent handle as reported in WINID;
if i used this procedure result would be nothing,but if used direct handle "number"
then it would change but WinID is reporting title change but it is not visible.Very cofusing


Delphi-Quellcode:
  wndMain := FindWindow('CabinetWClass','Search Results');
  if wndMain <> 0 then
  begin
    wndChild := FindWindowEx(wndMain, 0, 'WorkerW', nil);
    wndChild := FindWindowEx(wndChild, 0, 'ReBarWindow32', nil);
    wndChild := FindWindowEx(wndChild, 0, 'UniversalSearchBand', nil);
    wndChild := FindWindowEx(wndChild, 0, 'Search Box', nil);
    wndChild := FindWindowEx(wndChild, 0, 'SearchEditBoxWrapperClass', nil);
    wndChild := FindWindowEx(wndChild, 0, 'DirectUIHWND', nil)


As you can see here title is :www.delphipraxis something'' so it did change but not as it changes in IE search box.


IE search box works but only if you use direct HANDLE input no wndchild's and wndmain's


Now toms explain why does this happen

http://img.techpowerup.org/091004/Capture011.jpg
http://img.techpowerup.org/091004/Capture012.jpg
 
Razor
(Gast)

n/a Beiträge
 
#18

Re: Change text of other App Edit Control

  Alt 4. Okt 2009, 17:04
i believe toms that problem lies in DirectUIHwnd class.I am still searching what it is exactly.
 
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#19

Re: Change text of other App Edit Control

  Alt 4. Okt 2009, 17:12
Hi!

Please don't push within 24 hours!


Ciao, Frederic
Frederic Kerber
 
Razor
(Gast)

n/a Beiträge
 
#20

Re: Change text of other App Edit Control

  Alt 4. Okt 2009, 18:41
Fkerber if you do not know the solution to this problem dont post please...
 
Thema geschlossen
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:37 Uhr.
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