![]() |
Re: programmstart überwachen
Das wundert mich ein wenig.
Zitat:
|
Re: programmstart überwachen
ka aber jetzt gehts
|
Re: programmstart überwachen
Zitat:
|
Re: programmstart überwachen
So hab ich das auch verstanden. Wieso musste er also die Abfrage ändern? 33 hieße doch: Programm gestartet, alles OK. Vielleicht zeigt uns der TE mal seinen aktuellen Code, da ist bestimmt ein Fehler im Detail ;)
|
Re: programmstart überwachen
Zitat:
Delphi-Quellcode:
aber ich vermute jetzt einfach mal sowas wie ;)
if ShellExecute(33) > 32 then {ok}
Delphi-Quellcode:
oder ähnlich, was zwar bei Erfolg geht, aber im Fehlerfall auch einen Erfolg meldet
if ShellExecute(33) < 34 then {ok}
|
Re: programmstart überwachen
In #8 hatte ich doch einen Ansatz gepostet, evtl. hat er da etwas "verschlimmbessert" :D
P.S.: Was ist plötzlich mit diesem Thread los, der ist zumindest bei mir plötzlich auf die Schmalspur geraten. :cyclops: |
Re: programmstart überwachen
Zwar glaub ich nicht das ihr den wikrlich sehen wollt weil das iste ine ieziges Cahos aber bitte
Delphi-Quellcode:
Und sag jetzt bloß nix wegen den If then else schleifen mir is das mit case einfach nicht mehr eingefallen wie das zu machen ist. Achja und es funktioniert auch im Fehlerfall (d.h. Er bringt ne Fehlermeldung)
unit Starter;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ImgList, ExtCtrls, ComCtrls, StdCtrls, ShellAPI, jpeg, IniFiles; type THaupt = class(TForm) Image1: TImage; rbgerman: TRadioButton; Image3: TImage; rbenglish: TRadioButton; Image4: TImage; rbspanish: TRadioButton; Image5: TImage; rbjapanese: TRadioButton; Image6: TImage; rbrussian: TRadioButton; bttclose: TButton; bttcontinue: TButton; Image2: TImage; procedure Image2DblClick(Sender: TObject); procedure rbrussianClick(Sender: TObject); procedure rbjapaneseClick(Sender: TObject); procedure rbspanishClick(Sender: TObject); procedure rbenglishClick(Sender: TObject); procedure rbgermanClick(Sender: TObject); procedure bttcloseClick(Sender: TObject); procedure bttcontinueClick(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Haupt: THaupt; pfads, pfadj, pfadg, pfade, pfadr: String; implementation uses PassWord; {$R *.dfm} procedure THaupt.bttcloseClick(Sender: TObject); begin application.Terminate; end; procedure THaupt.bttcontinueClick(Sender: TObject); var ini: TIniFile; iSuccess: Integer; begin ini := TIniFile.Create(ExtractFilePath(ParamStr(0))+ 'Einstellungen.ini'); pfads := ExtractFilePath(ParamStr(0)) + ini.ReadString('Pfad','Spanisch','Nichts eingetragen'); pfade := ExtractFilePath(ParamStr(0)) + ini.ReadString('Pfad','Englisch','Nichts eingetragen'); pfadr := ExtractFilePath(ParamStr(0)) + ini.ReadString('Pfad','Russisch','Nichts eingetragen'); pfadg := ExtractFilePath(ParamStr(0)) + ini.ReadString('Pfad','Deutsch','Nichts eingetragen'); pfadj := ExtractFilePath(ParamStr(0)) + ini.ReadString('Pfad','Japanisch','Nichts eingetragen'); ini.free; if rbspanish.Checked = true then begin iSuccess := ShellExecute(Handle, 'open', PChar(pfads), nil, nil, SW_NORMAL); if iSuccess < 34 then MessageBox(Handle,PChar(SysErrorMessage(iSuccess)),'Fehler',MB_OK or MB_ICONERROR) else application.Terminate end else if rbenglish.Checked = true then begin iSuccess := ShellExecute(Handle, 'open', PChar(pfade), nil, nil, SW_NORMAL); if iSuccess < 34 then MessageBox(Handle,PChar(SysErrorMessage(iSuccess)),'Fehler',MB_OK or MB_ICONERROR) else application.Terminate end else if rbgerman.Checked = true then begin iSuccess := ShellExecute(Handle, 'open', PChar(pfadg), nil, nil, SW_NORMAL); if iSuccess < 34 then MessageBox(Handle,PChar(SysErrorMessage(iSuccess)),'Fehler',MB_OK or MB_ICONERROR) else Application.Terminate end else if rbjapanese.Checked = true then begin iSuccess := ShellExecute(Handle, 'open', PChar(pfadj), nil, nil, SW_NORMAL); if iSuccess < 34 then MessageBox(Handle,PChar(SysErrorMessage(iSuccess)),'Fehler',MB_OK or MB_ICONERROR) else application.Terminate end else if rbrussian.Checked = true then begin iSuccess := ShellExecute(Handle, 'open', PChar(pfadr), nil, nil, SW_NORMAL); if iSuccess < 34 then MessageBox(Handle,PChar(SysErrorMessage(iSuccess)),'Fehler',MB_OK or MB_ICONERROR) else application.Terminate end end; procedure THaupt.rbgermanClick(Sender: TObject); begin bttcontinue.Enabled := true; bttcontinue.Caption := 'Weiter'; bttclose.Caption := 'Schließen'; end; procedure THaupt.rbenglishClick(Sender: TObject); begin bttcontinue.Enabled := true; bttcontinue.Caption := 'Continue'; bttclose.Caption := 'Close'; end; procedure THaupt.rbspanishClick(Sender: TObject); begin bttcontinue.Enabled := true; bttcontinue.Caption := 'Ulterior'; bttclose.Caption := 'Concluir'; end; procedure THaupt.rbjapaneseClick(Sender: TObject); begin bttcontinue.Enabled := true; end; procedure THaupt.rbrussianClick(Sender: TObject); begin bttcontinue.Enabled := true; end; procedure THaupt.Image2DblClick(Sender: TObject); begin PasswordDlg.showmodal; end; end. |
Re: programmstart überwachen
Das sieht soweit OK aus, da verwundert es mich schon, dass die 33 nicht funktioniert.
[edit] Wäre hier eine RadioGroup nicht angebrachter als ein Haufen CheckBoxen? Außerdem fände ich es so übersichtlicher:
Delphi-Quellcode:
[/edit]
var ini: TIniFile;
iSuccess: Integer; sPfad: string; begin sPfad := ''; ini := TIniFile.Create(ExtractFilePath(ParamStr(0))+ 'Einstellungen.ini'); if rbspanish.Checked then sPfad := ini.ReadString('Pfad','Spanisch','Nichts eingetragen') else if rbenglish.Checked then sPfad := ini.ReadString('Pfad','Englisch','Nichts eingetragen') else if rbgerman.Checked then sPfad := ini.ReadString('Pfad','Deutsch','Nichts eingetragen') else if rbjapanese.Checked then sPfad := ini.ReadString('Pfad','Japanisch','Nichts eingetragen') else if rbrussian.Checked then sPfad := ini.ReadString('Pfad','Russisch','Nichts eingetragen'); ini.free; if sPfad <> '' then begin iSuccess := ShellExecute(Handle, 'open', PChar(sPfad), nil, nil, SW_NORMAL); if iSuccess < 33 then MessageBox(Handle,PChar(SysErrorMessage(iSuccess)),'Fehler',MB_OK or MB_ICONERROR) else application.Terminate end; end; [edit2] Was soll eigentlich passieren, wenn Du "Nichts eingetragen" erhältst? [/edit2] |
Re: programmstart überwachen
[edit2] Was soll eigentlich passieren, wenn Du "Nichts eingetragen" erhältst? [/edit2][/quote]
?? was meinst du damit ? |
Re: programmstart überwachen
Angenommen, die CheckBox rbSpanish ist aktiv, in der Ini gibt es aber keinen Eintrag dazu. Dann gibt das ReadString "Nichts eingetragen" zurück ;)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:58 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz