Mam pewien dylemat, mianowicie robie pewien program, w którym musze skorzystać z kilku funkcji zaleznych od api win9x i xp np. zapalanie diody. Znalazlem kod na forum 4p pod 9x:
GetKeyboardState(KS);
KS[VK_SCROLL] := ON;
SetKeyboardState(KS);
I NT:
keybd_event(VK_NUMLOCK, $45, KEYEVENTF_EXTENDEDKEY or 0, 0);
hmm... Planowalem sprawdzic wersje systemu przy właczeniu programu a potem w zależnosci od tego czy 9x czy nt wykonać odpowiedni kod, tylko że jak cos takiego skompilowac.. Jestem poczatkującym wiec sami zrozumcie. Pomyslalem ze można by zrobić dll z tymi funkcjami nt, ale jego i tak trzeba by skompilowac np pod xp i dopiero potem dołaczyc do mojego programu.. Moze dacie mi jakąś podpowiedź jak wyjść ze tej sytuacji..
Sprwadzić przy uruchamianiu programu, z jaką wersją Windows masz do czynienia. Vide opis funkcji GetVersionEx() w MSDN albo mój pseudokomponencik (pseudo-, bo niedopracowany :) ) WindowsInformator: http://4programmers.net/file.php?id=1065
Spoko ja wiem jak sprawdzic wersje systemu, problem polega na tym jak uruchomic kod odpowiedni dla danej wersji os.
Przeciez nie skompiluje programu zawierajacego wczesniej wymienione przeze mnie funkcje, chyba;p Chodi mi wlasnie o to czy szło by to zrobic, a jesli tak to jak.</ort>
IMHO te funkcje są obecne we wszystkich Windowsach (tzn. i 9x, i NT), ale głowy sobie uciąć nie dam - patrz na MSDN. Zawsze też pozostaje dynamiczne ładowanie bibliotki DLL oraz uzyskiwanie adresu procedur i dopiero wtedy ich wykonywanie.