Autor Beitrag
DaViNcHi
Hält's aus hier
Beiträge: 13



BeitragVerfasst: Do 20.11.08 22:43 
hallo zusammen!

wie mein titel schon sagt würde ich gerne firefox ansteuern um darüber an den quelltext der aktuellen seite zu kommen und den dann bspw in einer textbox ausgeben.
das es einfachere möglichkeiten gibt an den quelltext einer internet seite zu kommen ist mir klar aber da man sich auf dieser seite einloggen muss und ich nicht möchte das dies über das programm geschieht ist das leider die einzige möglichkeit. oder hat jemand noch eine andere idee?

ich hab mal ein bisschen was versucht zusammenzuschreiben aber das funktioniert nicht wirklich...
also ich habe versucht einem firefox fenster die tasten kombinationen strg+u , strg+a und strg+c zu senden aber am ende habe ich nicht wirklich etwas im zwischenspeicher

ausblenden volle Höhe C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
class Program
    {
        const int WM_KEYUP = 0x0101;
        const int WM_KEYDOWN =0x0100;
        const int VK_CONTROL = 0x11;
        const int KEY_A = 0x41;
        const int KEY_U = 0x55;
        const int KEY_C = 0x43;

        [DllImport("user32.dll")]
        extern static int PostMessage(int hWnd, int Message, int wParam, int lParam);

        static void Main(string[] args)
        {
            int handle=-1;
            
            Process[] processes = Process.GetProcessesByName("firefox");
            foreach (Process p in processes)
            {
                 handle = p.MainWindowHandle.ToInt32();
            }
            PostMessage(handle, WM_KEYDOWN, 00);
            PostMessage(handle, VK_CONTROL, 00);
            PostMessage(handle, WM_KEYDOWN, 00);
            PostMessage(handle, KEY_U, 00);
            PostMessage(handle, WM_KEYUP, 00);
            PostMessage(handle, WM_KEYUP, 00);
            
            PostMessage(handle, WM_KEYDOWN, 00);
            PostMessage(handle, VK_CONTROL, 00);
            PostMessage(handle, WM_KEYDOWN, 00);
            PostMessage(handle, KEY_A, 00);
            PostMessage(handle, WM_KEYUP, 00);
            PostMessage(handle, WM_KEYUP, 00);

            PostMessage(handle, WM_KEYDOWN, 00);
            PostMessage(handle, VK_CONTROL, 00);
            PostMessage(handle, WM_KEYDOWN, 00);
            PostMessage(handle, KEY_C, 00);
            PostMessage(handle, WM_KEYUP, 00);
            PostMessage(handle, WM_KEYUP, 00);

        }
        
       
    }



kann mir jemand vllt sagen woran das liegt oder wie ich das besser/richtig machen kann? hab noch nicht wirklich viel erfahrung mit c# aber das sieht man sicher schon an meinem code :oops:
wäre echt super wenn mir jemand helfen kann :wink:
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19326
Erhaltene Danke: 1749

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Fr 21.11.08 09:26 
Du übergibst deiner Botschaft WM_KEYDOWN ja gar keine richtigen Parameter, so drückst du quasi die Taste nix (0)...
Stattdessen versuchst du danach einen Tastencode als Windowsbotschaft zu senden.

Du solltest erst einmal verstehen was PostMessage eigentlich macht. Weißt du überhaupt wie Windowsbotschaften funktionieren? Wenn nicht, schau dir zuerst das an. Wenn ja, schau dir die Dokumentation zu WM_KEYDOWN an:
msdn.microsoft.com/e...ms646280(VS.85).aspx