Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.de  
   
Forentreff 2012     
Bücher-Shop mit Amazon (Buchkategorien)C++ : Referenzen zu C++ : C++ Builder : Visual C++ : C# : Java : Spieleprogrammierung : Systemprogrammierung Linux : Software-Entwicklung : .NET : Compilertechnik : Algorithmen & Datenstrukturen : Objektorientierung : Entwurfsmuster : UML : eXtreme Programming : Scrum : Projektmanagement : Software-Testing : Datenbanken : Tom DeMarco : Dilbert : User Friendly
C/C++ Forum :: FAQ - C++ Builder (VCL/CLX) ::  System - Text an fremde Fenster senden  
Gehen Sie zu Seite 1, 2  Weiter
  Zeige alle Beiträge auf einer Seite
Auf Beitrag antworten
Autor Nachricht
Hellmaster1024_
Unregistrierter




Beitrag Hellmaster1024_ Unregistrierter 18:30:00 05.09.2002   Titel:   System - Text an fremde Fenster senden            Zitieren

ich habe letztens eine funktion gesucht um einen string an ein anderes programm zu senden ... z.b. für die ms-dos eingabeaufforderung! oder andere programme!
da ich leider keien funktion gefunden habe habe ich mal eine geschrieben .. und da es sehr viel arbeit war die ganzen tastaturcodes rauszusuchen wollte ich anderen diese arbeit erspaaren

einfach die kunktion aufrufen und namen des fensters und den text übergeben ...
C/C++ Code:
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
TextSend("Unbenannt - Editor","Dies ist ein test!!\n");

void __fastcall TForm1::TextSend(AnsiString fenster,AnsiString Text)
{
  int x;
  int key=' ',gross,altgr;
  HWND window=FindWindow(0,fenster.c_str());
  SetForegroundWindow(window);
  for(x=0;x<strlen(Text.c_str());x++)
  {
    switch(Text.c_str()[x])
    {
      case'0':{key='0';gross=0;altgr=0;break;}
      case'1':{key='1';gross=0;altgr=0;break;}
      case'2':{key='2';gross=0;altgr=0;break;}
      case'3':{key='3';gross=0;altgr=0;break;}
      case'4':{key='4';gross=0;altgr=0;break;}
      case'5':{key='5';gross=0;altgr=0;break;}
      case'6':{key='6';gross=0;altgr=0;break;}
      case'7':{key='7';gross=0;altgr=0;break;}
      case'8':{key='8';gross=0;altgr=0;break;}
      case'9':{key='9';gross=0;altgr=0;break;}

      case'a':{key='A';gross=0;altgr=0;break;}
      case'b':{key='B';gross=0;altgr=0;break;}
      case'c':{key='C';gross=0;altgr=0;break;}
      case'd':{key='D';gross=0;altgr=0;break;}
      case'e':{key='E';gross=0;altgr=0;break;}
      case'f':{key='F';gross=0;altgr=0;break;}
      case'g':{key='G';gross=0;altgr=0;break;}
      case'h':{key='H';gross=0;altgr=0;break;}
      case'i':{key='I';gross=0;altgr=0;break;}
      case'j':{key='J';gross=0;altgr=0;break;}
      case'k':{key='K';gross=0;altgr=0;break;}
      case'l':{key='L';gross=0;altgr=0;break;}
      case'm':{key='M';gross=0;altgr=0;break;}
      case'n':{key='N';gross=0;altgr=0;break;}
      case'o':{key='O';gross=0;altgr=0;break;}
      case'p':{key='P';gross=0;altgr=0;break;}
      case'q':{key='Q';gross=0;altgr=0;break;}
      case'r':{key='R';gross=0;altgr=0;break;}
      case's':{key='S';gross=0;altgr=0;break;}
      case't':{key='T';gross=0;altgr=0;break;}
      case'u':{key='U';gross=0;altgr=0;break;}
      case'v':{key='V';gross=0;altgr=0;break;}
      case'w':{key='W';gross=0;altgr=0;break;}
      case'x':{key='X';gross=0;altgr=0;break;}
      case'y':{key='Y';gross=0;altgr=0;break;}
      case'z':{key='Z';gross=0;altgr=0;break;}
      case'ß':{key=219;gross=0;altgr=0;break;}
      case'ä':{key=222;gross=0;altgr=0;break;}
      case'ü':{key=186;gross=0;altgr=0;break;}
      case'ö':{key=192;gross=0;altgr=0;break;}

      case'A':{key='A';gross=1;altgr=0;break;}
      case'B':{key='B';gross=1;altgr=0;break;}
      case'C':{key='C';gross=1;altgr=0;break;}
      case'D':{key='D';gross=1;altgr=0;break;}
      case'E':{key='E';gross=1;altgr=0;break;}
      case'F':{key='F';gross=1;altgr=0;break;}
      case'G':{key='G';gross=1;altgr=0;break;}
      case'H':{key='H';gross=1;altgr=0;break;}
      case'I':{key='I';gross=1;altgr=0;break;}
      case'J':{key='J';gross=1;altgr=0;break;}
      case'K':{key='K';gross=1;altgr=0;break;}
      case'L':{key='L';gross=1;altgr=0;break;}
      case'M':{key='M';gross=1;altgr=0;break;}
      case'N':{key='N';gross=1;altgr=0;break;}
      case'O':{key='O';gross=1;altgr=0;break;}
      case'P':{key='P';gross=1;altgr=0;break;}
      case'Q':{key='Q';gross=1;altgr=0;break;}
      case'R':{key='R';gross=1;altgr=0;break;}
      case'S':{key='S';gross=1;altgr=0;break;}
      case'T':{key='T';gross=1;altgr=0;break;}
      case'U':{key='U';gross=1;altgr=0;break;}
      case'V':{key='V';gross=1;altgr=0;break;}
      case'W':{key='W';gross=1;altgr=0;break;}
      case'X':{key='X';gross=1;altgr=0;break;}
      case'Y':{key='Y';gross=1;altgr=0;break;}
      case'Z':{key='Z';gross=1;altgr=0;break;}
      case'?':{key=219;gross=1;altgr=0;break;}
      case'Ä':{key=222;gross=1;altgr=0;break;}
      case'Ü':{key=186;gross=1;altgr=0;break;}
      case'Ö':{key=192;gross=1;altgr=0;break;}
      case'µ':{key='M';gross=0;altgr=1;break;}

      case'=':{key='0';gross=1;altgr=0;break;}
      case'!':{key='1';gross=1;altgr=0;break;}
      case'"':{key='2';gross=1;altgr=0;break;}
      case'§':{key='3';gross=1;altgr=0;break;}
      case'$':{key='4';gross=1;altgr=0;break;}
      case'%':{key='5';gross=1;altgr=0;break;}
      case'&':{key='6';gross=1;altgr=0;break;}
      case'/':{key='7';gross=1;altgr=0;break;}
      case'(':{key='8';gross=1;altgr=0;break;}
      case')':{key='9';gross=1;altgr=0;break;}

      case'+':{key=187;gross=0;altgr=0;break;}
      case'-':{key=189;gross=0;altgr=0;break;}
      case'.':{key=190;gross=0;altgr=0;break;}
      case',':{key=188;gross=0;altgr=0;break;}
      case'#':{key=191;gross=0;altgr=0;break;}

      case'*':{key=187;gross=1;altgr=0;break;}
      case'_':{key=189;gross=1;altgr=0;break;}
      case':':{key=190;gross=1;altgr=0;break;}
      case';':{key=188;gross=1;altgr=0;break;}
      case'\'':{key=191;gross=1;altgr=0;break;}
      case'´':{key=221;gross=1;altgr=0;break;}
      case'~':{key=191;gross=1;altgr=1;break;}

      case'}':{key='0';gross=0;altgr=1;break;}
      case'²':{key='2';gross=0;altgr=1;break;}
      case'³':{key='3';gross=0;altgr=1;break;}
      case'{':{key='7';gross=0;altgr=1;break;}
      case'[':{key='8';gross=0;altgr=1;break;}
      case']':{key='9';gross=0;altgr=1;break;}
      case'\\':{key=219;gross=0;altgr=1;break;}
      case' ':{key=' ';gross=0;altgr=0;break;}

      case'^':{key=220;gross=0;altgr=0;break;}
      case'°':{key=220;gross=1;altgr=0;break;}
      case'<':{key=226;gross=0;altgr=0;break;}
      case'>':{key=226;gross=1;altgr=0;break;}
      case'|':{key=226;gross=0;altgr=1;break;}
      case'\n':{key=VK_RETURN;gross=0;altgr=0;break;}
    }

    if(altgr==1)keybd_event(VK_RMENU, 0, 0, NULL);
    if(gross==1)keybd_event(VK_SHIFT, 0, 0, NULL);
    keybd_event(key, 0, 0, NULL);
    keybd_event(key, 0, KEYEVENTF_KEYUP, 0);
    if(gross==1)keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0);
    if(altgr==1)keybd_event(VK_RMENU, 0, KEYEVENTF_KEYUP, 0);
  }
   if(0==strlen(Text.c_str()))
   {
     keybd_event(' ', 0, 0, NULL);
     keybd_event(' ', 0, KEYEVENTF_KEYUP, 0);
   }
}
C/C++ Code:
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
TextSend("Unbenannt - Editor","Dies ist ein test!!\n");

