爲了將來的參考,這裏的工作解決方案。
問同樣的問題在的Flexera論壇,這裏就是我的了:
了我的頭頂部(而不使用InstallShield得心應手檢查)1) 創建的InstallScript項目,只接受所有的新項目嚮導中的默認值爲 ,除非你想添加本地化或 的東西。 2)您的描述意味着您不需要維護(修復,修改,卸載) 支持。如果正確,請轉至 Project \ Settings,然後在Maintenance選項卡上選擇'no uninstall or maintenance'。 3)您可以將代碼放在OnFirstUIBefore函數的頂部,然後調用Exit,以使其餘 默認代碼永遠不會執行,因爲您沒有安裝任何東西。
作爲InstallShield IDE的一部分,在開始菜單中(對於IS2012 Spring)是一個演示所有內置對話框的工具。您可以查看這些選項並選擇最適合您的情況的對話框。這聽起來像你想:
呼叫AskPath或SdAskDestPath(還有其他幾種可能性)
然後調用AskText並保存該字符串。
如果您需要將佈局或文本更改爲默認對話框,請在對話框視圖中查看 ,並選擇您在 之上選擇的對話框並對其進行編輯。 (如果您決定使用外觀確保你選擇的皮膚 你做任何對話框佈局的變化之前。)
然後做類似的WriteLine 例如http://kb.flexerasoftware.com/doc/Helpnet/installshield14langref/LangrefWriteLine_Example.htm
實際的WriteLine例子功能的功能體的東西原型是針對MSI定製的 行爲,這不是您想要的。忽略函數原型和 僅使用項目中的代碼在您已收集的路徑上創建文件,並編寫您收集的文本行。
然後調用Exit;
(非常感謝用戶phill_mn爲答案)
這裏是爲setup.rul代碼:
#include "ifx.h"
function OnFirstUIBefore()
number nvFileHandle;
string svResult;
string szTargetPath, szFeatures;
BOOL bLicenseAccepted;
begin
AskPath ("Please choose a path where text file will be saved","c:\\",szTargetPath);
MessageBox("File yourtext.txt wiil be created or overwritten at " +szTargetPath, INFORMATION);
AskText ("Please enter some text to save into that file", "Text goes here", svResult);
OpenFileMode (FILE_MODE_APPEND);
if (CreateFile (nvFileHandle, szTargetPath, "yourtext.txt") < 0) then
MessageBox ("Creating failed.", SEVERE);
abort;
else
if (WriteLine(nvFileHandle, svResult) < 0) then
MessageBox ("Writing failed.", SEVERE);
else
MessageBox ("Success.", INFORMATION);
endif;
endif;
CloseFile (nvFileHandle);
Do(EXIT);
return 0;
end;