背景
我编写了一个小型的C#/ .NET 4.0应用程序,它将安装在Program Files中的游戏中的各种设置同步到不同机器上的同一游戏的其他副本(想想Chrome书签同步,但对于这个游戏).同步本身是一个相对简单的事情,处理存储在游戏的Program Files文件夹中的文件.
在我的机器上,这可以正常工作,而无需通过UAC提升我的应用程序.Windows 7使游戏使用程序文件虚拟化,我的应用程序正常工作.
然而,在很多测试人员的机器上,我得到的报告是应用程序要么无法使用文件,要么在案例中甚至看不到游戏的文件夹!让用户右键单击并"以管理员身份运行"可以解决每种情况下的问题.
所以,我们只是将应用程序的清单设置为需要管理员权限,对吧?当用户手动调用应用程序或同步过程时,这很好(尽管不是很理想),因为他们将与应用程序交互并准备接受UAC请求.
但是,我的应用程序的一个功能是"自动同步"选项,允许用户"设置并忘记"应用程序.使用此设置,应用程序将自身置于HKCU\Software\Microsoft\Windows\CurrentVersion\Run的注册表中,以便在启动时运行并位于系统托盘中,根据需要同步后台中的设置.
显然,我需要在这里变得更聪明.一旦用户登录到他们的帐户或之后的随机间隔提出UAC提示不是前进的方式.
所以,我的问题!
在需要管理员权限的启动时需要运行应用程序的情况下,最好的方法是什么?有没有办法让用户授权安装,导致系统使用正确的权限自动运行应用程序,而无需在启动/登录时提示?
更新只是为了清楚,这必须在代码中实现.
我在将混音器单元插入到AUGraph
Mac OS和iOS上都可以正常工作时遇到问题.
我的工作图看起来像这样:
(My Audio render callback) <- [Format converter] <- [DefaultOutput]
Run Code Online (Sandbox Code Playgroud)
另外,我能够成功插入这样的EQ单元:
(My Audio render callback) <- [Format converter] <- [GraphicEQ] <- [DefaultOutput]
Run Code Online (Sandbox Code Playgroud)
我的目标是插入一个混音器单元,但没有EQ,所以我可以独立于iOS上的系统音量控制我的音量.然而,当我设置的图形似乎看起来不错,但我得到的只是沉默.
这是图表的样子:
(My Audio render callback) <- [Format converter] <- [MultiChannelMixer] <- [DefaultOutput]
Run Code Online (Sandbox Code Playgroud)
......以及CAShow的输出:
AudioUnitGraph 0x397000:
Member Nodes:
node 1: 'auou' 'def ' 'appl', instance 0x8039704d O I
node 2: 'aumx' 'mcmx' 'appl', instance 0x8039704e O I
node 3: 'aufc' 'conv' 'appl', instance 0x8039704f O I
Connections:
node 3 bus 0 => …
Run Code Online (Sandbox Code Playgroud) 我正在编写一些启发式地找出服务在网络接口上的可能性的代码。我要搜索的硬件没有实现SSDP或mDNS,因此我必须手动寻找它。
该设备通过WiFi连接到网络,因此很可能会通过WiFi接口找到它。但是,Mac可以通过以太网连接到WiFi桥接器,因此通过它可以很好地解决。
为了避免不必要的请求并成为一个好的网络公民,我想知道首先尝试使用哪种接口。
我可以毫无问题地获得计算机上的接口列表,但这无济于事:en0
iMac上是有线以太网,而Macbook上是WiFi。
如果它也可以在iOS上使用,则值得一提,因为尽管很少使用USB以太网适配器。
cocoa ×2
ios ×2
macos ×2
.net ×1
c# ×1
cocoa-touch ×1
core-audio ×1
networking ×1
uac ×1
windows ×1