Witam. Chciałbym zrobić wkładkę do batcha, ale nie wiem jak wyświetlić coś w batchu, tak abym mógł to odczytać funkcją errorlevel. Przykładowo:
Var
a:string;
Begin
a:=plyplyply;
end.
@echo off
nazwaprogramu.exe
echo %errorlevel%
Witam. Chciałbym zrobić wkładkę do batcha, ale nie wiem jak wyświetlić coś w batchu, tak abym mógł to odczytać funkcją errorlevel. Przykładowo:
Var
a:string;
Begin
a:=plyplyply;
end.
@echo off
nazwaprogramu.exe
echo %errorlevel%
EXE:
Program NazwaProgramu;
Var
a:string;
Begin
a:=plyplyply;
//domyślnie ExitCode:=0;
If JakisWarunek1 then ExitCode:=1;
If JakisBlad1 then ExitCode:=2;
end.
BAT:
@echo off
NazwaProgramu.exe
echo %errorlevel% //errorlevel=1 jeśli w programie NazwaProgramu.exe był spełniony warunek JakisWarunek1
//errorlevel=2 jeśli w programie NazwaProgramu.exe wystąpił błąd JakisBlad1
//domyślnie errorlevel = 0
Dziękuję, ale jak wyświetlić zmienną typu string? Albo jakiś tekst?
Chciałem zrobić coś w stylu sterownika keyboard. Program czeka na naciśnięcie klawisza a następnie zwraca wartość do errorlevel. Wiem jak to zrobić, tylko chodzi mi właśnie o zwracanie tej wartości.
Wiem że nie minęło 24 godziny, ale pół godziny szybciej robię refresz.
DarkSlayer napisał(a):
Wiem że nie minęło 24 godziny, ale pół godziny szybciej robię refresz.
Dostałeś odpowiedź, tylko jesteś zbyt głupi żeby ją zrozumieć. Próbujesz wymyślić koło od nowa.
Chodzi o odpowiedź Pelsty czy Xitama? Bo nie chodziło mi o odpowiedź Pelsty a od Xitama nie znalazłem nic o tym, same komendy dosa. Chodziło mi o to aby zrobić coś podobnego do keyboard.exe w batchu.
@echo off
keyboard
echo %errorlevel%
Czeka na naciśnięcie przycisku i zwraca jego wartość w ansi. A jak zrobić aby w Pascalu wyświetlić tekst, bo cyfry napisał kolega wcześniej.
DarkSlayer napisał(a):
Czeka na naciśnięcie przycisku i zwraca jego wartość w ansi. A jak zrobić aby w Pascalu wyświetlić tekst, bo cyfry napisał kolega wcześniej.
1.Zaakceptowałeś już odpowiedź. Czyli problem rozwiązany, czyż nie? Nie umiesz pytać to i masz problem żeby zaakceptować odpowiedź.
2. Nie posiadasz TBrain i nie potrafisz powiązać faktów. Tobie trzeba dać kod, bo inaczej będziesz bumpować i czekać na gotowca, a na wszelkie odpowiedzi będziesz patrzeć tak: Nie ma gotowca? To na co mi to.
Czekaj sobie na kogoś kto ci pomoże w twojej głupocie. Ja się pod tym nie piszę.
@DarkSlayer: przepraszam, ale czy jesteś w jakiś sposób ograniczony? Nie rozumiesz słowa pisanego czy coś w tym stylu? Przecież @marogo dał Tobie jasną odpowiedź. Jaki problem aby ExitCode wynosiło Ord(Znak)?
Łatwiej by było jakby dawało znak, ale na to co napisałeś olesio wpadłem wcześniej. Troszkę się męczyłem bo zamiast Orb to pisałem char/chr. Dzięki wam gra i buczy :P Podzielę się kodem jaki "zrobiłem".
uses Crt;
begin
if keypressed then exitcode:=ord(readkey);
end.
Jeżeli wciśnięty guzik to zwraca jego wartość. Może komuś bawiącego się w batchu przyda się(np. w jakimś scroolu czy filmiku).
O wielkie dzięki, teraz próbuję pisać grę i musiałem wykorzystać wsad bo strzałki nie działały.
Heh - pisać grę w batchu wspierając się zewnętrznym programem w FPC? To już lepiej całośc napisać w FPC, a będzie prościej, więcej możliwości
True. Batch służy do tworzenia skryptów do kompilacji gier, nie do tworzenia gier.
i nikt w prosty sposób nie podejrzy oraz nie wyedytuje zawartości batcha "psując" grę ;/
Tja, bo w notatniku nie otworzy? IDA i jedziemy... Dziwi mnie to przekonania o 'nienaruszalności' plików PE. To że trzeba mieć lepsze narzędzie jeszcze nie znaczy że nawet bez jakiejś dużej wiedzy można zmodyfikować (kursów w necie masa).
-123oho napisał(a)
Tja, bo w notatniku nie otworzy? IDA i jedziemy... Dziwi mnie to przekonania o 'nienaruszalności' plików PE. To że trzeba mieć lepsze narzędzie jeszcze nie znaczy że nawet bez jakiejś dużej wiedzy można zmodyfikować (kursów w necie masa).
Toć ja nie twierdzę, że nie można użyć zewnętrznych narzędzi. Ale pospolita tak zwana lama (a takich pełno niestety, a może i stety) w exeku grzebać raczej nie będzie. A na swoim blogu w jednym z wpisów pokazałem, że nie protectnięty exek Delphi VCL równie szybko idziej zmodyfikowac posiłkując się IDR, co grzebiąc bezpośrednio w źródłach. To samo inne exeki Windowsowe pod chociażby IDA bardzo łątwo można analizować, co pokazałem na przykładzie ConEmu. Podsumowując: wszystko da się zrobić, jeżeli tylko wiemy co robimy i robimy to z głową. Chodzi o to, że otwierając exek w zwykłym notatniku za wiele nie zobaczymy, a otwierając batcha już tak.
Batch to język skryptowy, ale ja go nazywam open sourcowy :P Jak byłem na pewnym forum to się nim bawiłem, ale mnie zbanowali za zmienienie każdego posta na "A ten tego :P". A to teraz to było tylko tak dla testów.
olesio napisał(a):
Toć ja nie twierdzę, że nie można użyć zewnętrznych narzędzi. Ale pospolita tak zwana lama (a takich pełno niestety, a może i stety) w exeku grzebać raczej nie będzie. A na swoim blogu w jednym z wpisów pokazałem, że nie protectnięty exek Delphi VCL równie szybko idziej zmodyfikowac posiłkując się IDR, co grzebiąc bezpośrednio w źródłach. To samo inne exeki Windowsowe pod chociażby IDA bardzo łątwo można analizować, co pokazałem na przykładzie ConEmu. Podsumowując: wszystko da się zrobić, jeżeli tylko wiemy co robimy i robimy to z głową. Chodzi o to, że otwierając exek w zwykłym notatniku za wiele nie zobaczymy, a otwierając batcha już tak.
I co taka lama zrobi z batchem? Zmieni zawartość na wirusa?
Ani jedno ani drugie jakieś trudne specjalnie nie jest, kwestia determinacji i wiedzy. Ale nieprotectowanego EXE jeszcze bym nie traktował w kwestii dobrze zabezpieczone :P
Btw. Nie wiedziałem że masz blog . Will take a look on ur malware later on.
Batch to język skryptowy, ale ja go nazywam open sourcowy
Powtórz: Interpretowany
Jak byłem na pewnym forum to się nim bawiłem, ale mnie zbanowali za zmienienie każdego posta
Żeś się pochwalił.
Witam. Ponownie mam problem. W free pascalu działa ExitCode:=1; ale w turbo pascalu już nie. Można to jakoś obejść? Używanie free pascala odpada gdyż nie działa tam mysz.
Witam. Ponownie mam problem. W free pascalu działa ExitCode:=1; ale w turbo pascalu już nie. Można to jakoś obejść? Używanie free pascala odpada gdyż nie działa tam mysz.
A czemu nie zrobisz nowego tematu? Bo ten się nazywa "Wszystkie pytania od DarkSlayera"?? Następnym razem ogar tworzenie tematów.
Używasz DOSa? Jeżeli to Windows to mam dla ciebie dobrą wiadomość: Jest FPC pod Windows, nawet jest śliśtaśne GUI: Lazarus.
I po co robisz ten offtop? Kogo obchodzi twoja "wiedza" na temat reverse engineeringu?
Ciebie skoro odpisujesz.
To że widziałeś Syser, OllyDbg, IDA czy starsze zabytki jak SoftICE i w32Dasm umiesz użyć Hiew i pisałeś programy w asm pod debug nie czyni z ciebie crackersa.
Nie twierdzę że jestem pr0, po prostu złamałem parę prostych zabezpieczeń i piszę swoje. Więc to czy jestem crackersem zależy od twojej definicji. Zresztą, podobno ciebie to nie obchodzi?
Ponownie mam problem. W free pascalu działa ExitCode:=1; ale w turbo pascalu już nie. Można to jakoś obejść? Używanie free pascala odpada gdyż nie działa tam mysz.
Piszesz pod 128 MHz komputery z DOS'em, że używasz jeszcze Turbo Pascala?
Jestem pewien, że FPC obsługuje wszystko, co Turbo Pascal - wystarczy poszukać.
Poszukałem za Ciebie... Masz tu kilka linków odnośnie FPC i myszki:
Czytaj, czytaj, czytaj...
Najlepiej pobierz moduł WinGraph.
Masz w zestawie WinGraph do grafiki, WinCRT do wczytywania tekstu etc. oraz WinMouse do obsługi myszki.
Czasami także z niego korzystam, jak potrzebuję coś zrobić, a i więcej możliwości w porównaniu do zwykłego unitu Graph.
Teraz mam kolejny problem. Jak połączyć zmienne MX i MY w jedną? Np. MX ma wartość 1 a MY 2, jak zrobić aby A miała 12?
10 = 1*10 + 0*1
12 = 1*10 + 2*1
1024 = 1*1000 + 0*100 + 2*10 + 4*1
lub, skoro są to zmienne typu word
:
zmienna_typu_integer = mx << 16 | my
w Pascalu to będzie: zmienna_typu_integer := (mx shl 16) or my
.
W tym wypadku pierwsze 16 bitów to będzie zmienna mx
, a następne to my
.
Teraz mam kolejny problem. Jak połączyć zmienne MX i MY w jedną? Np. MX ma wartość 1 a MY 2, jak zrobić aby A miała 12?
Czy to jest forum czy jakiś czat gdzie wyskakujesz z pytaniami co parę godzin? Naucz się rozwiązywać problemy a nie pytać na forum.
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.