<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[SendInput und Hooks]]></title><description><![CDATA[<p>hi,<br />
ich habe 2 Programme:</p>
<ol>
<li>Ein Programm was das Keyboard hookt. Wird eine bestimmte Taste gedrückt, so wird bTaste true und das Programm startet in der Hauptschleife Programm 2 mit:</li>
</ol>
<pre><code class="language-cpp">ShellExecute(NULL,&quot;open&quot;,&quot;ESSDemoRecRec.exe&quot;,NULL,NULL,SW_SHOWNORMAL);
</code></pre>
<ol start="2">
<li>ein so kleines prog dass ich gleich mal den code (ohne inlcudes!!!!) poste</li>
</ol>
<pre><code class="language-cpp">// es gibt normal nur KEYUP, aber zur Vereinfachung schreib ich mal DOWN noch dazu
#define KEYEVENTF_KEYDOWN 0

// PpP ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// ~~~~~~
// VKKey = Der VK-Key der Taste deren State geändert werden soll
// Flags = KEYEVENTF_KEYDOWN Taste heruntergedrückt
//		   KEYEVENTF_KEYUP   Taste loslassen
void SendKey(WORD VKKey, DWORD Flags)
{
	// enhält Infos über die Taste die gedrückt werden soll
	KEYBDINPUT KeyInput;

	// die Taste die simuliert werden soll
	KeyInput.wVk = VKKey;

	// die Flags werden 1zu1 übergeben
	KeyInput.dwFlags = Flags;

	// das 'Sendepaket'
	INPUT InputEvent;

	// wir drücken eine Taste der Tastatur
	InputEvent.type = INPUT_KEYBOARD;

	// wir wollen die in KeyInput definierte Taste drücken
	InputEvent.ki = KeyInput;

	SendInput(1,&amp;InputEvent,sizeof(INPUT));
}

int WINAPI WinMain
(
    HINSTANCE hInstance,
    HINSTANCE hPrevInstance,
    LPSTR lpCmdLine,
    int nShowCmd
)
{
	// Hauptprogramm setzt diesen Eintrag zum Beenden
	while(GetRegKey(OPCODEREGISTRY,&quot;Record&quot;) == 1)
	{
		SendKey(VK_SPACE,KEYEVENTF_KEYDOWN);
		SendKey(VK_SPACE,KEYEVENTF_KEYUP);
		Sleep(100);
	}
}
</code></pre>
<p>so jetzt zu meinem Problem:<br />
auf manchen PC's (natürlich gerade nicht auf meinem), kommt es zu einem sehr großen Performance-Unterschied wenn man</p>
<p>a) Prog 2) über die Taste von Prog 1) starte</p>
<p>und wenn man</p>
<p>b) Prog 1) runnt, aber Prog 2) manuell startet.</p>
<p>Beides mal wurde das Programm in UT2004 getestet und bei a) waren es ca 0,5 fps und bei b) ca 30 fps und ich glaub 60facher Speed ist schon etwas hart.</p>
<p>Woran könnte das liegen?<br />
thxalia</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/177277/sendinput-und-hooks</link><generator>RSS for Node</generator><lastBuildDate>Fri, 26 Jun 2026 20:13:09 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/177277.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 29 Mar 2007 18:28:10 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to SendInput und Hooks on Thu, 29 Mar 2007 18:28:10 GMT]]></title><description><![CDATA[<p>hi,<br />
ich habe 2 Programme:</p>
<ol>
<li>Ein Programm was das Keyboard hookt. Wird eine bestimmte Taste gedrückt, so wird bTaste true und das Programm startet in der Hauptschleife Programm 2 mit:</li>
</ol>
<pre><code class="language-cpp">ShellExecute(NULL,&quot;open&quot;,&quot;ESSDemoRecRec.exe&quot;,NULL,NULL,SW_SHOWNORMAL);
</code></pre>
<ol start="2">
<li>ein so kleines prog dass ich gleich mal den code (ohne inlcudes!!!!) poste</li>
</ol>
<pre><code class="language-cpp">// es gibt normal nur KEYUP, aber zur Vereinfachung schreib ich mal DOWN noch dazu
#define KEYEVENTF_KEYDOWN 0

// PpP ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// ~~~~~~
// VKKey = Der VK-Key der Taste deren State geändert werden soll
// Flags = KEYEVENTF_KEYDOWN Taste heruntergedrückt
//		   KEYEVENTF_KEYUP   Taste loslassen
void SendKey(WORD VKKey, DWORD Flags)
{
	// enhält Infos über die Taste die gedrückt werden soll
	KEYBDINPUT KeyInput;

	// die Taste die simuliert werden soll
	KeyInput.wVk = VKKey;

	// die Flags werden 1zu1 übergeben
	KeyInput.dwFlags = Flags;

	// das 'Sendepaket'
	INPUT InputEvent;

	// wir drücken eine Taste der Tastatur
	InputEvent.type = INPUT_KEYBOARD;

	// wir wollen die in KeyInput definierte Taste drücken
	InputEvent.ki = KeyInput;

	SendInput(1,&amp;InputEvent,sizeof(INPUT));
}

int WINAPI WinMain
(
    HINSTANCE hInstance,
    HINSTANCE hPrevInstance,
    LPSTR lpCmdLine,
    int nShowCmd
)
{
	// Hauptprogramm setzt diesen Eintrag zum Beenden
	while(GetRegKey(OPCODEREGISTRY,&quot;Record&quot;) == 1)
	{
		SendKey(VK_SPACE,KEYEVENTF_KEYDOWN);
		SendKey(VK_SPACE,KEYEVENTF_KEYUP);
		Sleep(100);
	}
}
</code></pre>
<p>so jetzt zu meinem Problem:<br />
auf manchen PC's (natürlich gerade nicht auf meinem), kommt es zu einem sehr großen Performance-Unterschied wenn man</p>
<p>a) Prog 2) über die Taste von Prog 1) starte</p>
<p>und wenn man</p>
<p>b) Prog 1) runnt, aber Prog 2) manuell startet.</p>
<p>Beides mal wurde das Programm in UT2004 getestet und bei a) waren es ca 0,5 fps und bei b) ca 30 fps und ich glaub 60facher Speed ist schon etwas hart.</p>
<p>Woran könnte das liegen?<br />
thxalia</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1255557</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1255557</guid><dc:creator><![CDATA[ESS_CB]]></dc:creator><pubDate>Thu, 29 Mar 2007 18:28:10 GMT</pubDate></item><item><title><![CDATA[Reply to SendInput und Hooks on Fri, 30 Mar 2007 15:15:41 GMT]]></title><description><![CDATA[<p>ich persönlich denke das es an dem</p>
<pre><code class="language-cpp">ShellExecute(NULL,&quot;open&quot;,&quot;ESSDemoRecRec.exe&quot;,NULL,NULL,SW_SHOWNORMAL);
</code></pre>
<p>liegt, aber was soll daran falsch sein?</p>
<p>Startet manchmal die Func den neuen Prozess las eine Art untergeordneten Thread?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1256104</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1256104</guid><dc:creator><![CDATA[ESS_CB]]></dc:creator><pubDate>Fri, 30 Mar 2007 15:15:41 GMT</pubDate></item><item><title><![CDATA[Reply to SendInput und Hooks on Sat, 31 Mar 2007 06:48:51 GMT]]></title><description><![CDATA[<p>keine Ahnung? wär ziemlich schade <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1256398</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1256398</guid><dc:creator><![CDATA[ESS_CB]]></dc:creator><pubDate>Sat, 31 Mar 2007 06:48:51 GMT</pubDate></item><item><title><![CDATA[Reply to SendInput und Hooks on Tue, 03 Apr 2007 18:56:08 GMT]]></title><description><![CDATA[<p>ehm bevor ich das hier komplett aufgeb, sagt bitte bitte wenigstens das ihr keine ahnung von der Lösung habt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>EDIT:</p>
<p>R.i.P. (Rest in Piece, wie ich in nem aufsatz geschrieben hab ;)) du lieber Thread.... denn dich ignoriert ja jeder <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1257380</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1257380</guid><dc:creator><![CDATA[ESS_CB]]></dc:creator><pubDate>Tue, 03 Apr 2007 18:56:08 GMT</pubDate></item></channel></rss>