2

AutoCAD 図面を開くための代替機能を作成しました。ただし、AutoCAD では、Windows エクスプローラーから実行したときにドキュメントを開く方法を変更するのが非常に困難でした (ファイルを関連付けてファイルをダブルクリックします)。私が見つけた唯一の方法は、「OpenDdeExec」であるレジストリ キーを変更することです。開くファイルへのエスケープされていないパスを与える引数 (%1) が提供されています。

特殊文字として解析される前に、パスのエスケープを無視するか、バックスラッシュを二重のバックスラッシュに置き換える必要があります。C# では、次のようなことができstring s = @"I\Like random\backslashes";、バックスラッシュは実際のバックスラッシュ文字と見なされます。Lispでは、私が見つけた唯一の同等性quoteは、奇妙な動作をしていることです(通常の使用は、私が達成しようとしているものとはまったく異なるためです)。

のようなものを書くと(quote (I\Like random\backslashes))、結果は(I\\Like random\\backslashes)私が必要としているものがほとんどです。ただし、括弧を取り除く必要があります。これを達成する方法はありますか?

注:これを行う(quote I\Like random\backslashes)と、スペースが原因で壊れます。ただし、 で動作し(quote I\Like\backslashes)ます。これはI\\Like\\backslashes、私が望むように出力されます。

これは、説明されている問題のある現在の OpenDdeExec です。

(OPENFROMSHELL (QUOTE (%1)))
4

1 に答える 1

0

残念ながら、これは AutoCAD の限定された LISP では不可能です。

于 2012-10-15T13:45:36.840 に答える