Solved

Grabbing highlighted nickname from Yahoo Chat window list

Posted on 2003-10-24
8
347 Views
Last Modified: 2010-04-05
I'm writing some DELPHI 7 utilities for use with Yahoo Chat.  Sending output from my program into the Yahoo Chat window was tricky but rather painless.  However, I would now like to be able to grab the currently highlighted nickname from the room participant list for use in my program output.  Every version of SendMessage() using GETTEXT has failed when send to that nickname list window and I stumped.  Any solution?
0
Comment
Question by:ronlinran
  • 3
  • 2
8 Comments
 
LVL 2

Accepted Solution

by:
ccrdude earned 113 total points
ID: 9620586
I don't know the Yahoo Chat... but have you already tried the GetWindowText API function?

function MyGetWindowText(h: THandle): string;
var len: integer;
    pc: PChar;
begin
   len := GetWindowTextLength(h);
   GetMem(pc,len);
   GetWindowText(h,pc,len);
   Result := pc;
   FreeMem(pc,len);
end;

If I guess correctly from your text that you already have the handle of the control you want to get the text from, this should do.
0
 

Author Comment

by:ronlinran
ID: 9621194
Okay, like I said, this problem has me compltetly puzzled.  I used the code provided by ccrdude but to no avail.  Sorry.

I have the handle of the chat room window using a call to findwindow using the 'imclass'.  Using Windowse spy program though I find that the class name of the nickname list is 'SysListView32'.  Using findwindowex with the 'imclass' window and then hooking to the 'SysListView32' window and then using the above code only returns 'List2' as the text not the actual text of the highlighted nickname in the list.  Hope that makes sense.

Anyway, thanks for trying
0
 
LVL 6

Assisted Solution

by:DaFox
DaFox earned 112 total points
ID: 9621264
Hi ronlinran,

I never used Yahoo Chat. So I don't know how the windows look like...
But this
CurrentTVItem := SendMessage(hTreeViewWnd, TVM_GETNEXTITEM, TVGN_CARET, 0);
should work as long as you are in the address space of the target app (Yahoo).

Regards,
Markus
0
ScreenConnect 6.0 Free Trial

Explore all the enhancements in one game-changing release, ScreenConnect 6.0, based on partner feedback. New features include a redesigned UI, app configurations and chat acknowledgement to improve customer engagement!

 

Author Comment

by:ronlinran
ID: 9621415
Nope, still no dice.  I"m about ready to give up on this even though I know it CAN be done.
0
 
LVL 2

Expert Comment

by:ccrdude
ID: 9622052
I guess "List" is the name of the control, not the contents. GetText would work for listboxes, but I'm not sure about ListViews.

My idea: get the window handle.
Then do EnumChildWindows.
Print out GetClassName and GetWindowText for each handle that EnumChildWindows returns.
That way you should be able to find the correct classname of the control you're looking for.
0
 

Author Comment

by:ronlinran
ID: 9623222
Thanks for all the help to date.  The control I am trying to access the highlighted text from is indeed a ListView and that seems to be the tricky bit.  The windows API isn't someting I'm very experienced with so grabbing the currently highlighted text from the control is proving porblematic at best.  The handle to the control is something I have, just what to do with it beyond that to get the info I want is the problem.
0

Featured Post

Netscaler Common Configuration How To guides

If you use NetScaler you will want to see these guides. The NetScaler How To Guides show administrators how to get NetScaler up and configured by providing instructions for common scenarios and some not so common ones.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

A lot of questions regard threads in Delphi.   One of the more specific questions is how to show progress of the thread.   Updating a progressbar from inside a thread is a mistake. A solution to this would be to send a synchronized message to the…
The uses clause is one of those things that just tends to grow and grow. Most of the time this is in the main form, as it's from this form that all others are called. If you have a big application (including many forms), the uses clause in the in…
This video shows how to use Hyena, from SystemTools Software, to bulk import 100 user accounts from an external text file. View in 1080p for best video quality.
Established in 1997, Technology Architects has become one of the most reputable technology solutions companies in the country. TA have been providing businesses with cost effective state-of-the-art solutions and unparalleled service that is designed…

809 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question