void __fastcall TForm1::TextSend(AnsiString fenster,AnsiString Text)
{
int x;
int key=' ',gross,altgr;
HWND window=FindWindow(0,fenster.c_str());
SetForegroundWindow(window);
for(x=0;x<strlen(Text.c_str());x++)
{
switch(Text.c_str()[x])
{
case'0':{key='0';gross=0;altgr=0;break;}
case'1':{key='1';gross=0;altgr=0;break;}
case'2':{key='2';gross=0;altgr=0;break;}
case'3':{key='3';gross=0;altgr=0;break;}
case'4':{key='4';gross=0;altgr=0;break;}
case'5':{key='5';gross=0;altgr=0;break;}
case'6':{key='6';gross=0;altgr=0;break;}
case'7':{key='7';gross=0;altgr=0;break;}
case'8':{key='8';gross=0;altgr=0;break;}
case'9':{key='9';gross=0;altgr=0;break;}

case'a':{key='A';gross=0;altgr=0;break;}
case'b':{key='B';gross=0;altgr=0;break;}
case'c':{key='C';gross=0;altgr=0;break;}
case'd':{key='D';gross=0;altgr=0;break;}
case'e':{key='E';gross=0;altgr=0;break;}
case'f':{key='F';gross=0;altgr=0;break;}
case'g':{key='G';gross=0;altgr=0;break;}
case'h':{key='H';gross=0;altgr=0;break;}
case'i':{key='I';gross=0;altgr=0;break;}
case'j':{key='J';gross=0;altgr=0;break;}
case'k':{key='K';gross=0;altgr=0;break;}
case'l':{key='L';gross=0;altgr=0;break;}
case'm':{key='M';gross=0;altgr=0;break;}
case'n':{key='N';gross=0;altgr=0;break;}
case'o':{key='O';gross=0;altgr=0;break;}
case'p':{key='P';gross=0;altgr=0;break;}
case'q':{key='Q';gross=0;altgr=0;break;}
case'r':{key='R';gross=0;altgr=0;break;}
case's':{key='S';gross=0;altgr=0;break;}
case't':{key='T';gross=0;altgr=0;break;}
case'u':{key='U';gross=0;altgr=0;break;}
case'v':{key='V';gross=0;altgr=0;break;}
case'w':{key='W';gross=0;altgr=0;break;}
case'x':{key='X';gross=0;altgr=0;break;}
case'y':{key='Y';gross=0;altgr=0;break;}
case'z':{key='Z';gross=0;altgr=0;break;}
case'ß':{key=219;gross=0;altgr=0;break;}
case'ä':{key=222;gross=0;altgr=0;break;}
case'ü':{key=186;gross=0;altgr=0;break;}
case'ö':{key=192;gross=0;altgr=0;break;}

case'A':{key='A';gross=1;altgr=0;break;}
case'B':{key='B';gross=1;altgr=0;break;}
case'C':{key='C';gross=1;altgr=0;break;}
case'D':{key='D';gross=1;altgr=0;break;}
case'E':{key='E';gross=1;altgr=0;break;}
case'F':{key='F';gross=1;altgr=0;break;}
case'G':{key='G';gross=1;altgr=0;break;}
case'H':{key='H';gross=1;altgr=0;break;}
case'I':{key='I';gross=1;altgr=0;break;}
case'J':{key='J';gross=1;altgr=0;break;}
case'K':{key='K';gross=1;altgr=0;break;}
case'L':{key='L';gross=1;altgr=0;break;}
case'M':{key='M';gross=1;altgr=0;break;}
case'N':{key='N';gross=1;altgr=0;break;}
case'O':{key='O';gross=1;altgr=0;break;}
case'P':{key='P';gross=1;altgr=0;break;}
case'Q':{key='Q';gross=1;altgr=0;break;}
case'R':{key='R';gross=1;altgr=0;break;}
case'S':{key='S';gross=1;altgr=0;break;}
case'T':{key='T';gross=1;altgr=0;break;}
case'U':{key='U';gross=1;altgr=0;break;}
case'V':{key='V';gross=1;altgr=0;break;}
case'W':{key='W';gross=1;altgr=0;break;}
case'X':{key='X';gross=1;altgr=0;break;}
case'Y':{key='Y';gross=1;altgr=0;break;}
case'Z':{key='Z';gross=1;altgr=0;break;}
case'?':{key=219;gross=1;altgr=0;break;}
case'Ä':{key=222;gross=1;altgr=0;break;}
case'Ü':{key=186;gross=1;altgr=0;break;}
case'Ö':{key=192;gross=1;altgr=0;break;}
case'µ':{key='M';gross=0;altgr=1;break;}

case'=':{key='0';gross=1;altgr=0;break;}
case'!':{key='1';gross=1;altgr=0;break;}
case'"':{key='2';gross=1;altgr=0;break;}
case'§':{key='3';gross=1;altgr=0;break;}
case'$':{key='4';gross=1;altgr=0;break;}
case'%':{key='5';gross=1;altgr=0;break;}
case'&':{key='6';gross=1;altgr=0;break;}
case'/':{key='7';gross=1;altgr=0;break;}
case'(':{key='8';gross=1;altgr=0;break;}
case')':{key='9';gross=1;altgr=0;break;}

case'+':{key=187;gross=0;altgr=0;break;}
case'-':{key=189;gross=0;altgr=0;break;}
case'.':{key=190;gross=0;altgr=0;break;}
case',':{key=188;gross=0;altgr=0;break;}
case'#':{key=191;gross=0;altgr=0;break;}

case'*':{key=187;gross=1;altgr=0;break;}
case'_':{key=189;gross=1;altgr=0;break;}
case':':{key=190;gross=1;altgr=0;break;}
case';':{key=188;gross=1;altgr=0;break;}
case'\'':{key=191;gross=1;altgr=0;break;}
case'´':{key=221;gross=1;altgr=0;break;}
case'~':{key=191;gross=1;altgr=1;break;}

case'}':{key='0';gross=0;altgr=1;break;}
case'²':{key='2';gross=0;altgr=1;break;}
case'³':{key='3';gross=0;altgr=1;break;}
case'{':{key='7';gross=0;altgr=1;break;}
case'[':{key='8';gross=0;altgr=1;break;}
case']':{key='9';gross=0;altgr=1;break;}
case'\\':{key=219;gross=0;altgr=1;break;}
case' ':{key=' ';gross=0;altgr=0;break;}

case'^':{key=220;gross=0;altgr=0;break;}
case'°':{key=220;gross=1;altgr=0;break;}
case'<':{key=226;gross=0;altgr=0;break;}
case'>':{key=226;gross=1;altgr=0;break;}
case'|':{key=226;gross=0;altgr=1;break;}
case'\n':{key=VK_RETURN;gross=0;altgr=0;break;}
}

if(altgr==1)keybd_event(VK_RMENU, 0, 0, NULL);
if(gross==1)keybd_event(VK_SHIFT, 0, 0, NULL);
keybd_event(key, 0, 0, NULL);
keybd_event(key, 0, KEYEVENTF_KEYUP, 0);
if(gross==1)keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0);
if(altgr==1)keybd_event(VK_RMENU, 0, KEYEVENTF_KEYUP, 0);
}
if(0==strlen(Text.c_str()))
{
keybd_event(' ', 0, 0, NULL);
keybd_event(' ', 0, KEYEVENTF_KEYUP, 0);
}
}
C/C++ Code:
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
TextSend("Unbenannt - Editor","Dies ist ein test!!\n");

void __fastcall TForm1::TextSend(AnsiString fenster,AnsiString Text)
{
  int x;
  int key=' ',gross,altgr;
  HWND window=FindWindow(0,fenster.c_str());
  SetForegroundWindow(window);
  for(x=0;x<strlen(Text.c_str());x++)
  {
    switch(Text.c_str()[x])
    {
      case'0':{key='0';gross=0;altgr=0;break;}
      case'1':{key='1';gross=0;altgr=0;break;}
      case'2':{key='2';gross=0;altgr=0;break;}
      case'3':{key='3';gross=0;altgr=0;break;}
      case'4':{key='4';gross=0;altgr=0;break;}
      case'5':{key='5';gross=0;altgr=0;break;}
      case'6':{key='6';gross=0;altgr=0;break;}
      case'7':{key='7';gross=0;altgr=0;break;}
      case'8':{key='8';gross=0;altgr=0;break;}
      case'9':{key='9';gross=0;altgr=0;break;}

      case'a':{key='A';gross=0;altgr=0;break;}
      case'b':{key='B';gross=0;altgr=0;break;}
      case'c':{key='C';gross=0;altgr=0;break;}
      case'd':{key='D';gross=0;altgr=0;break;}
      case'e':{key='E';gross=0;altgr=0;break;}
      case'f':{key='F';gross=0;altgr=0;break;}
      case'g':{key='G';gross=0;altgr=0;break;}
      case'h':{key='H';gross=0;altgr=0;break;}
      case'i':{key='I';gross=0;altgr=0;break;}
      case'j':{key='J';gross=0;altgr=0;break;}
      case'k':{key='K';gross=0;altgr=0;break;}
      case'l':{key='L';gross=0;altgr=0;break;}
      case'm':{key='M';gross=0;altgr=0;break;}
      case'n':{key='N';gross=0;altgr=0;break;}
      case'o':{key='O';gross=0;altgr=0;break;}
      case'p':{key='P';gross=0;altgr=0;break;}
      case'q':{key='Q';gross=0;altgr=0;break;}
      case'r':{key='R';gross=0;altgr=0;break;}
      case's':{key='S';gross=0;altgr=0;break;}
      case't':{key='T';gross=0;altgr=0;break;}
      case'u':{key='U';gross=0;altgr=0;break;}
      case'v':{key='V';gross=0;altgr=0;break;}
      case'w':{key='W';gross=0;altgr=0;break;}
      case'x':{key='X';gross=0;altgr=0;break;}
      case'y':{key='Y';gross=0;altgr=0;break;}
      case'z':{key='Z';gross=0;altgr=0;break;}
      case'ß':{key=219;gross=0;altgr=0;break;}
      case'ä':{key=222;gross=0;altgr=0;break;}
      case'ü':{key=186;gross=0;altgr=0;break;}
      case'ö':{key=192;gross=0;altgr=0;break;}

      case'A':{key='A';gross=1;altgr=0;break;}
      case'B':{key='B';gross=1;altgr=0;break;}
      case'C':{key='C';gross=1;altgr=0;break;}
      case'D':{key='D';gross=1;altgr=0;break;}
      case'E':{key='E';gross=1;altgr=0;break;}
      case'F':{key='F';gross=1;altgr=0;break;}
      case'G':{key='G';gross=1;altgr=0;break;}
      case'H':{key='H';gross=1;altgr=0;break;}
      case'I':{key='I';gross=1;altgr=0;break;}
      case'J':{key='J';gross=1;altgr=0;break;}
      case'K':{key='K';gross=1;altgr=0;break;}
      case'L':{key='L';gross=1;altgr=0;break;}
      case'M':{key='M';gross=1;altgr=0;break;}
      case'N':{key='N';gross=1;altgr=0;break;}
      case'O':{key='O';gross=1;altgr=0;break;}
      case'P':{key='P';gross=1;altgr=0;break;}
      case'Q':{key='Q';gross=1;altgr=0;break;}
      case'R':{key='R';gross=1;altgr=0;break;}
      case'S':{key='S';gross=1;altgr=0;break;}
      case'T':{key='T';gross=1;altgr=0;break;}
      case'U':{key='U';gross=1;altgr=0;break;}
      case'V':{key='V';gross=1;altgr=0;break;}
      case'W':{key='W';gross=1;altgr=0;break;}
      case'X':{key='X';gross=1;altgr=0;break;}
      case'Y':{key='Y';gross=1;altgr=0;break;}
      case'Z':{key='Z';gross=1;altgr=0;break;}
      case'?':{key=219;gross=1;altgr=0;break;}
      case'Ä':{key=222;gross=1;altgr=0;break;}
      case'Ü':{key=186;gross=1;altgr=0;break;}
      case'Ö':{key=192;gross=1;altgr=0;break;}
      case'µ':{key='M';gross=0;altgr=1;break;}

      case'=':{key='0';gross=1;altgr=0;break;}
      case'!':{key='1';gross=1;altgr=0;break;}
      case'"':{key='2';gross=1;altgr=0;break;}
      case'§':{key='3';gross=1;altgr=0;break;}
      case'$':{key='4';gross=1;altgr=0;break;}
      case'%':{key='5';gross=1;altgr=0;break;}
      case'&':{key='6';gross=1;altgr=0;break;}
      case'/':{key='7';gross=1;altgr=0;break;}
      case'(':{key='8';gross=1;altgr=0;break;}
      case')':{key='9';gross=1;altgr=0;break;}

      case'+':{key=187;gross=0;altgr=0;break;}
      case'-':{key=189;gross=0;altgr=0;break;}
      case'.':{key=190;gross=0;altgr=0;break;}
      case',':{key=188;gross=0;altgr=0;break;}
      case'#':{key=191;gross=0;altgr=0;break;}

      case'*':{key=187;gross=1;altgr=0;break;}
      case'_':{key=189;gross=1;altgr=0;break;}
      case':':{key=190;gross=1;altgr=0;break;}
      case';':{key=188;gross=1;altgr=0;break;}
      case'\'':{key=191;gross=1;altgr=0;break;}
      case'´':{key=221;gross=1;altgr=0;break;}
      case'~':{key=191;gross=1;altgr=1;break;}

      case'}':{key='0';gross=0;altgr=1;break;}
      case'²':{key='2';gross=0;altgr=1;break;}
      case'³':{key='3';gross=0;altgr=1;break;}
      case'{':{key='7';gross=0;altgr=1;break;}
      case'[':{key='8';gross=0;altgr=1;break;}
      case']':{key='9';gross=0;altgr=1;break;}
      case'\\':{key=219;gross=0;altgr=1;break;}
      case' ':{key=' ';gross=0;altgr=0;break;}

      case'^':{key=220;gross=0;altgr=0;break;}
      case'°':{key=220;gross=1;altgr=0;break;}
      case'<':{key=226;gross=0;altgr=0;break;}
      case'>':{key=226;gross=1;altgr=0;break;}
      case'|':{key=226;gross=0;altgr=1;break;}
      case'\n':{key=VK_RETURN;gross=0;altgr=0;break;}
    }

    if(altgr==1)keybd_event(VK_RMENU, 0, 0, NULL);
    if(gross==1)keybd_event(VK_SHIFT, 0, 0, NULL);
    keybd_event(key, 0, 0, NULL);
    keybd_event(key, 0, KEYEVENTF_KEYUP, 0);
    if(gross==1)keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0);
    if(altgr==1)keybd_event(VK_RMENU, 0, KEYEVENTF_KEYUP, 0);
  }
   if(0==strlen(Text.c_str()))
   {
     keybd_event(' ', 0, 0, NULL);
     keybd_event(' ', 0, KEYEVENTF_KEYUP, 0);
   }
}


