首页
社区
课程
招聘
[求助]VB模拟拖放文件操作到一个别的程序,遇到一点问题
发表于: 2009-1-11 17:08 4217

[求助]VB模拟拖放文件操作到一个别的程序,遇到一点问题

2009-1-11 17:08
4217
d28K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4c8G2M7r3W2U0i4K6u0W2j5%4y4V1L8W2)9J5k6h3&6W2N6q4)9J5c8Y4g2Q4x3V1j5J5x3o6l9^5x3e0t1K6x3g2)9J5c8U0t1I4i4K6u0r3z5h3p5$3k6U0j5$3x3r3k6Q4x3X3b7#2j5U0g2U0i4K6u0V1y4r3j5$3y4#2)9J5k6o6R3$3j5e0u0Q4x3X3b7K6y4e0b7J5j5U0j5^5y4K6V1$3j5U0m8Q4x3X3g2Z5N6r3#2D9
如上链接,之前在CSDN问过,贴子已经结了,但问题还没有解决,不好意思再问。自己捣鼓不出来,来这里问问各位牛人。

现在主要是
LPSTR pszRemote = NULL; 

pszRemote = (LPSTR)VirtualAllocEx(hProcess, NULL, dwBufSize, MEM_COMMIT, PAGE_READWRITE); 
     if(pszRemote == NULL) __leave; 
 
     if(WriteProcessMemory(hProcess, pszRemote, pBuf, dwBufSize, 0)) 
     ::SendMessage(hWnd, WM_DROPFILES, (WPARAM)pszRemote, NULL); 


这段代码,特别是VirtualAllocEx和WriteProcessMemory函数,由于运用不熟练,不知道在VB中如何写才是正确的
目前在vb.net中我这样写
        Dim pszRemote As Int32

        pszRemote = VirtualAllocEx(hProcess.ToInt32, 0, dwBufSize, MEM_COMMIT, PAGE_READWRITE)
        If pszRemote = 0 Then MsgBox("虚拟函数失败") : Exit Sub
        If (WriteProcessMemory(hProcess, pszRemote, pBuf, dwBufSize, 0)) <> 0 Then
            SendMessage(hWnd, WM_DROPFILES, pszRemote, 0)
        Else
            MsgBox("write内存失败")
        End If

并不成功,收到的消息内容是“InvalidOpera”而不是文件路径,pszRemote我有试过()byte、string等类型,还是失败,实在是不知道要怎么写才对。

以上是第一个问题,后来我把那段VC代码弄成一个DLL,可以用了,但是一样遇到一个问题

BOOL WINAPI DropFile(char szFile[], char szClassName[])
{
  HWND hWnd = ::FindWindow(szClassName, NULL); 
  if(hWnd == NULL) return FALSE; 
  
  DWORD dwBufSize = sizeof(DROPFILES) + sizeof(szFile) + 1; 


其中sizeof(szFile)这里,由VB传string进来,字符串是有传进来,但是sizeof(szFile)得不到正确的长度,一直为零。char szFile[]这里我试过改成指针形式,也试过VB里构造一个()byte结尾添上字符串结束符传进来,仍然得不到正确的结果。

后来只好手动把字符串长度传参进来
BOOL WINAPI DropFile(char szFile[], char szClassName[],DWORD szSize)
{
  HWND hWnd = ::FindWindow(szClassName, NULL); 
  if(hWnd == NULL) return FALSE; 
  
  DWORD dwBufSize = sizeof(DROPFILES) + szSize + 1; 

这样写虽然能用了,但仍然想知道,sizeof(szFile)这里到底要怎么做才能得到正确的结果,为啥会这样?
先谢谢大家了。

[培训]科锐逆向工程师培训第53期2025年7月8日开班!

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回