私に割り当てられた1つのバグを修正するのに問題があります。それは、パラメータに記載されたpdfファイルを印刷することになっていました。 ShellExecute()関数を使用してドキュメントを直接印刷します。 私の質問は、文書ファイルと見なされるPDFファイルですか? ShellExecute()は2 w/cを返しています。無効なパスまたはファイル名を意味することがわかりました。なぜそれが2を返したのか疑問に思っています。私はまた、 "オープン"アクションを試みますが、まだ何もしません。 本当にあなたの助けに感謝します。shell32.dll; ShellExecute()がPowerbuilderで実行されていない11.5
1
A
答えて
1
Unicodeバージョン(ShellExecuteW)とないANSIバージョン(ShellExecuteA)を使用するようにしてください:あなたはこれらのために処理後のShellExecuteのためのあなたのリターンコードは、あるかを判断することができるはずです。ここ
FUNCTION long ShellExecute (uint ihwnd,string lpszOp,string
lpszFile,string lpszParams, string lpszDir,int wShowCmd)
LIBRARY "Shell32.dll" ALIAS FOR "ShellExecuteW"
+0
ありがとう、これは動作します! – icing1018
0
を何らかの問題の原因となります。これはおそらく過剰ですが、あなたが捕まえたいものを決めることができます。
私はPBプロジェクトで同様の問題を扱っています。シェル経由でPDFを実行すると、WindowsエクスプローラでPDFファイルをダブルクリックするのと同じことが実行されます。 PDF用にファイルの関連付けが設定されている場合、デフォルトのプログラムを使用してPDFが開きます。 .docファイルでshell executeを実行すると、ほとんどの場合、ファイルはWordで開かれます。関連がない場合、例外31、ファイルの関連付けはありません。
WHEN 0 THEN txt = "The operating system is out of memory or resources.".
WHEN 2 THEN txt = "The specified file was not found".
WHEN 3 THEN txt = "The specified path was not found.".
WHEN 5 THEN txt = "Windows 95 only: The operating system denied "
+ "access to the specified file".
WHEN 8 THEN txt = "Windows 95 only: There was not enough memory to "
+ "complete the operation.".
WHEN 10 THEN txt = "Wrong Windows version".
WHEN 11 THEN txt = "The .EXE file is invalid (non-Win32 .EXE or "
+ "error in .EXE image).".
WHEN 12 THEN txt = "Application was designed for a different operating system".
WHEN 13 THEN txt = "Application was designed for MS-DOS 4.0".
WHEN 15 THEN txt = "Attempt to load a real-mode program".
WHEN 16 THEN txt = "Attempt to load a second instance of "
+ "an application with non-readonly data segments".
WHEN 19 THEN txt = "Attempt to load a compressed application file".
WHEN 20 THEN txt = "Dynamic-link library (DLL) file failure".
WHEN 26 THEN txt = "A sharing violation occurred.".
WHEN 27 THEN txt = "The filename association is incomplete or invalid.".
WHEN 28 THEN txt = "The DDE transaction could not be completed "
+ "because the request timed out.".
WHEN 29 THEN txt = "The DDE transaction failed.".
WHEN 30 THEN txt = "The DDE transaction could not be completed because "
+ "other DDE transactions were being processed.".
WHEN 31 THEN txt = "There is no application associated with "
+ "the given filename extension.".
WHEN 32 THEN txt = "Windows 95 only: The specified dynamic-link "
+ "library was not found.".
OTHERWISE txt = "undocumented".
関連する問題
- 1. Powerbuilder 11.5 - データベースインターフェイスをインストールできない
- 2. PowerBuilder 11.5とバージョン管理
- 3. DeleteFile(kernel32.dll)とDeleteItem(shell32.dll)
- 4. PowerBuilder 11.5データウィンドウラベル - 位置からの印刷
- 5. 計算された列が含まれている場合にDataWindow Update()メソッドを呼び出す - PowerBuilder 11.5
- 6. P/Invoke for shell32.dllのSHMultiFileProperties
- 7. FindWindowExが実行されていない
- 8. VBA - Shell32.dllを使用する代わりに
- 9. DLL-Call from PowerBuilder
- 10. Shell32.dllを参照していますか?
- 11. ShellExecuteが実行されるのを待つ方法は?
- 12. powerbuilderメモリが解放されていない
- 13. PowerBuilder 12:CopyRTFですべてのテキストがコピーされない
- 14. dllがロードされていない - FileLoadException
- 15. は、なぜ我々は実行のShellExecute
- 16. メッセージダイアログが実行されていない
- 17. imap_closeが実行されていない
- 18. キーリストが実行されていない
- 19. フレームアニメーションが実行されていない
- 20. スマートパケットリスナーが実行されていない
- 21. Pythonが実行されていない
- 22. WAMP:Apacheが実行されていない
- 23. Shell32.dll .NETインターフェイスはOSによって異なる
- 24. shellexecuteコマンドで.regファイルを実行すると確認メッセージが表示されないようにするには
- 25. DLLが使用されていないときに依存DLLなしで実行するにはどうすればいいですか?
- 26. Windows 10でApache(xampp)が実行されない - W3SVCが実行されていない
- 27. C++ DLL Windows 7でビルドされているときにWindows XP上で実行されない
- 28. PowerBuilderデータウィンドウで結果が返されない
- 29. どの言語でもWin32 ShellExecuteを呼び出すと、ShellExecuteが実行されるまでプログラムの実行を停止できますか?
- 30. スタートアップスクリプトでDockerを実行していて、コンポーザーが実行されない
本当にあなたが探しているファイルは本当ですか? PBのFileOpenを使用してPDFを開き、何が起こるかを見てください。また、PDFファイル用のハンドラ(通常はAcrobat Reader)を用意してください。最後に、コードを投稿したいと思うかもしれません。問題を簡単に解決できるようにしました。 – eran