Edit:
Bitte die Code-Tags benutzen. Danke!


Zuletzt bearbeitet von Jansen am 21:32:55 24.02.2004, insgesamt 1-mal bearbeitet
Werbeunterbrechung
WebFritzi
Mitglied

Benutzerprofil
Anmeldungsdatum: 23.09.2001
Beiträge: 9879
Beitrag WebFritzi Mitglied 20:43:00 05.09.2002   Titel:              Zitieren

C/C++ Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
void TextSend(AnsiString wintext, AnsiString text)
{
  HWND hwndPrev  = GetForegroundWindow();
  HWND hwnd      = FindWindow(0, wintext.c_str());
  SetForegroundWindow(hwnd);

  DWORD idAttach   = GetCurrentThreadId();
  DWORD idAttachTo = GetWindowThreadProcessId(hwnd, NULL);
  if( AttachThreadInput(idAttach, idAttachTo, TRUE) == FALSE )
     ShowMessage("ERROR: AttachThreadInput\(\)");

  HWND hwndFocus = GetFocus();
  if(hwndFocus != FALSE)
     SendMessage(hwndFocus, WM_SETTEXT, 0, (LPARAM)(LPCTSTR)text.c_str());

  if( AttachThreadInput(idAttach, idAttachTo, FALSE) == FALSE )
     ShowMessage("ERROR: AttachThreadInput\(\)");

  SetForegroundWindow(hwndPrev);
}
C/C++ Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
void TextSend(AnsiString wintext, AnsiString text)
{
HWND hwndPrev = GetForegroundWindow();
HWND hwnd = FindWindow(0, wintext.c_str());
SetForegroundWindow(hwnd);

DWORD idAttach = GetCurrentThreadId();
DWORD idAttachTo = GetWindowThreadProcessId(hwnd, NULL);
if( AttachThreadInput(idAttach, idAttachTo, TRUE) == FALSE )
ShowMessage("ERROR: AttachThreadInput\(\)");

HWND hwndFocus = GetFocus();
if(hwndFocus != FALSE)
SendMessage(hwndFocus, WM_SETTEXT, 0, (LPARAM)(LPCTSTR)text.c_str());

if( AttachThreadInput(idAttach, idAttachTo, FALSE) == FALSE )
ShowMessage("ERROR: AttachThreadInput\(\)");

SetForegroundWindow(hwndPrev);
}
C/C++ Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
void TextSend(AnsiString wintext, AnsiString text)
{
  HWND hwndPrev  = GetForegroundWindow();
  HWND hwnd      = FindWindow(0, wintext.c_str());
  SetForegroundWindow(hwnd);

  DWORD idAttach   = GetCurrentThreadId();
  DWORD idAttachTo = GetWindowThreadProcessId(hwnd, NULL);
  if( AttachThreadInput(idAttach, idAttachTo, TRUE) == FALSE )
     ShowMessage("ERROR: AttachThreadInput\(\)");

  HWND hwndFocus = GetFocus();
  if(hwndFocus != FALSE)
     SendMessage(hwndFocus, WM_SETTEXT, 0, (LPARAM)(LPCTSTR)text.c_str());

  if( AttachThreadInput(idAttach, idAttachTo, FALSE) == FALSE )
     ShowMessage("ERROR: AttachThreadInput\(\)");

  SetForegroundWindow(hwndPrev);
}

_________________
Riskiere doch mal einen Blick auf www.WebFritzi.de.vu
FROM: doofie (192.255.2.88); TO: WebFritzi (212.128.130.6)
hi, i'm a signature virus. copy me into your signature to help me spread.
WebFritzi
Mitglied

Benutzerprofil
Anmeldungsdatum: 23.09.2001
Beiträge: 9879
Beitrag WebFritzi Mitglied 20:58:00 05.09.2002   Titel:              Zitieren

Nicht Text neu setzen, sondern Text anhängen (wie im allerersten Posting):
C/C++ Code:
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
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
void TextSend(AnsiString wintext, AnsiString text)
{
  HWND  hwndPrev   = GetForegroundWindow();
  HWND  hwnd       = FindWindow(0, wintext.c_str());
  DWORD idAttach   = GetCurrentThreadId();
  DWORD idAttachTo = GetWindowThreadProcessId(hwnd, NULL);

  SetForegroundWindow(hwnd);

  if( AttachThreadInput(idAttach, idAttachTo, TRUE) == FALSE )
     ShowMessage("ERROR: AttachThreadInput\(\)");

  HWND hwndFocus = GetFocus();

  if(hwndFocus)
  {
     int length = (int)SendMessage(hwndFocus, WM_GETTEXTLENGTH, 0, 0);
     length++;
     char* prevText = new char[length + text.Length()];
     SendMessage(hwndFocus, WM_GETTEXT, (WPARAM)(length), (LPARAM)prevText);
     strcat(prevText, text.c_str());
     if( SendMessage(hwndFocus, WM_SETTEXT, 0, (LPARAM)prevText) == FALSE )
        ShowMessage("ERROR: WM_SETTEXT");
     delete[] prevText;
  }

  if( AttachThreadInput(idAttach, idAttachTo, FALSE) == FALSE )
     ShowMessage("ERROR: AttachThreadInput\(\)");

  SetForegroundWindow(hwndPrev);
}
C/C++ Code:
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
void TextSend(AnsiString wintext, AnsiString text)
{
HWND hwndPrev = GetForegroundWindow();
HWND hwnd = FindWindow(0, wintext.c_str());
DWORD idAttach = GetCurrentThreadId();
DWORD idAttachTo = GetWindowThreadProcessId(hwnd, NULL);

SetForegroundWindow(hwnd);

if( AttachThreadInput(idAttach, idAttachTo, TRUE) == FALSE )
ShowMessage("ERROR: AttachThreadInput\(\)");

HWND hwndFocus = GetFocus();

if(hwndFocus)
{
int length = (int)SendMessage(hwndFocus, WM_GETTEXTLENGTH, 0, 0);
length++;
char* prevText = new char[length + text.Length()];
SendMessage(hwndFocus, WM_GETTEXT, (WPARAM)(length), (LPARAM)prevText);
strcat(prevText, text.c_str());
if( SendMessage(hwndFocus, WM_SETTEXT, 0, (LPARAM)prevText) == FALSE )
ShowMessage("ERROR: WM_SETTEXT");
delete[] prevText;
}

if( AttachThreadInput(idAttach, idAttachTo, FALSE) == FALSE )
ShowMessage("ERROR: AttachThreadInput\(\)");

SetForegroundWindow(hwndPrev);
}
C/C++ Code:
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
void TextSend(AnsiString wintext, AnsiString text)
{
  HWND  hwndPrev   = GetForegroundWindow();
  HWND  hwnd       = FindWindow(0, wintext.c_str());
  DWORD idAttach   = GetCurrentThreadId();
  DWORD idAttachTo = GetWindowThreadProcessId(hwnd, NULL);

  SetForegroundWindow(hwnd);

  if( AttachThreadInput(idAttach, idAttachTo, TRUE) == FALSE )
     ShowMessage("ERROR: AttachThreadInput\(\)");

  HWND hwndFocus = GetFocus();

  if(hwndFocus)
  {
     int length = (int)SendMessage(hwndFocus, WM_GETTEXTLENGTH, 0, 0);
     length++;
     char* prevText = new char[length + text.Length()];
     SendMessage(hwndFocus, WM_GETTEXT, (WPARAM)(length), (LPARAM)prevText);
     strcat(prevText, text.c_str());
     if( SendMessage(hwndFocus, WM_SETTEXT, 0, (LPARAM)prevText) == FALSE )
        ShowMessage("ERROR: WM_SETTEXT");
     delete[] prevText;
  }

  if( AttachThreadInput(idAttach, idAttachTo, FALSE) == FALSE )
     ShowMessage("ERROR: AttachThreadInput\(\)");

  SetForegroundWindow(hwndPrev);
}


[ Dieser Beitrag wurde am 05.09.2002 um 21:07 Uhr von WebFritzi editiert. ]

_________________
Riskiere doch mal einen Blick auf www.WebFritzi.de.vu
FROM: doofie (192.255.2.88); TO: WebFritzi (212.128.130.6)
hi, i'm a signature virus. copy me into your signature to help me spread.
Jansen
Moderator

Benutzerprofil
Anmeldungsdatum: 30.04.2001
Beiträge: 14520
Beitrag Jansen Moderator 21:29:00 05.09.2002   Titel:              Zitieren

WebFritzi:
Funktionieren deine Methoden auch mit Konsolen-Fenstern (hab grad keinen Windows-BCB zur Hand)? Mit WM_SETTEXT wohl eher nicht, oder?


Und ja, auch dieser Thread kommt nach einer kurzen Reifezeit in die FAQ. ;)

_________________
Jansen (Mod nur im BCB-Forum)
WebFritzi
Mitglied

Benutzerprofil
Anmeldungsdatum: 23.09.2001
Beiträge: 9879
Beitrag WebFritzi Mitglied 21:34:00 05.09.2002   Titel:              Zitieren

Oder mit Hilfe des Clipboards:
C/C++ Code:
1
2
3
4
5
6
7
8
9
10
11
12
1
2
3
4
5
6
7
8
9
10
11
12
void SendText(AnsiString wintext, AnsiString text)
{
   HWND hwndPrev = GetForegroundWindow();
   HWND hwnd     = FindWindow(0, wintext.c_str());
   Clipboard()->AsText = text;
   SetForegroundWindow(hwnd);
   keybd_event(VK_SHIFT, 0, 0, 0);
   keybd_event(VK_INSERT, 0, 0, 0);
   keybd_event(VK_INSERT, 0, KEYEVENTF_KEYUP, 0);
   keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0);
   SetForegroundWindow(hwndPrev);
}
C/C++ Code:
1
2
3
4
5
6
7
8
9
10
11
12
void SendText(AnsiString wintext, AnsiString text)
{
HWND hwndPrev = GetForegroundWindow();
HWND hwnd = FindWindow(0, wintext.c_str());
Clipboard()->AsText = text;
SetForegroundWindow(hwnd);
keybd_event(VK_SHIFT, 0, 0, 0);
keybd_event(VK_INSERT, 0, 0, 0);
keybd_event(VK_INSERT, 0, KEYEVENTF_KEYUP, 0);
keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0);
SetForegroundWindow(hwndPrev);
}
C/C++ Code:
1
2
3
4
5
6
7
8
9
10
11
12
void SendText(AnsiString wintext, AnsiString text)
{
   HWND hwndPrev = GetForegroundWindow();
   HWND hwnd     = FindWindow(0, wintext.c_str());
   Clipboard()->AsText = text;
   SetForegroundWindow(hwnd);
   keybd_event(VK_SHIFT, 0, 0, 0);
   keybd_event(VK_INSERT, 0, 0, 0);
   keybd_event(VK_INSERT, 0, KEYEVENTF_KEYUP, 0);
   keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0);
   SetForegroundWindow(hwndPrev);
}

Finde ich bisher am besten. ;)

_________________
Riskiere doch mal einen Blick auf www.WebFritzi.de.vu
FROM: doofie (192.255.2.88); TO: WebFritzi (212.128.130.6)
hi, i'm a signature virus. copy me into your signature to help me spread.
Jansen
Moderator

Benutzerprofil
Anmeldungsdatum: 30.04.2001
Beiträge: 14520
Beitrag Jansen Moderator 22:00:00 05.09.2002   Titel:              Zitieren

Musst du nur noch den alten Clipboard-Inhalt zwischenspeichern, sofern vorhanden. Ich würde es ganz schön zum Kotzen finden, wenn mir ein Programm den ungefragt überschreibt.

_________________
Jansen (Mod nur im BCB-Forum)
WebFritzi
Mitglied

Benutzerprofil
Anmeldungsdatum: 23.09.2001
Beiträge: 9879
Beitrag WebFritzi Mitglied 22:17:00 05.09.2002   Titel:              Zitieren

Zur Eingabeaufforderung: Hab jetzt alle 4 Funktionen getestet. Keine von allen funzt da.

Zum Clipboard: Im Allgemeinen hast du recht. Aber ich denke da gerade an ein Proggi, das ich mal geschrieben hatte. Das war eine virtuelle deutsche Tastatur, bestehend aus Buttons und einem Edit-Feld. Wird ein Button gedrückt, dann erscheint die entsprechende Operation im Edit-Feld. Mit diesen Methoden hier kann ich jetzt auf das Edit-Feld verzichten. Ein Dankeschön an dieser Stelle an Hellmaster, der mich auf diesen Gedanken gebracht hat. Nunja, es müssten also andauernd Buchstaben/Zeichen an das Eingabefenster geschickt werden. Schwierig ist das mit Formularen im IE (so wie das, in das ich gerade schreibe). Das sind nämlich keine Fenster. Man muss also Hellmasters oder meine Clipboard-Funktion benutzen. Da ich Hellmasters nicht so ganz traue (er verzeihe es mir ;) ), würde ich meine nehmen. Und da wäre es doch ziemlich blöde, immer wieder den alten Clipboard-Inhalt nach dem Senden eines Buchstabens in das Clipboard einzufügen. In diesem Falle sollte man den User vielleicht benachrichtigen, dass jegliche Clipboard-Daten verloren gehen.

_________________
Riskiere doch mal einen Blick auf www.WebFritzi.de.vu
FROM: doofie (192.255.2.88); TO: WebFritzi (212.128.130.6)
hi, i'm a signature virus. copy me into your signature to help me spread.
Hellmaster1024
Unregistrierter




Beitrag Hellmaster1024 Unregistrierter 16:07:00 06.09.2002   Titel:              Zitieren

es sei dir verziehen das du meiner funktion nicht traust ...
ich abe sie aber getestet .. sie funktioniert einewandfrei ...
ich habe ein programm zum archivieren von cd´s geschrieben .. und da ich für meien filme covers drucken wollte habe ich mit dieser funktion die daten an den Nero Covereditor gesendet .... ich habe es mit 400 filmen getestet ... ohne einen einzigen fehler .... das programm ist mit der TAB taste von feld zu feld gesprungen und hat die felder mit meiner funktion ausgefüllt ... alles ohne probleme oder fehler.... also 400 fach getestet!!!
mfg
Hellmaster1024
WebFritzi
Mitglied

Benutzerprofil
Anmeldungsdatum: 23.09.2001
Beiträge: 9879
Beitrag WebFritzi Mitglied 17:34:00 06.09.2002   Titel:              Zitieren

OK, ich glaub dir. :)

_________________
Riskiere doch mal einen Blick auf www.WebFritzi.de.vu
FROM: doofie (192.255.2.88); TO: WebFritzi (212.128.130.6)
hi, i'm a signature virus. copy me into your signature to help me spread.
e=mc²
Mitglied

Benutzerprofil
Anmeldungsdatum: 11.10.2001
Beiträge: 160
Beitrag e=mc² Mitglied 15:26:00 09.09.2002   Titel:              Zitieren

Ja und wie kann ich nun Zeichen an die MS-DOS-Eingabeaufforderung senden?
C/C++ Forum :: FAQ - C++ Builder (VCL/CLX) ::  System - Text an fremde Fenster senden  
Gehen Sie zu Seite 1, 2  Weiter
Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können keine Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum nicht antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.de ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info, www.c-sar.de, www.c-plusplus.net und www.baeckmann.de enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.