?
Solved

Grabbing highlighted nickname from Yahoo Chat window list

Posted on 2003-10-24
8
Medium Priority
?
355 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
  • 2
8 Comments
 
LVL 2

Accepted Solution

by:
ccrdude earned 452 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 448 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
Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 

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

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

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

Objective: - This article will help user in how to convert their numeric value become words. How to use 1. You can copy this code in your Unit as function 2. than you can perform your function by type this code The Code   (CODE) The Im…
In my programming career I have only very rarely run into situations where operator overloading would be of any use in my work.  Normally those situations involved math with either overly large numbers (hundreds of thousands of digits or accuracy re…
In this video you will find out how to export Office 365 mailboxes using the built in eDiscovery tool. Bear in mind that although this method might be useful in some cases, using PST files as Office 365 backup is troublesome in a long run (more on t…
In this video, Percona Solutions Engineer Barrett Chambers discusses some of the basic syntax differences between MySQL and MongoDB. To learn more check out our webinar on MongoDB administration for MySQL DBA: https://www.percona.com/resources/we…
Suggested Courses
Course of the Month10 days, 12 hours left to enroll

765 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