問題タブ [nstask]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
1936 参照

iphone - ジェイルブレイクされたiOSでNSTaskwaitUntilExitハンギングアプリ

そのため、NSTaskを使用して、何かのリストを生成するスクリプトをtxtに生成し、そこから読み取ります。しかし、現在のコード(下記)を使用すると、NSTaskが終了する前にアラートがポップアップするため、アラートが空白になります。試しましwaitUntilExitたが、このアクションを呼び出すボタンがフリーズしますが、UIがロックされません。

アラートを呼び出す前にNSTaskをどのように終了させるかについて何か考えはありますか?ありがとう。

編集:NSNotificationを使用したコード:

0 投票する
1 に答える
3772 参照

objective-c - com.apple.systemuiserver 設定を SystemUIServer アプリケーションに再ロードするにはどうすればよいですか?

私の Mac OSX アプリケーションでは、ボタンがクリックされたときに画面の右上隅にあるシステム クロックを削除する機能があります。表示されるシステム メニュー (システム クロックを含む) を制御する設定は、~/Library/Preferences/com.apple.systemuiserver.plist に保存されます。そのファイルの関連する設定を更新して、システム クロックを削除することができました。ただし、SystemUIServer アプリケーションを再起動して、新しい設定を再読み込みし、時計を削除できるようにする必要があります。SystemUIServer を再起動するために使用したコードを次に示します。

SystemUIServer が強制終了されると、OSX は自動的に再起動します。上記のコードは機能しますが、システム クロックの削除は私が望むほどクリーンではありません。システム バー全体が 1 秒間削除されます。設定を SystemUIServer にリロードするより良い方法を考えられる人はいますか? 理想的には、システム クロックを削除して、システム環境設定アプリケーションの日付と時刻の設定にある時計表示機能と同じくらいきれいにしたいと考えています。

0 投票する
3 に答える
1156 参照

objective-c - NSタスクの質問

私は自分のNSTaskためにファイルを解凍しようとしています。パスにスペースが含まれていない場合、これは正常に機能しますが、スペースがある場合、ファイルが見つかりません。"システムによって割り当てられた一時フォルダーに zip ファイルを保存しているため、標識をハードコーディングできません。

これを達成する方法を知っている人はいますか?

これが私のコードです:

0 投票する
2 に答える
2727 参照

cocoa - ファイルを含む第 1 レベルのフォルダーを含む NSTask を使用して zip アーカイブを作成します。

私の方法は、以前に作成して入力した一時ディレクトリからファイルを圧縮するために機能します。

しかし、解凍したときに欲しいのは、ファイルを含むフォルダーです。tempDir にフォルダーを作成してそこにファイルを書き込むことはできますが、作成されたアーカイブの最上位にフォルダーを配置するための zip 引数は何ですか?

でこれを見ませんでした man zip

0 投票する
1 に答える
447 参照

iphone - ジェイルブレイクされた iOS: NSTaskDidTerminateNotification がセレクターの起動に失敗する

私はここと同じ問題を抱えているようです:ジェイルブレイクされたiOSでNSTask waitUntilExitがアプリをハングアップ

NSNotification (上記のように) を介して取得したものを次に示しますが、taskEnded:アラートは表示されません。デバッガーで確認できるように、スクリプトは確実に実行されます。

0 投票する
3 に答える
4325 参照

cocoa - ルートエラーとしてのAuthorizationExecuteWithPrivileges()

私はココアの初心者です...

CocoaアプリでApacheやその他のプロセスを開始したいだけです。

これが私のコードです:

theResult: この操作にはrootが必要です'whoami'
を実行すると、 ' root 'になりますが、 getuid()を実行すると、' 501'になります..。

setuid(0);を使おうとしています。しかし、それは設定されていません!!
手伝って頂けますか?
ありがとう

0 投票する
1 に答える
1911 参照

objective-c - NSTask、コマンド ライン ツール、ルート

私は dd を使用する必要があるアプリに取り組んでいます (アプリ自体からパラメーターを収集し、いくつかのチェックを行ってから dd を起動する、アプリ バンドル内のシェル スクリプトを使用してこれを行います)。

この操作を行うには、ルートで dd を呼び出す必要があります。StackOverflow でいくつかのソリューションを既に見ました。実装するのが最も簡単なのは、これhttp://www.sveinbjorn.org/STPrivilegedTaskのように思えました

問題は、私の NSTask がいくつかの複雑な読み取り/書き込み操作を行い (STPrivilegedTask には存在しない)、すべての特権を必要としないことです。

そこで、アプリから正しいパラメーターを使用してスクリプトを呼び出す小さなヘルパー ツールを c で作成しました。私が考えた解決策は、STPrivilegedTask を使用して、小さなヘルパー ツールをフライしたら SUID にすることです。これにより、root でそれ (およびスクリプトと dd) を起動し、起動が成功した直後に、ヘルパー ツールを非 SUID に戻します (エラーが発生した場合、アプリの終了時、アプリの開始時など、より安全にするために同じことを行います)。

完全ではないかもしれませんが、すべてがバンドル内にあり、起動のためだけに SUID のヘルパー ツールを使用することは十分に安全だと思います。

何かご意見は?

ありがとう!

0 投票する
1 に答える
813 参照

cocoa - root として NSTask を使用 - エラー:「起動パスにアクセスできません」

何らかの理由で、NSTask を介してタスクを実行しようとすると、「起動パスにアクセスできません」というエラー メッセージが表示されます。

私のアプリはルートとして実行されています。そして、ターミナルでまったく同じコマンドを入力すると、正常に動作するので、少し混乱します。

私のアプリケーションは、relaunch というツールを にコピーしますNSTemporaryDirectory()。ここから実行しようとすると、「起動パスにアクセスできません」と表示されます。奇妙なことに、ツールを手動でデスクトップにコピーし、NSTask でパスをハードコードすると、適切に実行されます。そして、私はその理由がわかりません。

なぜこれが起こっているのか知っている人はいますか?

注: 参考までに、Sparkle を github から動作させようとしています。

コードは次のとおりです。

どこ

0 投票する
1 に答える
200 参照

cocoa - gdb の NSTask を作成する

GDB を使用してプログラムにアタッチする NSTask を作成しようとしていますが、タスクの起動後にプログラムがフリーズします。これは可能ですか?私が使用しているコードは次のとおりです。

「No such file or directory」エラーが発生しないため、「TestApp.app」が正しい場所にあると確信しています。コンソールには「起動済み」のみが表示されます。そして、回転するビーチボールは、ランを殺すまで1分以上続きます. これを機能させるためのアイデアはありますか?

0 投票する
1 に答える
465 参照

unix - NSTask から "screen" コマンドを実行するには?

Macの仮想 COM ポート (Arduino RFID )を監視したい。端末から "screen /dev/tty.serialnumber" を実行すると、スワイプすると RFID のシリアル番号が出力されます。

NSTask を使用してXcodeから試すとすぐに、次の出力が得られます。

端末に接続する必要があります。

これが私のコードです: