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, 4871 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
Webentwicklung
Daten Handling (6)

Frage von pcguy zum Thema Webentwicklung ...

Datenbanken
Handling von mehreren Reporting-Mitarbeitern an einem SSRS

Frage von AdminKnecht zum Thema Datenbanken ...

Batch & Shell
gelöst Nonsense Error - find ihn nicht. (Batch) (7)

Frage von clragon zum Thema Batch & Shell ...

Drucker und Scanner
Laserjet 3600N Fehler PCL Error (1)

Frage von grillinator95 zum Thema Drucker und Scanner ...

Neue Wissensbeiträge
Windows Tools

Zeit für Energiesparmodus, Bildschirmabschaltung etc. schnell anpassen

Anleitung von hannsgmaulwurf zum Thema Windows Tools ...

Linux Netzwerk

Ping und das einstellbare Bytepattern

(1)

Erfahrungsbericht von LordGurke zum Thema Linux Netzwerk ...

Windows Update

Microsoft Update KB4034664 verursacht Probleme mit Multimonitor-Systemen

(4)

Tipp von beidermachtvongreyscull zum Thema Windows Update ...

Heiß diskutierte Inhalte
Netzwerke
DynDNS Dienst mit Mikrotik Router OS 6.4 (12)

Frage von Mopskiller zum Thema Netzwerke ...

Switche und Hubs
gelöst Cisco 2960x Stacking über mehrere Etagen (12)

Frage von b3scher zum Thema Switche und Hubs ...