| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2909 人关注过本帖
标题:高手看看下列VC代码能否改成VB代码
只看楼主 加入收藏
guchew
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2016-5-14
结帖率:28.57%
收藏
已结贴  问题点数:15 回复次数:3 
高手看看下列VC代码能否改成VB代码
VC代码:
if(hWnd)
        {
            HWND hForeWnd = ::GetForegroundWindow();
            DWORD dwForeID = ::GetWindowThreadProcessId(hForeWnd,NULL);
            DWORD dwCurID = ::GetCurrentThreadId();
            ::AttachThreadInput(dwCurID,dwForeID,TRUE);
            ::ShowWindow(hWnd,SW_SHOWNORMAL);
            ::SetWindowPos(hWnd,HWND_TOPMOST,0,0,0,0,SWP_NOSIZE|SWP_NOMOVE);
            ::SetWindowPos(hWnd,HWND_NOTOPMOST,0,0,0,0, SWP_NOSIZE|SWP_NOMOVE);
            ::SetForegroundWindow(hWnd);
            ::AttachThreadInput(dwCurID,dwForeID,FALSE);
            return 0;
        }
自己改写的运行出错:
        Dim hForeWnd As Integer = GetForegroundWindow()
        Dim dwForeID As Integer = GetWindowThreadProcessId(hForeWnd, 0)
        Dim dwCurID As Integer = GetCurrentThreadId()
        AttachThreadInput(dwCurID, dwForeID, 1)
        ShowWindow(hWnd, SW_SHOWNORMAL)
        SetWindowPos(hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE And SWP_NOMOVE)
        SetWindowPos(hWnd, HWND_NoTopmost, 0, 0, 0, 0, SWP_NOSIZE And SWP_NOMOVE)
        SetForegroundWindow(hWnd)
        AttachThreadInput(dwCurID, dwForeID, 0)
2016-09-06 14:59
不说也罢
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:39
帖 子:1481
专家分:4989
注 册:2007-10-7
收藏
得分:8 
初看,楼主转换的应该没有问题。你把所有的integer替换成Long试试,
楼主没有说明出错的代码行及出错原因,又没有代码的上下文,无法能帮上你。
楼主检查下声明中的参数类型及返回值的类型。定义的变量类型以及代码中的常量要与参数类型一致。

===================================================
讨厌C#的行尾的小尾巴;和一对大括号{ }
===================================================
2016-09-06 17:14
梦幻倩影
Rank: 5Rank: 5
等 级:职业侠客
威 望:8
帖 子:162
专家分:352
注 册:2016-8-19
收藏
得分:8 
上面几个函数好象不是自带的,据我了解比如GetForegroundWindow()应该是user32.dll中的,如要引用得先处理一下:
Imports System.Runtime.InteropServices
    <DllImport("user32.dll", SetLastError:=True)> _
    Private Shared Function GetForegroundWindow() As IntPtr
    End Function

然后再:
Dim hForeWnd As Integer = GetForegroundWindow()
2016-09-07 15:16
guchew
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2016-5-14
收藏
得分:0 
问题找到了,SWP_NOSIZE And SWP_NOMOVE错了,应为:SWP_NOSIZE + SWP_NOMOVE
2016-11-07 11:35
快速回复:高手看看下列VC代码能否改成VB代码
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014920 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved