Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Hur få parent form att fånga upp funktionstangentstryckningar.

Postades av 2004-07-12 10:40:44 - Anders Turesson, i forum vb.net, Tråden har 12 Kommentarer och lästs av 576 personer

Hur får man ett parent form att fånga upp en tryckning från en funktionstangent, t.ex. F1 för att dra igång hjälp, eller t.ex. F3 för att ngt annat. Oavsett om parent formet är aktivt eller inaktivt.

mvh // Anders


Svara

Sv: Hur få parent form att fånga upp funktionstangentstryckningar.

Postades av 2004-07-14 00:40:18 - Johan Normén

Du kan alltid slänga upp en tråd som ligger och lyssnar på tangetnbordet.

Mvh Johan


Svara

Sv: Hur få parent form att fånga upp funktionstangentstryckningar.

Postades av 2004-07-14 00:50:44 - Andreas Håkansson

Anders,

Det korrekta sättet är att registrera en global hotkey med hjälp av API anropen <b>RegisterHotKey</b> och <b>UnregisterHotKey</b>. Säg till om du behöver lite råd för hur du använder dig av dessa så ska vi se vad vi kan göra (har ingen VB.NET kod för det liggandes just nu).

Tänk på att andra program kan ha registrerat globala hotkeys, t.ex så har windows själv registrerat F1 för hjälp etc. Man kan kombinera sin hotkey med modifers så som control mm.


Svara

Sv: Hur få parent form att fånga upp funktionstangentstryckningar.

Postades av 2004-07-14 09:46:00 - Anders Turesson

Tack Andreas, jag ska labba lite med API anropen <b>RegisterHotKey</b> och <b>UnregisterHotKey</b>. så får vi se om jag kan klura ut hur det funkar.
mvh // Anders


Svara

Sv: Hur få parent form att fånga upp funktionstangentstryckningar.

Postades av 2004-07-14 12:58:50 - Johan Normén

Hum... Är inte de bundna till Operativet? Är själv allergisk mot att skapa apps som kräver APIer från ett fast OS. Men visst om man vill så...

Declare Function RegisterHotKey Lib "user32" (ByVal hwnd As Integer, ByVal id As Integer, ByVal fsModifiers As Integer, ByVal vk As Integer) As Integer

Annars hade jag nog byggt en egen rutin som läser av vad jag trycker på så länge applikationen är öppen och utför det jag vill baserat på de olika knapparna. Har dock inte kodat så mkt win forms så det finns säkert bättre platformsoberoende sätt.

Mvh Johan



Svara

Sv: Hur få parent form att fånga upp funktionstangentstryckningar.

Postades av 2004-07-14 21:23:46 - Andreas Håkansson

Johan,

Det här med att inte använda API tycker jag är trams. Hur ofta händer det att du skapar en applikation som du kommer att köra på mer än ett operativsystem? Självklart är det en bedöming man måste göra från applikation till applikation var och vad den skall göra... finns aboslut ingen anlending att krångla till det om det finns ett API och applikationen och är planerat att sjösättas i en Windowsmiljö.


Svara

Sv: Hur få parent form att fånga upp funktionstangentstryckningar.

Postades av 2004-07-14 21:54:15 - Roger Alsing

<b>Hum... Är inte de bundna till Operativet?</b>

om man kör i "WINDOWS.Forms" så har man väl redan där sagt att det är just windows man vill köra

hela det namespacet är ju omöjligt att porta 100% korrekt,
alla kontroller/fönster i windows.forms har ju tex wndproc och createparams metoder som är väldigt väldigt bundna mot just windows.

.net må vara plattformsoberoende , men windows.forms är det garanterat inte..

//Roger

(ok jag vet att go-mono och dotgnu.org har semifungerande winforms implementeringar , men ingen av dom kommer kunna hantera wndproc och createparams korrekt)


Svara

Sv: Hur få parent form att fånga upp funktionstangentstryckningar.

Postades av 2004-07-15 02:39:44 - Johan Normén

Roggan.

Vartför skulle de inte kunna göra det?

Mvh Johan


Svara

Sv: Hur få parent form att fånga upp funktionstangentstryckningar.

Postades av 2004-07-15 02:48:44 - Johan Normén

Andreas.

Du får tycka det är såå mycket trams du vill... För mig finns det dialketer, och så länge de exister utgår jag från att suporta de olika varianterna så mycket det bara går. Det är lojalitet för mig. Men det är upp till var och en att välja hurt lojal man vill varta. Och visst det är kravet bundet till ett OS så kan man binda till det API man vill... Men jag personligen vinner mer på att bygga system som är vänliga för alla andra system nu och i framtiden.

Jag vill att de olika dialekterna skall fungera ihop, och strävar efter det då jag tror det ger en vinst i långa loppet... Att låsa sig ger begränsningar. Vill man ha dem, så bygger man efter dem. men som sagt det är min personliga åsikt. Jag har levt väl på att vara lojal mot alla även de som skull anses som mina fiender, och de hjar vart lojala mot mig, vilket gjort att informationsbytet vart enormt värdefullt.

