Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Error handling

Frage Entwicklung KiXtart

Mitglied: Demian

Demian (Level 1) - Jetzt verbinden

24.07.2008, aktualisiert 12.09.2008, 4857 Aufrufe, 2 Kommentare

Moin,moin alle zusammen,

ich fange gerade an, mich mit KixScript auseinander zu setzen und habe schon das erste Problem, bei dem ich weder in der Forumsuche noch mit Google wirklich weiterkam.

Wie setzt man @16034 zurück? Wenn ich zum Beispiel folgenden Code habe:

cd C:\Temp

If @16034 = 0
del C:\Temp\
else
Messagebox(@error,"Test")
EndIf

Messagebox(@error,"Test")


wird bei der 1. msgbox Fehler Nr. 2 angezeigt (Pfad nicht vorhanden). Bei der 2. wird jedoch Fehler Nr. 1 angezeigt??? Also wird @16034 ja nicht zurückgesetzt, oder? Das hätte für spätere @16034 Abfragen ja dramatische Folgen. Ich habe im Netz einige Scripte gesehen, aber in keinem wird @16034 zurückgesetzt.

Gruß
Demian
Mitglied: 60730
24.07.2008 um 18:07 Uhr
Servus,

mit @16034 arbeite ich nicht gerne.

01.
If Exist ("C:\temp\") 
02.
              del "C:\temp\*.*" 
03.
EndIf 
04.
Messagebox(@error,"Test")
Damit kannst du @16034 "elegant" Umgehen.
"dein Problem" ist die Abfrage ansich - @16034 ist "aktuell und muß nicht "zurückgesetzt werden - kann aber:

Du fragst einfach etwas ab, das garantiert 0 zurückliefert.

01.
if existkey( "HKEY_CURRENT_USER\" ) <> "0" 
02.
endif 
03.
Messagebox(@error,"HKCU")
01.
Messagebox(@error,"Tempo4") 
02.
	if existkey( "HKEY_CURRENT_gibtsnicht\" ) = "1" 
03.
Messagebox(@error,"HKCX") 
04.
endif
Gruß
Bitte warten ..
Mitglied: JJKix
12.09.2008 um 20:39 Uhr
Hallo,
mit @16034 zu arbeiten macht schon Sinn und dieses Makro kann nur abgefragt und nicht zurückgesetzt werden.

hier meine Lösung für das obere Beispiel:

Dim $Error
CD "C:\Temp"
$Error = @16034
If $Error = 0
Del "C:\Temp\*.*"
Else
; Da MessageBox eine Funktion ist, gibt diese auch einen wert zurück.
; Deshalb immer mit Zuweisung arbeiten
$ = MessageBox($Error,"Test")
EndIf

If Messagebox($Error,"Test") EndIf

Sicherlich macht es Sinn, sich nach der Existenz des Verzeichnisses vorher zur erkundigen:

If Exist("C:\Temp")
Del "C:\Temp\*.*"
$Error = @16034
$Descr= @SError
If $Error = 0
If MessageBox("erfolgreich", "Löschen") EndIf
Else
If MessageBox("nicht erfolgreich" + @CrLf + @CrLf + "Fehler " + $Error + " " + @SError, "Löschen") EndIf
EndIf
Else
; Verzeichnis existiert nicht
If MessageBox("Verzeichnis 'C:\Temp' existiert nicht", "Löschen") EndIf
EndIf
Bitte warten ..
Ähnliche Inhalte
Exchange Server
gelöst Test-ActiveSyncConnectivity Error nach neuem Zertifikat (22)

Frage von Driphex zum Thema Exchange Server ...

Windows Systemdateien
gelöst net 4.6.2 Error bei Installation (2)

Frage von leofabian zum Thema Windows Systemdateien ...

Datenbanken
gelöst Fehler 1064 you have an error in SQL syntax datenbankabfrage, Search and Replace (1)

Frage von Blackshirt zum Thema Datenbanken ...

Windows 8
gelöst Active Directory Default User.v2 Profile - Windows 8.1 Apps Error (4)

Frage von adm2015 zum Thema Windows 8 ...

Heiß diskutierte Inhalte
Exchange Server
gelöst Email in Exchange an 2ten Empfänger senden (18)

Frage von MultiStorm zum Thema Exchange Server ...

Weiterbildung
Gehaltsvorstellungen (17)

Frage von SYS64738 zum Thema Weiterbildung ...

Verschlüsselung & Zertifikate
gelöst Festplattenverschlüsselung im Ausland (13)

Frage von Nicolaas zum Thema Verschlüsselung & Zertifikate ...

Windows Server
gelöst Microsoft-Lizenz CALs und passendes Server-Betriebssystem (13)

Frage von planetIT2016 zum Thema Windows Server ...