mandrake7 Ierakstīts Novembris 6, 2016 Share Ierakstīts Novembris 6, 2016 Vai ir kāds veids kā piekļūt Windows aplikāciju funkcijām, izmantojot C++, vai Python? Mans mērķis būtu sekojošs: Uz GPIO (uz LattpePanda, piemēram) ir fiziska poga. Ar šo pogu vēlos palaist konkrētu darbību konkrētā, palaistā Win softā. Vai ir kāds veids kā to dabūt gatavu? Iespējams, tā ir kāda metode, kuru nezinu, līdz ar to nevaru sagooglēt... 1 Link to comment Share on other sites More sharing options...
usver Novembris 6, 2016 Share Novembris 6, 2016 kas ir konkrēta funkcija? menu kliks? pogas kliks? FindWindowEx() https://msdn.microsoft.com/en-us/library/windows/desktop/ms633500(v=vs.85).aspx SendMessage() logam https://msdn.microsoft.com/en-us/library/windows/desktop/ms644950(v=vs.85).aspx Link to comment Share on other sites More sharing options...
mandrake7 Novembris 6, 2016 Author Share Novembris 6, 2016 Par GPIO jautājumu nav. Man nav skaidrs kā atrast pavedienu uz aplikāciju funkcijām un tās palaist, piemēram: Esmu palaidis softu, kas veic bilžu izdruku. Logā redzama poga Print, to nospiežot, notiek drukāšana ar jau iepriekš definētiem parametriem. Vairumam softu ir iestrādāti keyboard shortcuti un šajā gadījumā būtu jānostrādā Ctrl+P (print), taču tā nav iestrādāta. Jautājums - vai no vienas aplikācijas (paša uzrakstītas) ir iespējams palaist print pogu citā strādājošā Win aplikācijā? Iedomājos vēl tādu variantu - skripts, kas veic peles klikšķi noteiktā koordinātā, šis variants varētu strādāt. Bet tomēr - vai ir iespēja palaist pogu (funkciju) "no atmiņas"? Link to comment Share on other sites More sharing options...
itanium Novembris 7, 2016 Share Novembris 7, 2016 Jā, vai tas pats: AutoHotkey Gan pašam būs jāuzraksta tās dažas rindiņas, ko vēlies, lai šams izdara. Link to comment Share on other sites More sharing options...
usver Novembris 7, 2016 Share Novembris 7, 2016 un kā šādi klikeri tiks izsaukti uz pogas spiedienu? man jau liekas, ka gpio pogas detektēšanai + 3šās puses softa bakstīšanai vienkāršāk ir būt vienā softā ar visu loģiku iekšā - tai skaitā atrada tādu logu/neatrada, sanāca/nesanāca. Esmu rakstījis WinAPI gan uz C++, gan C# - ieliekam to kustomizāciju un miers mājās, cik tur - 30min darbs visam? Link to comment Share on other sites More sharing options...
itanium Novembris 7, 2016 Share Novembris 7, 2016 un kā šādi klikeri tiks izsaukti uz pogas spiedienu? Vai ir kāds veids kā piekļūt Windows aplikāciju funkcijām, izmantojot C++, vai Python? Autors jau minēja, ka pogas detektēšana viņam problēmas nesagādā. Par GPIO jautājumu nav. Link to comment Share on other sites More sharing options...
mandrake7 Novembris 7, 2016 Author Share Novembris 7, 2016 Ja tai softā, kas drukā bildes, būtu iestrādāta funkcija, kas atbalstītu palaist Print ar klaviatūru, tad nebūtu problēmu (kaut vai ar AutoHotKey). Par GPIO arī nav jautājumu. Jautājums paliek atklāts - kā palaist funkciju, vai trigerēt to pogu, kas ir iestrādāta softā (kuru ne jau pats esmu taisījis, softs ir pirkts)? Link to comment Share on other sites More sharing options...
itanium Novembris 7, 2016 Share Novembris 7, 2016 (labots) Vienkāršākais variants būs ar AutoHotkey un peles klikšķiem pēc koordinātēm (risinājums tikai tavam datoram/ekrānam). Labots Novembris 7, 2016 - itanium Link to comment Share on other sites More sharing options...
usver Novembris 7, 2016 Share Novembris 7, 2016 (labots) Jautājums paliek atklāts - kā palaist funkciju, vai trigerēt to pogu, kas ir iestrādāta softā (kuru ne jau pats esmu taisījis, softs ir pirkts)? Takš uzrakstīju jau, vairākas reizes esmu taisījis integrācijas ar tām pašām WinAPI funkcijām, uz kurām iedevu linkus MSDNā. pa soļiem, kā es uztaisītu jēdzīgu risinājumu: 1) Uztaisam C# projektu ar GPIO lasīšanu. Vai C++ - WinAPI tas ir pofik. 2) Pievienojam FindWindowEx() funkciju - pēc taitla, pēc loga klases. http://www.catch22.net/software/winspy-17- ar šito atrodi, kāda ir logam klase. 3) Ir tāds logs - sūtam ziņojumu tam. Nav loga - parādām atbilstošu kļūdas paziņojumu VAI palaižam to softu un sūtam šortkatu. pēc analoģijas ar šito: http://stackoverflow.com/questions/5144877/sending-ctrl-s-message-to-a-window, tur C# kods ir ar Ctrl+S. Tāda pati funkcija izsaucama uz C++, ja izmanto to. 4) Ja šortkata atbalsta nav - sameklējam čailda lodziņu (pogu) pēc atrastās parenta loga handles (tas pats FindWindowEx) un klikojam uz to. un viss. Te piemērs, kā atrast pogu (pofik, kādas viņai šobrīd koordinātes): http://stackoverflow.com/questions/20305166/trying-to-get-a-button-from-a-child-window pogas klikošana šeit - http://stackoverflow.com/questions/14962081/click-on-ok-button-of-message-box-using-winapi-in-c-sharp un nekādas hārdkodētas koordinātes, kur nedod dies', pabīdīsies lodziņš vai minimizēts/maksimizēts būs, un viss softs pa kāju.. jā ir tādas programmas, kas ieraksta un pēc tam atskaņo lietotāja ievadi viņas visas iekšēji lieto tās pašas WinAPI funkcijas, tikai neliek lietotājam vērt vaļā WinSpy++ un meklēt, kas tur iekš kā ir. Ja vajag pāris reizes uz 1 datora palaižamu prototipu, tad var uztaisīt ar tādiem, bet man liekas jocīgi vēl 1 dependenciju ieviest (ir/nav konkrētas markas klikeris instalēts, ir pieejams/nav pieejams šim profilam viņš, ir logs/nav loga..). Priekš kam, ja 1 softā var salikt visu funkcionalitāti, kas dara visu un parāda adekvātus kļūdas paziņojumus, ja nu galīgi auzas. produkcijā tādu dependenciju uzturēt būtu marasms, bet nu fiksam prototipam der, ja galīgi negribas pašam programmēt UN klikeris uztur iespēju izsaukt funkcionalitāti ar .bat vai tml failiem no softa, kas detektē fiziskās pogas spiešanu. Labots Novembris 7, 2016 - usver Link to comment Share on other sites More sharing options...
androidss Novembris 7, 2016 Share Novembris 7, 2016 ja nav noslēpums, kas tas par softu, kam nav ctrl+p? Link to comment Share on other sites More sharing options...
mandrake7 Novembris 7, 2016 Author Share Novembris 7, 2016 Paldies, usver, par jēdzīgo izklāstu! Sākumā Tavam ieteikumam nepievērsu uzmanību, jo nav bijusi pieredze ar ko tamlīdzīgu. Pēc jaunā gada pievērsīšos šim projektam nopietnāk, pagaidām tikai meklēju atsevišķus risinājumus. Link to comment Share on other sites More sharing options...
itanium Novembris 7, 2016 Share Novembris 7, 2016 un nekādas hārdkodētas koordinātes, kur nedod dies', pabīdīsies lodziņš vai minimizēts/maksimizēts būs, un viss softs pa kāju.. To var atrisināt, pirms darbību veikšanas, maksimizējot logu, bet tas viss, protams, ir ČŽ variants Link to comment Share on other sites More sharing options...
bubu Novembris 8, 2016 Share Novembris 8, 2016 (labots) To var atrisināt, pirms darbību veikšanas, maksimizējot logu, bet tas viss, protams, ir ČŽ variants Ieteikt Un tad vienu dienu nopirks jaunu monitoru, vai pieslēgs ārējo ar citu rezolūciju un visas koordinātes nomainīsies. Vai arī palaidīs kaut kādu 3rd-party toolbaru, kurš vienmēr sēdēs ekrāna augšējā daļā (vai kreisajā pusē). Daudz vienkāršāk ir atrast vajadzīgo kontroli un noklikšināt to, nevis emulēt peles darbību. Labots Novembris 8, 2016 - bubu Link to comment Share on other sites More sharing options...
Recommended Posts
Izveido kontu, vai pieraksties esošajā, lai komentētu
Jums ir jābūt šī foruma biedram, lai varētu komentēt tēmas
Izveidot jaunu kontu
Piereģistrējies un izveido jaunu kontu, tas būs viegli!
Reģistrēt jaunu kontuPierakstīties
Jums jau ir konts? Pierakstieties tajā šeit!
Pierakstīties tagad!