問題タブ [lnk]
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.
java - JavaのWindowsショートカット(.lnk)パーサー?
現在、Java で Windows ショートカットを解決するためにWin32ShellFolderManager2
とを使用しています。ShellFolder.getLinkLocation
残念ながら、Java プログラムが Vista でサービスとして実行されている場合getLinkLocation
、これは機能しません。具体的には、「シェル フォルダー ID リストを取得できませんでした」という例外が発生します。
Web を検索すると、このエラー メッセージについての言及が見つかりますが、常にJFileChooser
. を使用していません。ファイルを宛先JFileChooser
に解決する必要があるだけです。.lnk
.lnk
私が使用できる Java で書かれたファイル用のサードパーティのパーサーを知っている人はいますか?
それ以来、.lnk 形式の非公式ドキュメントをここで見つけましたが、形式がかなり怖いので、誰かが以前にやったことがある場合は、作業を行う必要はありません。
windows - 自動スクリプトによる Windows lnk ファイルの再フォーマット
問題: C ドライブに J: ドライブを指す多数の .lnk ファイルがありますが、J: ドライブがなくなり、P: ドライブに置き換わっています。とにかく.lnkファイルを動作させるためにさまざまなトリックが行われましたが、面倒になりつつあり、物事を修正する時が来ました.
Ruby、Python、WSH.JScript、または Perl を使用して、.lnk ファイルのディレクトリ ツリー全体を繰り返し処理し、j:/* ではなく p:/* を指すように変更できますか? あなたならどうしますか?
注:これは私にとって完全に未知というわけではありませんが、私がこれまでに見つけた方法で .lnk ファイルを管理するための API は、これを行う最もよく知られている方法としては面倒すぎるように思われるため、とにかく質問します。これは、絶望的な「もっと良い方法があるはずだ」タイプの質問の 1 つです。
windows - WOW64からのシェルリンク(LNK)の起動
32ビットアプリケーションは、ShellExecuteを介してWindows LNKファイル(シェルリンク)を起動します。64ビットバイナリ([スタート]メニューの[Internet Explorer(64ビット)]ショートカットなど)へのリンクを「起動」しようとすると、常に32ビットバイナリが起動することになります。内部的に、ShellExecuteはリンクターゲットを誤って解決します。LNK内にFOLDERID_ProgramFilesを保持する隠しフィールドがあります。64ビットアプリはこれを64ビットプログラムファイルディレクトリに解決しますが、32ビットアプリは解決しません。
Wow64DisableWow64FsRedirectionは、ShellExecuteのこの動作を変更しません。
64ビットの「トランポリン」プロセス(プラグインアーキテクチャの仕組みによりオプションではありません)を実行する以外に、32ビットアプリが64ビットアプリとまったく同じようにシェルリンクを起動する方法はありますか?
python - Pythonで.lnkファイルのターゲットを読み取りますか?
.lnk
Pythonからショートカット()ファイルのターゲットファイル/ディレクトリを読み取ろうとしています。頭痛のない方法はありますか?スペックは私の頭をはるかに超えています。WindowsのみのAPIを使用してもかまいません。
私の最終的な目標は、"(My) Videos"
WindowsXPとVistaでフォルダを見つけることです。XPでは、デフォルトで%HOMEPATH%\My Documents\My Videos
、にあり、Vistaではにあり%HOMEPATH%\Videos
ます。ただし、ユーザーはこのフォルダーを再配置できます。この場合、フォルダは存在しなくなり、新しいフォルダを指すものに%HOMEPATH%\Videos
置き換えられます。そして、私はその絶対的な場所が欲しいです。%HOMEPATH%\Videos.lnk
"My Videos"
windows - Expression Web: ショートカットが exe ファイルを指していませんが、それを使用して編集したい
問題: Web ページを編集する必要があるユーザーをサポートする必要があります。これらの Web ページの一部は、テキストエリア コントロールとしてのみ存在します。幸いなことに、ユーザーがデフォルトのテキスト エディターでテキストエリアを開くことができる Firefox プラグインがあります。残念ながら、このプラグインでは、起動するテキスト エディターの EXE ファイルを指定する必要があります。
これは妥当な要件ですが、@#$%^ Microsoft Expression Web は、ショートカット .lnk ファイルが実際の EXE ファイルを指していないように見えるアプリケーションの 1 つです。EXE ファイルがどこかにある場合は、非表示になっています。
質問: 実際の EXE ファイルを見つけて、ユーザーが Microsoft Expression Web を好みのエディターとして構成できるようにするにはどうすればよいですか?
更新:スクリプトまたはバッチファイルを介してこれを自動化する方法を探していたことを強調する必要がありました(したがって、誰かの「プログラミングに関係のない」スパイディセンスがチクチクした場合に備えて、SOの投稿です)。
winapi - c:\windows\installer で終わるリンクで機能する .lnk ターゲットを解決する方法はありますか?
lnk を解決する通常の方法には、そのように WShell.WshShortcut または IShellLink を使用することが含まれます。
ただし、その方法で解決できないリンクがあります。たとえば、解決策はc:\windows\installer\{some-guid}\python_icon.exeになります。ほとんどの Office プログラムにもこの問題があります。
CodeProject には、lnk 形式http://www.codeproject.com/KB/shell/ReadLnkFile.aspxをリバース エンジニアリングすることによって行われる別のソリューションがありますが、これらのケースでは機能しません。
他の方法はありますか?
この c:\Windows\Installer フォルダは何ですか? そして、そこに入れられているこのsomething_icon.exeは何ですか?
windows-xp - バッチ スクリプトにショートカットを渡す
私のバット スクリプトは、ファイル パスをパラメーターとして受け入れます。これにより、エクスプローラーからファイルをドラッグ アンド ドロップできます。残念ながら、ショートカットをドロップすると、.lnk ファイルが参照するファイルではなく、.lnk ファイル自体のファイルパスを取得するだけです。基になるファイルパスを導出する方法はありますか?
追加のソフトウェアをインストールまたは構成せずに、bat/cmd で直接使用できる Windows XP のネイティブ機能を探しています。
java - cygwin によって作成された Windows ショートカット (.lnk) の Java パーサー
javaでのlnkファイルの解析に関する以前の議論に続いて(Javaの Windowsショートカット(.lnk)パーサー? )。
提案されたすべてのソリューションをテストしました。しかし、Linux ボックスで作成されたシンボリック リンクを含むアーカイブを untar すると、cygwin で作成された lnk ファイルを操作する人は誰もいません。java.lang.ArrayIndexOutOfBoundsException
ingetNullDelimitedString()
メソッドを取得しました。
cygwin は、特定のヘッダーを持つ特別な lnk ファイルを作成するようです。
この種のシンボリックリンクでJava lnkパーサーを動作させる方法を知っている人はいますか?
c# - .LNK ファイル ショートカット キーは、C# が最大化され、ボーダー プログラムが実行されていないときに押すと機能しなくなりました。
この問題が原因と思われる一般的な動作については、以下もお読みください。
.NET 2.0 と WinForms と Visual C# 2008 Express を使用して、C# プログラムを作成しています。Windows 7 を使用していますが、問題は Windows XP でも発生します。
重要: メイン フォームの FormBorderStyle プロパティは None に設定され、WindowState は Maximized に設定されます。
デスクトップ上のプログラムへのショートカット ファイル (.LNK) を作成し、[プロパティ] ダイアログ ボックスでショートカット キーを定義しました (たとえば Ctrl+F11 としますが、試した他のショートカット キーでも問題は同じです)。Windows で Ctrl+F11 を押すと、プログラムが正常に起動します。
ただし、プログラムの実行中に Ctrl+F11 を押しても何も起こりません (メイン フォームの KeyPreview プロパティを true に設定して KeyDown イベント ハンドラーを割り当てても、キー ダウン イベントは生成されません)。プログラムで、もう一度 Ctrl+F11 を押してみると、Windows でショートカットが機能しなくなりました。私はそれを変更するか、再び機能するまでしばらく待つ必要があります (ただし、どのように機能し始めるかはあまり明確ではありません)。
プログラムの実行中に Ctrl+F11 を押さないと、プログラムを閉じた後、次にショートカット キーを使用するときに問題なく動作します。
この問題により、.LNK ショートカット キー機能を使用して、フォームの境界線がなく最大化されている C#、WinForms、.NET 2.0 プログラムのショートカット キーを定義できません。
この問題を解決するために C# WinForms プログラムでできることはありますか?
ありがとうございました
language-agnostic - lnkファイルを読み取るための一般的なアプローチ
いくつかのフレームワークと言語には、ターゲットやプロパティなどに到達するために、lnkファイルパーサー(C#、Java、Python、確かに無数の他のもの)があるようです。上記の機能を持たない別の言語でlnkを解析したい。このためのWindowsAPIはありますか?