Есть ли способ программно подключиться к удаленному серверу из Какао? - PullRequest
2 голосов
/ 30 июля 2010

Существует ли вызов API Coca / obj-C для имитации действия «Подключиться к серверу» в Finder?С Automater это возможно, поэтому кажется, что у Finder где-то есть крючок.

Ответы [ 3 ]

3 голосов
/ 02 августа 2010

Самый простой способ - просто запустить код appleScript.Я покажу вам 2 варианта.Первый способ является стандартным способом показать это окно Finder из applecript.

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];
3 голосов
/ 31 октября 2010

Оказывается, есть старая функция Carbon (не может найти эквивалент Какао) с именем FSMountServerVolumeSync, которая делает то, что я искал. Вы можете указать и smb:// URL и учетные данные для входа.

Справочник файлового менеджера

OSStatus FSMountServerVolumeSync (
  CFURLRef url,
  CFURLRef mountDir,
  CFStringRef user,
  CFStringRef password,
  FSVolumeRefNum *mountedVolumeRefNum,
  OptionBits flags
);
1 голос
/ 30 июля 2010

Это может быть не лучший способ, но вы не можете просто использовать mount?

...