Hirdetés
- Kormányok / autós szimulátorok topikja
- Shield TV-t csinált a Shieldből az NVIDIA
- Előrendelhető a ROG Xbox Ally és Ally X
- Milyen egeret válasszak?
- TCL LCD és LED TV-k
- Milyen processzort vegyek?
- Philips LCD és LED TV-k
- Hővezető paszták
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
-
PROHARDVER!
Ú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!
- Mégis marad a Windows 10 ingyenes frissítése
- Android alkalmazások - szoftver kibeszélő topik
- Kormányok / autós szimulátorok topikja
- Megérkeztek a Xiaomi 15T sorozatának telefonjai Magyarországra
- iPhone topik
- Linux kezdőknek
- Robogó, kismotor
- sziku69: Fűzzük össze a szavakat :)
- Shield TV-t csinált a Shieldből az NVIDIA
- exHWSW - Értünk mindenhez IS
- További aktív témák...
- Telefon felvásárlás!! Honor 400 Lite, Honor 400, Honor 400 Pro
- HIBÁTLAN iPhone 13 mini 128GB Starlight -1 ÉV GARANCIA - Kártyafüggetlen, MS3276
- GYÖNYÖRŰ iPhone XR 64GB Blue -1 ÉV GARANCIA - Kártyafüggetlen, MS3117
- Dell G5 15 5587 - 15.6"FHD IPS - i7-8750H - 16GB - 1TB SSD - 1TB HDD - GTX 1060 6GB - Win11 - MAGYAR
- Samsung Galaxy A55 5G / 8RAM 256GB / Gyárifüggetlen / 12 Hó Garanciával
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest