Hirdetés
- Candy: AOOSTAR WTR PRO – NAS, alkoss, gyarapíts
- sziku69: Fűzzük össze a szavakat :)
- bambano: Bambanő háza tája
- Luck Dragon: Óraátállítás
- Luck Dragon: Asszociációs játék. :)
- MasterDeeJay: RAM gondolatok: Mennyi a minimum? DDR3 is jó?
- gban: Ingyen kellene, de tegnapra
- NvidiaRTX: Xiaomi Electric Scooter 6 Max: Az első rollerem
- Hieronymus: Hogyan parkolj hátramenetben profi módon
- D1Rect: Nagy "hülyétkapokazapróktól" topik
-
LOGOUT

Új hozzászólás Aktív témák
-
Hali!
A kódrészletek Delphi-ben írodtak, de maga a probléma programozási nyelvtől független, szóval bármely topik jó lett volna, erre esett a választásom.
Saját WinPE-t hegesztek, ahol egy amolyan Shell-t írok (sima VCL app), aminek az az egyszerű feladata, hogy adott programokat indítson el/futtasson 1 példányban és várja meg amíg bezárják/kilépnek belőle. Kézenfekvő megoldás a WaitForSingleObject, ami teszi is a dolgát, viszont egy furcsa "mellékhatás" jelentkezett, amikor a futtatott app ablakot mozgatom egérrel és leteszem kicsibe (minimize).
Ez lenne a normális, de ehelyett a parent Form-on ott marad az app felülete...Néhány támpont:
# csak WinPE ISO-ról boot-olva (nem virtuális gépen) jön elő, Windows alatt nem
# CreateProcess és ShellExecuteEx esetén is
# sima (nem felügyelt) futtatásnál WinPE ISO boot és Windows alatt sincs gond (csak ekkor ugye nem tudom, mikor lép ki a progi)sima futtatás
ShellExecute(Handle, 'open','X:\Program Files\DiskGenius.exe', nil, nil, SW_SHOWNORMAL) ;CreateProcess
ZeroMemory(@MyStartupInfo, SizeOf(MyStartupInfo));
ZeroMemory(@MyProcessInfo, SizeOf(TProcessInformation));
MyStartupInfo.cb := SizeOf(TStartupInfo);
MyStartupInfo.wShowWindow := SW_SHOWNORMAL;
CreateOK := CreateProcess(PChar('X:\Program Files\DiskGenius.exe'),
nil,
nil,
nil,
False,
CREATE_NEW_PROCESS_GROUP+NORMAL_PRIORITY_CLASS,
nil,
nil,
MyStartupInfo,
MyProcessInfo
);
if CreateOK then
begin
WaitForSingleObject(MyProcessInfo.hProcess,INFINITE);
ShowMessage('Kilépett a program');
end
else ShowMessage('Gebasz van!');
CloseHandle(MyProcessInfo.hProcess);
CloseHandle(MyProcessInfo.hThread);ShellExecuteEx
ZeroMemory(@MyExecuteInfo, SizeOf(MyExecuteInfo));
with MyExecuteInfo do
begin
cbSize := SizeOf(MyExecuteInfo);
fMask := SEE_MASK_NOCLOSEPROCESS;
lpFile := PChar('X:\Program Files\DiskGenius.exe');
lpVerb:='Open';
nShow := SW_SHOWNORMAL;
end;
CreateOK:=ShellExecuteEx(@MyExecuteInfo);
if CreateOK then begin
WaitForSingleObject(MyExecuteInfo.hProcess, INFINITE);
ShowMessage('Kilépett a program');
end
else ShowMessage('Gebasz van!');Szóval: Ötlet? (meg tudom oldani másképp a dolgot, azon ne agyaljatok, csak érdekelne, hogy mi ennek a matyózásnak az oka...)
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
- ALIENWARE Area-51 R6 Threadripper Edition 1920X
- Apple Watch Series 10 GPS+Cellular 46mm, Újszerű, 1 Év Garanciával
- BESZÁMÍTÁS! Részletfizetés 0% THM ÚJ Sony PlayStation 5 Slim digital / lemezes / Pro konzol 27% áfa
- Windows, Office licencek kedvező áron, egyenesen a Microsoft-tól - Automata kézbesítés utalással is!
- HP EliteBook 840 G11 Ultra 7 / 16GB RAM / 512GB SSD / FHD+ IPS / Garancia 2027.11.
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

