Anti-FAQ: Nieznane wywołania funkcji SysCmd.
Krzysztof Pozorek
 

Funkcje nieudokumentowane mają to do siebie, ...że próżno szukać ich w dokumentacji. Ale można zrobić kilka własnych testów. Poniżej przedstawiam wyniki moich prób z funkcją SysCmd:

'Acc97
    SysCmd(504, 16484)	 'zapisuje wszystkie moduły bez kompilacji
    SysCmd(501, i)       'wykaz referencji dla i = 0...n
    'czyli możemy np. przeglądać listę referencji podstawiając za i - kolejne numery
    SysCmd(500)          'ilość referencji
    
'Acc2000
    SysCmd(605, 0) 'konwertuje bieżąca bazę do poprzedniej wersji z wyborem pliku
    SysCmd(605, "C:\Baza97.mdb") 'konwertuje bieżąca bazę do poprzedniej wersji pod nazwa C:\Baza97.mdb
    SysCmd(607,"C:\Projekt1.adp") 'konwertuje bieżącą bazę do projektu ADP i zapisuje pod nazwą C:\Projekt1.adp
    'Ostrożne korzystanie z tej funkcji daje nam dodatkowe możliwości, oto one:
    SysCmd(607,"X:") 'zwróci informacje o napędzie X. Zamiast X można podstawić dowolny napęd A, B, C, D... itd.
    'Wybrane wartości zwracane przez SysCmd(607,"X:")
    '           85 pusty napęd dyskietek (bez dyskietki)
    '           21 pusty napęd CD-ROM (bez krążka)
    '           5 dysk (napęd) dostępny
    '           3 brak dysku (napędu)
    SysCmd(608, i) 'porada dnia dla i = 0...60, czyli 60 tipsów, dotyczących programowania w Accessie
    SysCmd(710, 68486165) 'ustawia klawiaturę polskiego programisty. Zmiana obowiązują tylko w naszej aplikacji
    SysCmd(710, -267975659) 'ustawia klawiaturę polskiej maszynistki 
    '(ą jest tam, gdzie ', z jest tam, gdzie y, ...i temu podobne ułatwienia)
    SysCmd(710, 67699721) 'ustawia klawiaturę amerykańską
    SysCmd(710,1) 'ustawia następny w kolejności typ klawiatury
    SysCmd(710,0) 'ustawia poprzedni w kolejności typ klawiatury
    'Wszystkie funkcje SysCmd(710,...) zwracają typ klawiatury, który obowiązywał przed zmianą
    SysCmd(711) 'zwraca aktualnie ustawiony typ klawiatury, czyli:
    '           68486165 programisty
    '           -267975659 maszynistki
    '           67699721 amerykańska
    SysCmd(714) 'zwraca True, jeśli dowolny formularz, raport, makro lub moduł jest w trakcie projektowania.

Podkreślam jednak, że nigdzie nie znalazłem opisu tych wywołań, a prezentowane wnioski są wyłącznie wynikiem moich domysłów.

K. P.