解决方案 »

  1.   

    参考:http://stackoverflow.com/questions/6179335/change-default-audio-device-on-windows-7
      

  2.   


    都是说的C++的~~有没有C#的用DllImport调用API
      

  3.   

    不好意思,您的网站,也看不懂,现在我的思路是,直接弹出声音 窗体,获得其句柄,然后查找子窗体,附一张图       问题来了,我想让第一行获得焦点,发了2条 SendMessage 没办法实现,无效果。      希望各位朋友帮忙解决下,我在网上找了很多资料, 都没办法实现,系统win7,同时有了答案也为以后的兄弟解决问题更快一些。
      

  4.   

    以下是截图中常量     
    public const int LVM_FIRST = 0x1000;
            public const uint LVM_GETITEMCOUNT = LVM_FIRST + 4;
            public int LVIF_TEXT = 0x0001;
            public const uint LVM_GETITEMW = LVM_FIRST + 75;
            public const uint LVM_SETSELECTEDCOLUMN = (LVM_FIRST + 140);        public const uint PROCESS_VM_OPERATION = 0x0008;
            public const uint PROCESS_VM_READ = 0x0010;
            public const uint PROCESS_VM_WRITE = 0x0020;
            public const uint MEM_COMMIT = 0x1000;
            public const uint MEM_RELEASE = 0x8000;        public const uint MEM_RESERVE = 0x2000;
            public const uint PAGE_READWRITE = 4;
            /// <summary>
            /// 按下鼠标左键
            /// </summary>
            public const uint WM_LBUTTONDOWN = 0x0201;
            /// <summary>
            /// 释放鼠标左键
            /// </summary>
            public const uint WM_LBUTTONUP = 0x0202;        public const uint WM_KILLFOCUS = 0x0008; 
      

  5.   

    结贴 ,最后用了这种方法, if (vText == "扬声器")
                            {
                                keybd_event(40, 0, 0, 0);   //发送down 键盘
                                keybd_event(40, 0, 0x2, 0);                            Thread.Sleep(200);                            //因为alt+p 无法执行,所以拿alt+p执行。已ok
                                keybd_event(18, 0, 0, 0);
                                keybd_event(80, 0, 0, 0);
                                Thread.Sleep(100);
                                keybd_event(80, 0, 0x2, 0);
                                keybd_event(18, 0, 0x2, 0);
            
                            }虽然不是很好,起码功能出来了,共享给大家。~~