- This topic has 19 replies, 5 voices, and was last updated 17 years ago by Newbie.
-
AuthorPosts
-
January 11, 2007 at 6:20 pm #190922AdminAdministrator
Hey, does anyone know what is the api for paltalk buddy list 🙂 cause I being trying to get it and no luck so far, I don’t know if its a treeview or a listview 🙂
this is the code off the thing 😆
Dim seinfeldsuperman As Long, wtlsplitterwindow As Long, atla As Long
Dim gradienttreeviewclass As Long
seinfeldsuperman = FindWindow("seinfeld_superman", vbNullString)
wtlsplitterwindow = FindWindowEx(seinfeldsuperman, 0&, "wtl_splitterwindow", vbNullString)
atla = FindWindowEx(wtlsplitterwindow, 0&, "atl:006a1118", vbNullString)
gradienttreeviewclass = FindWindowEx(atla, 0&, "gradienttreeviewclass", vbNullString)January 12, 2007 at 2:53 pm #190941NewbieMembergradienttreeviewclass
January 12, 2007 at 3:17 pm #190940BattleStar-GalacticaMemberloco in action again 😆 , I got sick with pt programming for now, I concentrate my learning in masm32 and dont know how to do a split function in asm 😆
January 12, 2007 at 5:57 pm #190939AdminAdministratorloco is this for add as many people you want on ur black nick
January 12, 2007 at 6:02 pm #190938AdminAdministratorDJ , lol thats just apis to try to get then nicks in the buddy list 🙂
Aigh so its gradienttreeviewclass, but I cant find info on that so its thas just a paltalk naming it as so, and its a listview 🙂
nanomachine007 yes is that I be promising peeps for this program ehehhe, well I am hoping soon someone takes over cause this is my last year to get my college degree so its going to be crazy 🙂 hey whats masm32
January 12, 2007 at 6:31 pm #190937AdminAdministratorawwwwwwww ok
January 13, 2007 at 12:38 am #190936BattleStar-GalacticaMembermasm32 in short definition is assembly 32 bits programming, like you code in high level programming language(vb6); when you code in masm32, you code in assembly language, I progress slowly 🙁
January 13, 2007 at 7:32 pm #190935NewbieMemberChan wa mr nano oi, kà kà . forum nay cha? co gi de choi 😀 😀
January 13, 2007 at 9:10 pm #190934AdminAdministratorJanuary 13, 2007 at 10:57 pm #190933BattleStar-GalacticaMember@Newbie wrote:
Chan wa mr nano oi, kà kà . forum nay cha? co gi de choi 😀 😀
cha’n thi keu nho queen show zu’ ong coi di hahaha
January 13, 2007 at 11:12 pm #190932AdminAdministrator@nanomachine007 wrote:
@Newbie wrote:
Chan wa mr nano oi, kà kà . forum nay cha? co gi de choi 😀 😀
cha’n thi keu nho queen show zu’ ong coi di hahaha
TeeeT TeeT
January 15, 2007 at 6:32 am #190931AdminAdministratorWhat lol,
hey someone needs to hook me up cause i open my big mouse and say I gonna try to make like a buddy nicks deleter lolJanuary 15, 2007 at 4:16 pm #190930AdminAdministrator@Admin wrote:
What lol,
hey someone needs to hook me up cause i open my big mouse and say I gonna try to make like a buddy nicks deleter lolthere is no probleme i think there is already a place in the data that all ur nicks are save even if you unistall ur paltalk
and in the files there is even the chats 😯September 17, 2007 at 6:33 pm #190929Snoopy1968Memberhey not sure if this is the right thing but is the buddylist a listview item?
October 28, 2007 at 5:41 pm #190928ChikeMemberSine BattleStar-Galactica did not post the code yet I had to figure it all by myself
So here a short c++ console APP that print your buddy-list.
With some code I stole from autopilot 😆
#include
#include
#include
#include
// I hate "using"! :-)
// using namespace std;
void GetTVItem(HWND hwnd, HTREEITEM htvitem, char *buff, int buff_len);
int main(int argc, char *argv[])
{
HWND seinfeldsuperman, wtlsplitterwindow, atla, gradienttreeviewclass;
seinfeldsuperman = FindWindow("seinfeld_superman", NULL);
wtlsplitterwindow = FindWindowEx(seinfeldsuperman, 0, "wtl_splitterwindow", NULL);
// Paltalk 9.1
atla = FindWindowEx(wtlsplitterwindow, 0, "atl:006d06d0", NULL);
if (atla == NULL) /// Paltalk Scene
atla = FindWindowEx(wtlsplitterwindow, 0, "ATL:006FBF78", NULL);
if (atla == NULL) // Paltalk 8.5
atla = FindWindowEx(wtlsplitterwindow, 0, "ATL:00547638", NULL);
gradienttreeviewclass = FindWindowEx(atla, 0, "gradienttreeviewclass", NULL);
HTREEITEM htvitem = TreeView_GetRoot(gradienttreeviewclass);
char text[256];
while (htvitem) {
/// get root item (Pals, Offline, and custome groups)
GetTVItem(gradienttreeviewclass, htvitem, text, 256);
// comment the followong 2 lines to see onffine too
if (!std::string("Offline").compare(0, 7, text, 0, 7))
break;
std::cout << text << std::endl;
// get 1st buddy in this group
HTREEITEM htvitem1 = TreeView_GetChild(gradienttreeviewclass, htvitem);
while (htvitem1) {
GetTVItem(gradienttreeviewclass, htvitem1, text, 256);
std::cout << " " << text << std::endl;
/// get next buddy
htvitem1 = TreeView_GetNextSibling(gradienttreeviewclass, htvitem1);
}
htvitem = TreeView_GetNextSibling (gradienttreeviewclass, htvitem);
}
system("PAUSE");
return EXIT_SUCCESS;
}
void GetTVItem(HWND hwnd, HTREEITEM htvitem, char *buff, int buff_len)
{
DWORD lProcID;
// Get the process ID in which the TreeView is running
GetWindowThreadProcessId(hwnd, &lProcID);
if (lProcID != 0) {
// make sure we have read write permissions in the process space
HANDLE hProc = OpenProcess(PROCESS_VM_OPERATION|PROCESS_VM_READ|PROCESS_VM_WRITE, FALSE, lProcID);
if (hProc != 0) {
// Grab enough memory in the other procedure's space to hold our TVITEM and the return text buffer
void *lxproc_tvitem = VirtualAllocEx(hProc, 0, sizeof(TVITEM)+buff_len, MEM_COMMIT|MEM_RESERVE, PAGE_READWRITE);
// Set up our local TVITEM
TVITEM tv_item;
tv_item.mask = TVIF_TEXT;
tv_item.hItem = htvitem;
tv_item.pszText = static_cast(lxproc_tvitem)+sizeof(TVITEM);
tv_item.cchTextMax = buff_len;
// Copy the local TVITEM into the space we reserved in the foreign process
WriteProcessMemory(hProc, lxproc_tvitem, &tv_item, sizeof(TVITEM), NULL);
// Now send the message, but pass the address of the copy of our TVITEM that now exists in the foreign process instead of our local versiony
BOOL res = TreeView_GetItem(hwnd, lxproc_tvitem);
if (res) {
// the return text buffer (address) may have changed so we need to copy it back
ReadProcessMemory(hProc, lxproc_tvitem, &tv_item, sizeof(TVITEM), NULL);
// Since we have no clue about it's length we have to copy it all
ReadProcessMemory(hProc, tv_item.pszText, buff, buff_len, NULL);
// Note: last line is a bit risky if buffer was actually changed
// Because we could cross page boundary and hit a non-alloocated
// page.
} else {
*buff = '';
}
// Clean up
VirtualFreeEx(hProc, lxproc_tvitem, 0, MEM_RELEASE);
CloseHandle(hProc);
}
}
}
-
AuthorPosts
Related
- You must be logged in to reply to this topic.