有没有办法以编程方式从Cocoa连接到远程服务器?

时间:2010-07-30 17:56:16

标签: objective-c cocoa macos finder

是否有一个Coca / obj-C API调用来模仿Finder中的“连接到服务器”操作?使用Automater是可能的,所以看起来Finder在某个地方有一个钩子。

3 个答案:

答案 0 :(得分:3)

一种简单的方法就是运行一些AppleScript代码。我会告诉你两个选择。第一个是从applescript中显示Finder窗口的标准方法。

NSString* cmd = @"choose URL";

虽然生成的窗口很简陋,但您可以使用此命令实际打开Finder窗口...

NSString* cmd = @"tell application \"Finder\" to activate\ndelay 0.2\ntell application \"System Events\" to keystroke \"k\" using command down";

选择任何一个“cmd”字符串后,您可以使用此...

执行该AppleScript代码
NSAppleScript* theScript = [[NSAppleScript alloc] initWithSource:cmd];
[theScript executeAndReturnError:nil];
[theScript release];

答案 1 :(得分:3)

原来有一个旧的Carbon函数(找不到Cocoa等价物),名为FSMountServerVolumeSync,它正在寻找我想要的东西。您可以提供smb:// URL和登录凭据。

File Manager Reference

OSStatus FSMountServerVolumeSync (
  CFURLRef url,
  CFURLRef mountDir,
  CFStringRef user,
  CFStringRef password,
  FSVolumeRefNum *mountedVolumeRefNum,
  OptionBits flags
);

答案 2 :(得分:1)

这可能不是最佳方式,但您不能只使用mount吗?