Strona: [  << <   1   > >>  ]  z  1     
Autor Temat: Systemowe komunikaty o błędzie
DJK



Typ: neutral
Postów: 871
Zarejestrowany: Feb 2004
Systemowe komunikaty o błędzie

Witam

Mam takie pytanie jak wyświetlić komunikat o błędzie w języku domyślnym systemu.

Otóż powiedzmy że VB wywala mi błąd, że nie można odnaleźć pliku i numer błędu bodajże 53 (oczywiście po angielsku) - jak wywołać go w języku polskim - tylko nie piszcie żebym zrobił własnego MessageBox'a

Na liście komunikatów systemowych komunikat ten w języku polskim ma numer błędu 2 o_O


_____________________________________________
Jeśli można coś zrobić w sposób optymalny to czemu nie

27-02-2005 13:13
Pokaż profil DJK  Wyślij email do DJK   Odwiedź stronę DJK  
DJK



Typ: neutral
Postów: 871
Zarejestrowany: Feb 2004

Może inaczej

Powiedzmy że mam kontrolkę Listview z listą plików jakiegoś katalogu.

Zmieniam nazwę pliku na liście i umieściłem w nazwie np. \ / : * ? itd.

Naciskam Enter i tutaj pytanie: jak wyświetlić komunikat systemowy, że

"W nazwie pliku nie może być takich znaków jak \ /: * ..."


Ktoś pomyśli, ze przecież wystarczy wklepać

MsgBox ....

ale co jeśli Windows jest w jakiejś innej wersji językowej a komunikaty będą np. po polsku ??


_____________________________________________
Jeśli można coś zrobić w sposób optymalny to czemu nie

27-02-2005 17:57
Pokaż profil DJK  Wyślij email do DJK   Odwiedź stronę DJK  
losmac
"profesorek"




Typ: neutral
Postów: 758
Zarejestrowany: May 2003

Do przechwytywania błędów stwórz podprogram obsługi błędów:

Sub djska()

On Error GoTo Err_Handler


Exit_Handler:
  Exit Sub

Err_Handler:
    Select Case Err.Number
    Case ... (nie pamiętam - 55...75)
        MsgBox Err.Descrition, vbExclamation, Err.Number
    Case Else

End Select
    Err.Clear
    Resume Exit_Handler
End Sub



_____________________________________________
POSTULATY STARUSZKA:
1) Ludzie, dbajcie o polszczyznę!!!
2) Ludzie, zadawajcie kompletne pytania, a nie rzucacie ochłapy i trzeba się domyślać o co chodzi!!!

Powodzenia
Maciej Łoś

27-02-2005 19:25
Pokaż profil losmac  Wyślij email do losmac   Odwiedź stronę losmac  
DJK



Typ: neutral
Postów: 871
Zarejestrowany: Feb 2004

A sprawdzałeś to bo ja zdążyłem taką opcję już obadać i to wclae nie daje zadowalających rezultatów.
Hmmm - to są komunikaty Visuala a nie systemowe i są po angielsku

[Post edytowany dnia 28-02-2005 00:45 przez DJK]


_____________________________________________
Jeśli można coś zrobić w sposób optymalny to czemu nie

28-02-2005 00:43
Pokaż profil DJK  Wyślij email do DJK   Odwiedź stronę DJK  
m-a-x



Typ: neutral
Postów: 366
Zarejestrowany: Jan 2003

Oczywiście komunikat który sie wyświetli jak użyjesz funcji losomac'ka bedzie w jezyku angielskim. Jak chcesz zrobić komunikaty we własnym (polskim) języku niestety musisz sam napisać kazdy z osobna (msgbox). Z tego co się orientuję innej możliwości nie ma!


Na liście komunikatów systemowych komunikat ten w języku polskim ma numer błędu 2 o_O

Nie zabardzo wiem o co Ci tutaj chodzi - moglbyś dać jakiś przykład/sampla?

Widzialem/mialem gdzieś kiedyś modulik który służył do obsługi wszystkich (czyt. większości) błędów. Wyświetlał komunikaty w języku polskim i był wyposażony w kilka przydatnych funkcji np logowanie błędów. Niestety teraz go nie moge znaleźć


_____________________________________________

Problemem zazwyczaj nie jest brak osób znających odpowiedź a zadanie właściwego pytania!

28-02-2005 11:39
Pokaż profil m-a-x  Wyślij email do m-a-x   
DJK



Typ: neutral
Postów: 871
Zarejestrowany: Feb 2004

Komunikaty wyświetlane przez VB nie są komunikatami systemowymi a 2 to rzeczywisty numer komunikatu systemowego oznaczającego że plik nie istnieje a nie tak jak pokazuje to VB numer 53

Prosty przykład jak wyświetlić komunikat w języku polskim, że plik nie istnieje:

Const FORMAT_MESSAGE_FROM_SYSTEM = &H1000
Const LANG_NEUTRAL = &H0

Private Declare Sub SetLastError Lib "kernel32" (ByVal dwErrCode As Long)
Private Declare Function FormatMessage Lib "kernel32" Alias "FormatMessageA" (ByVal dwFlags As Long, lpSource As Any, ByVal dwMessageId As Long, ByVal dwLanguageId As Long, ByVal lpBuffer As String, ByVal nSize As Long, Arguments As Long) As Long
Private Declare Function MoveFile Lib "kernel32" Alias "MoveFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String) As Long

Private Sub Form_Load()
Dim Buf As String
Buf = Space(100)
MoveFile "c:eryery", "c:eryeryey"
FormatMessage FORMAT_MESSAGE_FROM_SYSTEM, ByVal 0&, Err.LastDllError, LANG_NEUTRAL, Buf, 100, ByVal 0&
MsgBox Buf, vbCritical
End Sub



Komunikat będzie wyświetlany w takim języku w jakim jest Windows.

[Post edytowany dnia 28-02-2005 12:31 przez DJK]


_____________________________________________
Jeśli można coś zrobić w sposób optymalny to czemu nie

28-02-2005 12:28
Pokaż profil DJK  Wyślij email do DJK   Odwiedź stronę DJK  
DJK



Typ: neutral
Postów: 871
Zarejestrowany: Feb 2004

Ponawiam pytanie - jak wyświetlić komunikat systemowy np.

"Nazwa plików nie moze zawierać żadnego z następujących znaków: ...."

Oczywiście Stringa chcę pobrać z systemu a nie samemu wklepać


_____________________________________________
Jeśli można coś zrobić w sposób optymalny to czemu nie

22-03-2005 16:49
Pokaż profil DJK  Wyślij email do DJK   Odwiedź stronę DJK  
DJK



Typ: neutral
Postów: 871
Zarejestrowany: Feb 2004

Temat zamknięty


_____________________________________________
Jeśli można coś zrobić w sposób optymalny to czemu nie

25-03-2005 00:26
Pokaż profil DJK  Wyślij email do DJK   Odwiedź stronę DJK  
Wszystkich odpowiedzi: 7 :: Maxymalnie na stronę: 20
Strona: [  << <   1   > >>  ]  z  1