Stránka 1 z 1

spuštění a ukončení aplikace po startu

Napsal: čtv 19. led 2012, 10:59
od Mafian277198
Zdravím.

Potřeboval bych po spuštění (načtení a loginu Windows 7) spustit ovládací panel Herní zařízení (System32\gameport.cpl) a po jeho načtení (či krátké časové prodlevě) jej automaticky ukončit.

Prozatím to mám amatérsky pomocí dávkového souboru (.bat), který se spouští po startu:

@echo off
start C:\Windows\System32\gameport.cpl
timeout /T 15 /NOBREAK
taskkill /F /IM rundll32.exe

Problém je ale v tom, že ne vždy se panel Herní zařízení spustí a nebo také ukončí. Proto bych se chtěl zeptat, jaký existuje lepší postup, předem díky.

Re: spuštění a ukončení aplikace po startu

Napsal: pát 20. led 2012, 00:42
od Maranov
Použij Powershell.

Nejdřív ho povol, spusť Windows Powershell jako správce, zadej:

Kód: Vybrat vše

Set-ExecutionPolicy RemoteSigned
a odsouhlas.

Pak si vytvoř zástupce (normálně pravým tlačítkem), jako cíl zadej:

Kód: Vybrat vše

powershell -Command "$ps = start-process 'C:\Windows\System32\gameport.cpl' -PassThru; sleep -Seconds 15; $ps.Kill()"
Tohle by mělo fungovat lépe.

Re: spuštění a ukončení aplikace po startu

Napsal: pát 20. led 2012, 06:42
od Mafian277198
Tak spuštění funguje, ale jak dojde na příkaz Kill(), dojde k výjimce:

Obrázek

Bohužel, nejsem zrovna programátor, tak nevím, co s tím... jestli to není tím, že se to sice spouští jako „gameport.cpl“ ale jako úloha to běží v procesu „rundll32.exe“.

Re: spuštění a ukončení aplikace po startu

Napsal: pát 20. led 2012, 13:36
od Maranov
OK, problém je, že ten proces je explorer, který jakožto shell zabíjet (naštěstí) nejde.

Co tohle?

Kód: Vybrat vše

powershell -Command "start-process 'C:\Windows\System32\gameport.cpl'; sleep -Seconds 15; (New-Object -comObject Shell.Application).Windows() | ? { $_.LocationName -eq 'NÁZEV' } | % { $_.Quit() }"
Akorát to chce jednu úpravu - místo NÁZEV dej název toho panelu (nemám tu ten panel, takže nevím).

Názvy otevřených oken exploreru kdyžtak zjistíš spuštěním PS a zadáním:

Kód: Vybrat vše

(New-Object -comObject Shell.Application).Windows() | % { $_.LocationName }

Re: spuštění a ukončení aplikace po startu

Napsal: pát 20. led 2012, 14:44
od Mafian277198
Název mi nejde zjistit, píše to jen otevřená okna (umístění otevřeného adresáře) průzkumníku Windows.

Re: spuštění a ukončení aplikace po startu

Napsal: pát 20. led 2012, 18:42
od Maranov
No jasně, nejdřív to otevři.

Re: spuštění a ukončení aplikace po startu

Napsal: pát 20. led 2012, 19:25
od Mafian277198
No pokud myslíš ten ovládací panel (gameport.cpl), tak ten sem samosebou měl otevřený, ale nic to nepsalo..... pak sem otevřel jednu složku a tu to tam napsalo.... přijde mi, že to tam píše jen názvy adres adresářů otevřených v okně (reaguje na Průzkumník Windows - explorer.exe), ale na nic jinýho to nereaguje.

Re: spuštění a ukončení aplikace po startu

Napsal: sob 21. led 2012, 00:03
od Maranov
Uff... tak snad WASP pomůže. :-D

a) Stáhni si WASP, někam ho rozbal.

http://wasp.codeplex.com/releases/view/22118

b) Použij tento příkaz:
powershell -Command "Import-Module 'CESTA K WASP ADRESÁŘI'; Start-Process 'C:\Windows\System32\gameport.cpl'; sleep -Seconds 15; Select-Window | ? { $_.Title -eq 'Game Controllers' } | % { $_.Close() }"
kde doplň:
  • 'CESTA K WASP ADRESÁŘI',
    místo 'Game Controllers' dej titulek toho okna.

Re: spuštění a ukončení aplikace po startu

Napsal: sob 21. led 2012, 08:25
od Mafian277198
Supr, už to funguje, díky moc. :)

Re: spuštění a ukončení aplikace po startu

Napsal: sob 21. led 2012, 13:30
od Maranov
Tak přece. Není zač. :)