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, 4865 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
Linux
gelöst Error bei brute-force (KaliLinux) (7)

Frage von Yaron8008 zum Thema Linux ...

Windows Systemdateien
gelöst JDK MSI verteilen mit Error Code 1603 (1)

Frage von WinLiCLI zum Thema Windows Systemdateien ...

Neue Wissensbeiträge
Tipps & Tricks

Wie Hackt man sich am besten in ein Computernetzwerk ein

(29)

Erfahrungsbericht von Herbrich19 zum Thema Tipps & Tricks ...

Humor (lol)

Bester Vorschlag eines Supporttechnikers ever: APC

(15)

Erfahrungsbericht von DerWoWusste zum Thema Humor (lol) ...

Windows Server

Exchange 2010 Active Directory und Windows Server 2016

(4)

Erfahrungsbericht von Herbrich19 zum Thema Windows Server ...

Heiß diskutierte Inhalte
Internet
gelöst Mitarbeiter surft auf unerwünschter Seite - Wie damit umgehen? (50)

Frage von sabines zum Thema Internet ...

Netzwerke
LAN2LAN Verbindung sehr langsam flaschenhals gesucht (27)

Frage von PixL86 zum Thema Netzwerke ...

Router & Routing
PFsense - Netzverbindung steht, aber kein Internet vorhanden (24)

Frage von aschmid zum Thema Router & Routing ...

Windows Server
gelöst Windows 2016 Hyper-V und VHDS (19)

Frage von emeriks zum Thema Windows Server ...