Pytanie takie jak w temacie.--BigJas laik's programmer's :)
Chodzi mi o jakąś małą procedurkę (lub cokolwiek innego) co mogło by stwierdzić przy uruchamianiu programu czy do tego kompa z którego wywoływany jest program jest podłączona drukarka i w zależności od tego czy jest czy jej nie ma żebym mógł zaprogramować jakąś odpowiednią akcję, np. jak jest uaktywnij opcje "Drukowanie" jak nie ma dezaktywuj opcje "Drukowanie".
Pozdrawiam--BigJas laik's programmer's :)
BigJas w dniu 9.4.2002 16:19 napisal:
Chodzi mi o jakąś małą procedurkę (lub cokolwiek innego) co mogło by stwierdzić przy uruchamianiu programu czy do tego kompa z którego wywoływany jest program jest podłączona drukarka i w zależności od tego czy jest czy jej nie ma żebym mógł zaprogramować jakąś odpowiednią akcję, np. jak jest uaktywnij opcje "Drukowanie" jak nie ma dezaktywuj opcje "Drukowanie".
>
>Pozdrawiam
>
>--
>BigJas laik's programmer's :)
też to kiedyś chciałem sprawdzić - jak chcesz to sciągnij ode mnie drukarka.exe - jeśli o to chodzi przesle źródło tej procedury - http://hrmarek.republika.pl/
Nie zupełnie o to. Chodzi mi o sprawdzenie nie czy ktoś ma ją włączoną czy nie tylko czy ma ją w ogóle PODŁĄCZONĄ do komputera !
Ale i tak dzięki za dobre chęci :)--BigJas laik's programmer's :)
Spróbuj czegoś takiego - u mnie działa... chociaż nie znam sie na tym.
var
bValue: Word;
Value1 : Word;
Value2 : Word;
function GetPort(address: Word): Word;
begin
asm
mov DX, address
in AL, DX
mov bValue, AL
end;
result := bValue;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Value1 := GetPort($378);
Value2 := GetPort($379);
if Value1=16 then label1.caption:='odłączony kabel od drukarki';
if Value1=0 then label1.caption:='podłączony kabel do drukarki';
if (Value2=120) or (Value2=128) or (Value2=192) then label2.caption:='drukarka wyłączona';
if Value2=216 then label2.caption:='drukarka załączona';
end;
Niestety!!! Wywala u mnie błąd w linii:
in AL, DX
pisząc komunikat "Privileged instruction",
ale właśnie o taki programik mi chodziło no żeby jeszcze działał to byłbym jeszcze bardziej zadowolony. Dzięki bardzo za próbę pomocy.
Pozdrawiam
BigJas--BigJas laik's programmer's :)
BigJas, a nie masz ty przypadkiem WinXP lub 2000? Bo zdaje sie ze w tych systemach Microsoft w niezmierzonej madrosci swojej odcial bezposredni dostep do portow, co wiele osob uzywajacych komputera do czegos wiecej niz Word, Excel i pasjans mocno wkurzylo. Ja np steruje pewnymi urzadzeniami przez port drukarki i w zwiazku z powyzszym bardzo sobie chwale moje win98.
Moze ktos madrzejszy Ci poradzi jak dostac sie do portow przez system pod WinXP, ale ja nie wiem :-(.
PS. Przynajmniej w teorii port LPT1 niekoniecznie musi byc pod $378 - ale ja osobiscie z innym ustawieniem nie spotkalem. Cos mi majaczy ze BIOS ustawia porty w inny sposob jesli komputer ma karte graficzna obslugujaca wylacznie tryb tekstowy, albo cos w tym rodzaju. Byloby wiec niezbyt prawdopodobnym napotkanie takiego kompa. Aha, rzeczywiste adresy portow LPT sa w zmiennych BIOSu, bodajze pod 0040:0008. Wiem jak je odczytac pod DOSem, ale nie wiem czy tak samo pod Winda, zwlaszcza XP...--Pawel
Delphi6
Dzięki pg za oświecenie bo to trochę rozjaśniło mi mój mózg, a poza tym to fakt pracuję pod XP (chociaż jeszcze niedawno miałem Win'98) a to dlatego że większośc ludzi mówiła, iż jest lepszy ale najciekawsze jest to że nie umieli mi powiedzieć w czym jest lepszy od Win'98! Jak widzę okazuje się że w niektórych przypadkach jest o niebo gorszy od '98. No cóż najgorsze jest to że nie mogę użyć tego powyższego kodu ponieważ piszę pracę przejściową i na uczelni też używają XP!!!
Jeszcze raz dziękuję za pomoc wszystkim od których ją otrzymałem.
Pozdrawiam
BigJas Laik's Programmer's :)--BigJas laik's programmer's :)
PQ a nie PG :)
Powodzenia z praca. Mysle, ze jakos do tych portow mozna sie dostac przez system, tylko trzeba wiedziec jak..--Pawel
Delphi6
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.