Så man gör som man själv vill. Jag säger bara att jag skulle byggt det mer platforsmoberoende för ja vill nå flera kunder. Linux får tyvärr en kraftig ökning dag för dag, precis som MS så vill de få in pengar och få vint på det de gör, samma gäller mig. Även om jag är mer lojal mot MS än Linux idag så måste jag ändå tänka ett steg längre. Vad händer den dagn så ev MS inte längre har dominans för att Linux råkat ta över? (Får på ett sätt hoppas att det inte blir så, men på ett annat kanske det är nyttigt för vår verksamhet. Vi måste ju tänka mer på oss själva. Men även om Linx skulle ta över, hoppas jag MS lyckas kontra i näste steg at tåterigen ta över för att skapa en bra balans.)

Jag brinner för .Net så länge jag kan tjäna penger på dess platform är jag glad att den kan fungera på så många kunders krav som möjligt. Så fungerar det.

Mvh Johan


Svara

Sv: Hur få parent form att fånga upp funktionstangentstryckningar.

Postades av 2004-07-15 11:17:45 - Roger Alsing

därför att meddelandena är bundna mot operativet.
visst går det säkert emulera vissa meddelanden .

MEN

det finns meddelanden som tex refererar till native GDI resurser ,
och för att kunna emulera de bitarna så måste dom emulera hela windowsgrafikhantering .
möjligt? ja kanske ... troligt? näe

//Roger


Svara

Sv: Hur få parent form att fånga upp funktionstangentstryckningar.

Postades av 2004-07-15 13:28:34 - Andreas Håkansson

Johan,

Du tänker nog på tog för snävt här. För det första så snackar du om dialekter, är inte p/Invoke stödet också en del av denna dialekt? Men den med relevanta saken här är att man visst kan använda p/Invoke från sin applikation på ett bra sätt genom att inte direkt anropa API deklaration utan att först wrappa den i en .NET wrapper och flytta dessa till en egen assembly.

Den dagen då du finner att du måste köra din applikation på *nix så är det bara att wrappa om motsvarande native anrop i samma wrapper (samma interface utåt detta) och ersätta assemblyn med den nya och så är det fritt fram.

Det är som du säger, du har nästan ingen erfarenhet av WinForms för då skulle du veta att det finns på tok för många begränsingar där som gör att man måste använda sig av lite API eller lyssna direkt på message pumpen efter specifika meddelanden.

Jag säger inte att man skall hoppa på första bästa API som man hittar om det går att lösa med .NET klasserna, men det är ännu för mycket som inte finns där i (tror inte ens att 2.0 kommer att leverera en tillräckligt bra komplettering -- snarare kring longhorn tiden) som gör att man måste gå "fel" väg.

Med ASP.NET är det en helt annan sak, men visst du kan skriva en webbapplikation som kommer att behöva arbeta väldigt närma med operativsystems tjänsten och då är man på samma ställa igen - p/Invoke.

<b>PS.</b> Jag vill påpeka att jag inte tycker du är tramsig =) utan att hysterin som att inte använda API allt från .NET är tramsig.


Svara

Sv: Hur få parent form att fånga upp funktionstangentstryckningar.

Postades av 2004-07-15 14:08:27 - Johan Normén

Andreas.

Kraven är oftast det som bestämmer hur bunden man får vara eller inte vara.
Wrappers fungerar fint, men bara om man vet att de går att ändra på. Så länge man vet att applikationen bara skall köras på Windows så visst då skulle jag oxå använt dess apier och byggt en hel del wrappers. Eller direkt kört DLL import på mina metoder. De winform apps jag byggt har klarat av en hel del utan att jag behövt nyttja Win APIerna. Vad syftar du på att jag inte skulle kunna göra utan att nyttja wrappers? Skall på en skön västkusten semester nu. phu.. äntligen. Jag är mer en utvecklare som föärsöker binda mig så lite som möjligt till att låsa fast mig. Men som sagt jag bygger mest web apps och det finns ju en del förklaringar till varför också. Vi hörs...

Tycker absolut man skall köra med de inbyggda APIer som finns om applikationen endast är tänkt att fungera för ett OS. Som det ser ut nu kan det ju dröja några år innan man ens behöver anpassa dem för mycket för att fungerar för andra system. Det beror ju på applikationen och arkitekturens planderade livslängd. Do what ever you want thats what development is all about! :-)

Take care. Vi hörs när jag är tillbaka om en vecka...

Mvh Johan


Svara

Sv: Hur få parent form att fånga upp funktionstangentstryckningar.

Postades av 2004-07-16 00:42:09 - Andreas Håkansson

Johan,

<b>Vad syftar du på att jag inte skulle kunna göra utan att nyttja wrappers?</b>

För att inte göra det långrandigt innan din semester så kan vi nöja oss med PlaySound =) Trevlig semester!!!


Svara

Nyligen

  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper
  • 16:36 Allt du behöver veta om keramiskt
  • 16:14 Vem anlitar man egentligen när tak

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 722
27 958
271 751
655
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies