これはhhc.exeに全く無責任です。トリックは、実行後に%ERRORLEVEL%を見ることです。成功しても "1"を返します。これは、hhc.exeの実行が他のものから分離されている場合、それが偽のものであることをユーザに警告するカスタムコマンドで使用できます。 HHC.exeはHHA.dllを使用しています。 HHA.dllについての情報は公開されていません。マイクロソフトは、非公開契約(NDA)の下で承認されたヘルプISVにHHAインターフェイス情報を付与します。この周りを移動し、バッチファイルでif not %errorlevel% 1 exit /B 1
を追加する必要があります続行するに
D:\_working>"C:\Program Files (x86)\HTML Help Workshop\hhc" foobar.hhp
Microsoft HTML Help Compiler 4.74.8702
Compiling d:\_working\foobar.chm
...
Compile time: 0 minutes, 1 second
22 Topics
87 Local links
2 Internet links
0 Graphics
Created d:\_working\foobar.chm, 305,338 bytes
Compression decreased file by 53,639 bytes.
D:\_working>echo %errorlevel%
1
。
@echo off
REM -----------------------------------------
REM batch file is located in D:\_batch
REM HH project file is located in D:\_working
REM -----------------------------------------
cd ..\_working
echo '//--- HH Compiler start --------------------------------------
"C:\Program Files (x86)\HTML Help Workshop\hhc" foobar.hhp
echo '//--- HH Compiler end --------------------------------------
echo '//--- errorlevel -------------------------------------------
echo %errorlevel%
echo '//------------------------------------------------------------
if not %errorlevel% 1 exit /B 1
とPythonスクリプトこのバッチを呼び出す:
print ("*******************************")
print ("We compile a CHM help file ...")
print ("*******************************")
# First import the 'ctypes' module. ctypes module provides C compatible data types and allows calling functions in DLLs or shared libraries.
import ctypes # An included library with Python install.
# ctypes.windll.user32.MessageBoxW(0, "Open CHM", "Your title", 1) # OK only
messageBox = ctypes.windll.user32.MessageBoxA
# documentation: https://msdn.microsoft.com/en-us/library/windows/desktop/ms645505(v=vs.85).aspx
returnValue = messageBox(None,"Compile Help Module (CHM) now?","CHM and Python",1) # 1=OK Cancel, 2=Cancel, Retry, Ignore
if returnValue == 1:
print("Pressed OK")
# How to compile a chm file in Python?
# ---------------------------------
import os
os.system("D:/_batch/run-hhc.bat")
elif returnValue == 2:
print("user pressed cancel button!")
あなたはPythonスクリプトからのCHMを呼び出すに興味があるかもしれない:
# How to open a chm file in Python?
# ---------------------------------
# os.system("hh.exe D:/UserData-QGIS-Python/Projekte/ConnectChm/CHM-example.chm")
import os
os.system("hh.exe D:/UserData-QGIS-Python/Projekte/ConnectChm/CHM-example.chm::/garden/garden.htm")
は 'hhc'ですバッチファイル?もしそうならバッチファイルから 'call'を実行する必要があります。とにかく 'hhc'と' * .hpp'ファイルへのフルパスを指定してください... – aschipfl
hhcは実行可能ファイルです。私は両方の完全なパスと相対パスの両方を試しましたが、結果は同じです! – Lukas
孤立した 'start'コンソールでは、手動で開く通常のコンソールとは違うものを見つけようとします。たとえば、環境を表示して出力を比較するために' set'を実行するなどして、それぞれをファイルにリダイレクトして比較することができます'comp'と一緒に)。 – wOxxOm