scroll ned og hiv det ud af koden. Det skal gøres via. win32 API'et
Synes godt om
Slettet bruger
25. november 2008 - 04:10#2
Hey kalp,
Jeg kan ikke få noget positivt til at virke med den. Er du sikker på at den kan lave tryk, hvor i en webbrowser, uden at mit program kommer i focus? dvs hvis jeg sidder og skriver i word eller spiller et spil, så vil programmet ikke pludselig overtage styringen kortvarigt?
Synes godt om
Slettet bruger
25. november 2008 - 10:53#3
Må programmet ikke komme i fokus eller må det ikke køre i baggrunden? det er ret modsigende det du siger..
Synes godt om
Slettet bruger
25. november 2008 - 14:19#4
wb, Det sværeste. Den må ikke komme i focus (dvs. den skal arbejde i baggrunden ;))
static void Main(string[] args) { new Program(); Console.Read(); } }
Den er lavet på rightclick for at teste.. Lige den kode her vil højreklikke der hvor din mus peger. uanset om det er i eller udenfor din applikation.
Synes godt om
Slettet bruger
25. november 2008 - 16:55#6
Lad os antage at mit program er minimeret eller gemt bag nogle andre programmer = working in the background og skal den skal ikke frem på skærmen og have focus. Så vil sådan en musseklik da ikke virke, da den jo bare trykker på hvad man ser på skærmen og ikke i den HWND/mit program man godt vil have
misforstod dit spørgsmål.. men har tested og lavet denne kode.. spørg hvis du ikke kan finde ud af at hive det relevante ud..
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Threading;
namespace WindowsApplication5 { public partial class Form1 : Form { public const int WM_LBUTTONDOWN = 513; public const int WM_LBUTTONUP = 514; [System.Runtime.InteropServices.DllImport("user32.dll")] static extern bool SendMessage(IntPtr hWnd, Int32 msg, Int32 wParam, Int32 lParam); public Form1() { InitializeComponent(); this.Click += new EventHandler(Form1_Click); } private void button2_Click(object sender, EventArgs e) { label1.Text = "button 2 was clicked"; } private void button1_Click(object sender, EventArgs e) { Int32 lparam = MakeLong(100, 100); SendMessage(this.Handle, WM_LBUTTONDOWN, 0, lparam); SendMessage(this.Handle, WM_LBUTTONUP, 0, lparam); } void Form1_Click(object sender, EventArgs e) { MouseEventArgs b = (MouseEventArgs)e;
Graphics graphics = this.CreateGraphics(); Brush brush = new SolidBrush(Color.Red); Font font = (Font)(new FontConverter().ConvertFromString("Arial, 12pt")); graphics.DrawString("Clicked", font, brush, b.X, b.Y); this.Update(); } static int MakeLong(int LoWord, int HiWord) { return (HiWord << 16) | (LoWord & 0xffff); } } }
Synes godt om
Slettet bruger
25. november 2008 - 23:01#8
Kan ikke få det til at virke, når jeg sætter button2 i 100, 100. Den skal kunne i en webbrowser med java trykke på et link. Fandt et her: http://www.javaonthebrain.com/java/solitaire/ hvis man nu godt vil trykke på Reset knappen. En måde at teste om ens program ikke er i focus, er vel ved at sætte en thread.sleep i button1's start og så minimere det og så se om den har gjort det når man åbner ens program igen...
Hvis det blot er et link eller noget andet "html" lignende i en webbrowser så kan man gøre det nemt. Hvis det er en applet så går jeg ikke ud fra man kan se knappen i kildekoden.
Synes godt om
Slettet bruger
27. november 2008 - 15:34#11
Men er det ikke muligt at trykke x,y inde i mit program som er minimeret og ikke har focus? hvis ja. Så kan det vel ikke have betydning hvad den skal trykke på, når jeg vil have x,y
Det har betydning fordi hvis det f.eks er en html knap i en webbrowser i din Applikation så ved jeg godt hvordan man kan klikke på den. En applet.. ved jeg ikke.
ja det er via. win32 men har ikke tid til at finde ud af funktionen:)
og ellers skal du svare på om det er et html element der skal klikkes på i den webbrowser for så ved jeg godt hvordan det kan gøres.
Synes godt om
Slettet bruger
28. november 2008 - 00:29#16
Arh det ved jeg sørme ikke. Er det ikke til at se i /solitaire linket. Vel ikke noget der haster, da jeg ikke kan finde andre som kan klare opgaven ;-)
Ellers ved jeg ikke om det ville være en anden løsning, hvis man sagde at den i stedet for at "webbrowseren...", gik ind og tog internet explorer (som som minimeret/working in the background/ude af focus) og trykkede på dens x,y koordinator? ville det så give os mulighed for ta lave det?
Synes godt om
Slettet bruger
03. december 2008 - 17:57#17
x
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.