Dit gaat niet meer, sinds windows vista draaien services in een aparte sessie (google services isolation) waardoor je geen interactief process meer kun starten (iets met een gui).
Er is nog een...
Type: Posts; User: rweijnen; Keyword(s):
Dit gaat niet meer, sinds windows vista draaien services in een aparte sessie (google services isolation) waardoor je geen interactief process meer kun starten (iets met een gui).
Er is nog een...
Precies, je kunt ook registry instellen zodat er automatisch een dump gemaakt wordt: https://helgeklein.com/blog/creating-an-application-crash-dump/
Moest het even opzoeken maar je kunt in delphi {$SetPEFlags IMAGE_FILE_NET_RUN_FROM_SWAP} gebruiken
Het gaat ook vaak goed maar het blijft "bad practice" al kun je het enigszins ondervangen door het instellen van een attribuut op de PE header zodat de exe altijd volledig in geheugen blijft. Kun je...
Je start zo te zien je executable vanaf een netwerk schijf (T), dit kan sowieso voor allerlei problemen zorgen.
Heb je de exe al eens gestart vanaf de C schijf om dat iig uit te sluiten?
Je thread zit in een constant loop QueryPerformanceCounter aan te roepen, sleep(100) en zelfs sleep(0) zal wel wat helpen maar het blijft een beetje onzin om maar te blijven loopen voor iets wat maar...
Die file zal dan toch in use zijn, heb je al eens met handles of process explorer (beide van sysinternals) gekeken welk process de file open heeft?
FILE_INFO_BY_HANDLE_CLASS, _FILE_END_OF_FILE_INFO en SetFileInformationByHandle waren niet bekend in mijn Delphi (10.4) dus ik vermoed dat je deze zelf gedeclareerd hebt.
In C is een ENUM minimaal...
In plaats van Windows te enumeraten kun je beter hetzelfde doen als wat tasklist doet, namelijk processen enumeraten. Maar snap niet zo goed waar je nu op vastloopt? Als je een process wil starten...
Gebruik je een try..finally ?
iets in de trant van:
**CriticalSection.Enter;
**try
****// code
**finally
****CriticalSection.Leave;
**end;
0xc0000264 -> STATUS_RESOURCE_NOT_OWNED: https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-erref/596a1078-e883-4972-9bbc-49e60bebca55
Bij de uitleg staat: The application attempted to...
Klinkt logisch dat het op deze manier niet werkt, zeker met een HKCU key zou je anders zonder elevation een run key kunnen schrijven die dan elevated gestart wordt. Run Keys worden uitgevoerd door...
Kun je niet gewoon met FindWindow(Ex) het venster van de actieve instance zoeken en deze met ShowWindow naar de voorgrond halen?
Het zijn al wat oudjes maar: https://www.remkoweijnen.nl/blog/2007/10/18/how-rdp-passwords-are-encrypted/ https://www.remkoweijnen.nl/blog/2008/03/02/how-rdp-passwords-are-encrypted-2/...
Ik denk dat je de documentatie van het USB device eens zal moeten doorspitten, zoals hierboven al genoemd kun je met CreateFile een handle naar het device openen. Met die handle kun je vervolgens...
Ik denk dat het een stuk sneller gaat als je de filestream gewoon open houd en na het schrijven eventueel een flush geeft om te voorkomen dat je bij een crash logging mist
Klopt, net als ander Jedi projecten (Jedi Apilib / Security library) is het aantal vrijwilligers op 1 hand of zelfs 1 vinger te tellen.
Als je componenten om deze reden wil gaan herschrijven zou je...
Wat je kunt meten is de cpu time die jouw programma (process) gekregen heeft. Door dit af te zetten tegen cpu idle time en overige processen heb je een percentueel gebruik in een interval (je 1e en...
Je hebt idd gelijk marcov, ik had aangenomen dat Pred En Succ niet gebruikte waardes zou overslaan maar dat is idd niet zo!
In wat oudere Delphi versie werkt RTTI niet goed als de waardes niet opeenvolgend zijn.
Dit zou wel moeten werken:
function IsGebeurtenis(const i: Integer): Boolean;
var
gb: TGebeurtenis;
...
Je je kunt zelfs een exe uploaden en aangeven dat het een trusted file is, gebruikers van je tools kunnen dat ook doen. Zou natuurlijk mooi zijn om dat via de api te doen, wellicht automatisch bij...
Ben het hier niet met je eens rvk, ook al is je software gratis: je doet dit met een doel nl dat zoveel mogelijk mensen jouw software gebruiken en daarom moet je als ontwikkelaar blijven pushen...
Controleer je executable eens op VirusTotal.com en als er ergens detecties zitten submit dan je software als false positive naar de betreffende AV vendor.
De crash komt omdat je rax niet op 0 hebt gezet, deze code klopt voor x64:
type
PRTL_CRITICAL_SECTION = ^RTL_CRITICAL_SECTION;
function LoaderLock: PRTL_CRITICAL_SECTION;
asm
{$IFDEF...
Klopt, MOV EAX, FS:[$30] haalt een pointer naar het PEB op, voor x86 past deze pointer in eax (32 bits) maar voor x64 zul je deze in rax (64 bits) moeten zetten, heb hier geen x64 versie van delphi...