Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Inno setup 从安装程序发送信息-自定义页面字段和日志_Inno Setup - Fatal编程技术网

Inno setup 从安装程序发送信息-自定义页面字段和日志

Inno setup 从安装程序发送信息-自定义页面字段和日志,inno-setup,Inno Setup,我正在尝试制作一个Inno安装程序,它能够发送一些日志,以及一个bug报告文本,我为其制作了一个自定义页面: 在以下代码中,我尝试导入在中找到的函数,但未成功: var 外页:TInputQueryWizardPage; RichEditViewer:TRichEditViewer; labelchar,max_char:TLabel; 安装程序错误,内容错误:TNewRadioButton; 函数SetFocus(hWnd:hWnd):hWnd;外部的SetFocus@user32.dlls

我正在尝试制作一个Inno安装程序,它能够发送一些日志,以及一个bug报告文本,我为其制作了一个自定义页面:

在以下代码中,我尝试导入在中找到的函数,但未成功:

var
外页:TInputQueryWizardPage;
RichEditViewer:TRichEditViewer;
labelchar,max_char:TLabel;
安装程序错误,内容错误:TNewRadioButton;
函数SetFocus(hWnd:hWnd):hWnd;外部的SetFocus@user32.dllstdcall';
函数GetSystemMetrics(nIndex:Integer):整数;外部的GetSystemMetrics@User32.dllstdcall setuponly';
//功能发送(消息:MailMessage);外部的Send@System.Web.dllstdcall setuponly';
过程isAt(发送方:TObject;变量键:Char);
开始
如果键='@',则开始
键:=#0;
SetFocus(ExtraPage.Edits[4].Handle);
结束;
结束;
仅过程编号(发送方:TObject;变量键:Char);
var-s:字符串;
开始
s:=('1234567890'#8);
如果位置(键,s)=0,则
键:=#0;
结束;
过程偏移量PageItem(页面:TInputQueryWizardPage;索引,偏移量:整数);
开始
//标签
第页。PromptLabels[索引]。立根(10,偏移量,55,30);
//名称字段
编辑[索引].SetBounds(100,偏移量,200,40);
//分辨率场
如果索引=1,则
编辑[索引].SetBounds(100,偏移量,40,40);
Page.Edits[Index]。最大长度:=4
//x场
如果索引=2,则开始
编辑[索引].SetBounds(160,偏移量,40,40);
Page.promptables[Index].SetBounds(145,偏移量+3,10,20);
Page.Edits[Index]。最大长度:=4
结束;
//电子邮件字段
如果索引=3,则开始
编辑[索引].SetBounds(100,偏移量,130,40);
如果不是(Pos('@',Page.Values[Index])=0),则
页面。编辑[索引+1]。选择全部;
结束;
//@场
如果索引=4,则开始
编辑[索引].SetBounds(250,偏移量,70,40);
第页。Promptables[索引]。立根(235,偏移量+3,10,20);
结束;
//描述字段
如果索引=5,则开始
ExtraPage.promptabels[index].SetBounds(10,偏移量+15,80,60);
ExtraPage.Edits[Index].Hide;
RichEditViewer:=TRichEditViewer.Create(外部页面);
滚动条:=ssVertical;
使用RichEditViewer开始
父项:=ExtraPage.Surface;
立根(100,偏移量+25300100);
文本:='有bug吗?写在这里;
最大长度:=400;
结束;
结束;
结束;
程序初始化;
变量
索引:整数;
开始
ExtraPage:=CreateInputQueryPage(wpWelcome,'电子邮件发件人','添加以下信息!','';
ExtraPage.suboptionlabel.Hide;
//指数=0;
索引:=ExtraPage.Add('Name:',False);
值[索引]:=ExpandConstant('{computername}');
OffsetPageItem(外页,索引,10);
//指数=1;
索引:=ExtraPage.Add('Resolution:',False);
OffsetPageItem(外页,索引,40);
值[index]:=IntToStr(GetSystemMetrics(0));
ExtraPage.Edits[index].OnKeyPress:=@NumbersOnly;
//指数=2;
索引:=ExtraPage.Add('x',False);
OffsetPageItem(外页,索引,40);
值[index]:=IntToStr(GetSystemMetrics(1));
ExtraPage.Edits[index].OnKeyPress:=@NumbersOnly;
//指数=3;
索引:=ExtraPage.Add('E-mail:',False);
OffsetPageItem(外页,索引,70);
ExtraPage.Edits[index].OnKeyPress:=@isAt;
//指数=4;
索引:=ExtraPage.Add('@',False);
OffsetPageItem(外页,索引,70);
ExtraPage.Edits[index].OnKeyPress:=@isAt;
//指数=5;
index:=ExtraPage.Add('Short Description:'+#10+'(如何复制?),False);
OffsetPageItem(外页,索引,100);
labelchar:=TLabel.Create(WizardForm);
用labelchar开始
父项:=ExtraPage.Surface;
立根(10200100,30);
标题:='最大'+#10#13+'字符数:';
结束;
max_char:=TLabel.Create(WizardForm);
用max_char开始
父项:=ExtraPage.Surface;
字体.样式:=[fsBold];
立根数(68213100,30);
标题:=IntToStr(400);
结束;
安装程序错误:=TNewRadioButton.Create(向导表单)
有了安装程序,你就可以开始了
父项:=ExtraPage.Surface;
立根(100100,80,20);
标题:=“安装程序错误”
结束;
Content\u bug:=TNewRadioButton.Create(向导表单)
从内容开始
父项:=ExtraPage.Surface;
挫折(190100,80,20);
标题:=“内容错误”
结束;
结束;
函数NextButtonClick(CurPageID:Integer):布尔值;
变量
行:字符串;
//电子邮件:MailMessage;
开始
结果:=真;
如果CurPageID=ExtraPage.ID,则开始
行:=ExtraPage.promptables[0]。标题+ExtraPage.Values[0]+#10;
行:=line+ExtraPage.PromptLabels[1]。标题+ExtraPage.Values[1]+ExtraPage.PromptLabels[2]。标题+ExtraPage.Values[2]+#10;
行:=line+ExtraPage.promptables[3]。标题+ExtraPage.Values[3]+ExtraPage.promptables[4]。标题+ExtraPage.Values[4]+#10;
行:=行+类型:;
如果已检查安装程序错误,则
行:=行+安装程序_bug.Caption+#10;
如果检查了内容,则
行:=行+内容_bug.Caption+#10;
行:=行+外页。提示标记[5]。标题+#10#13;
行:=line+RichEditViewer.Text;
SaveStringToFile(ExpandConstant({src}\test.txt'),第行,false);
//电子邮件:=MailMessage.Create(WizardForm);
//电子邮件发件人=”test@sdsd.com"
//电子邮件收件人=”test@gmail.com"
//E_mail.Subject=“test”;
//SmtpMail.SmtpServer=“MyMailServer”;
//SmtpMail.Send(电子邮件);
结束;
结束;

我遇到了同样的问题这就是我所做的

b邮件:

bmail -s smtp.example.net -t you@example.com -f me@example.net -h ^
  -a "mail subject" -b "message text"
您也可以编写自己的邮件程序来执行

[Run]
begin
// need to email Version
//  blat -to %eMail% -f %eMail% %subj% %server% %debug% %x%
  ExtractTemporaryFile('blat.exe');
  connExe:=ExpandConstant('{tmp}')+'\blat.exe';
  connTxt := ' -to ' + E_mail.From.text + ' -f '+ E_mail.To.Text + E_mail.Subject.Text + 'SmtpMail.SmtpServer.text' + ExpandConstant('{tmp}\log.log');
  Log('The Value is connTxt: ' + connTxt );
  if Exec(connExe, connTxt, '' , SW_HIDE, ewWaitUntilTerminated, ResultCode) then
    begin
     //MsgBox(IntToStr(ResultCode), mbError, mb_Ok);
    connTxt := ' -to ' + E_mail.From.text + ' -f '+ E_mail.To.Text + E_mail.Subject.Text + 'SmtpMail.SmtpServer.text' + ExpandConstant('{tmp}\log.log');
     ExpandConstant('{tmp}\log.log');
     Log('The Value is connTxt: ' + connTxt );
     if Exec(connExe, connTxt, '' , SW_HIDE, ewWaitUntilTerminated, ResultCode) then
      begin
        MsgBox( 'The '+ E_mail.Subject.Text + ' Email has been sent' , mbInformation, mb_Ok);
        result := True;
       end;
    end;
end;
警告更改以解决问题且未按原样完全测试的名称。
@TLama是对的,但为什么不使用该应用程序发送调试消息呢?

我也发现了这一点……仍然没有人回答:(,是我在帖子中做错了什么吗?我是在问一些我不应该问的问题吗?通常现在我至少会得到一些提示……或者“不可能”注释:DYou应该将代码减少到重现问题所需的绝对最小值,并解释您预期会发生什么以及会发生什么