Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

C - Win-32 Konsolenanwendung - Fokus auf Anwendung legen und Input geben

Frage Entwicklung C und C++

Mitglied: Shaddy

Shaddy (Level 1) - Jetzt verbinden

10.08.2012 um 14:19 Uhr, 2806 Aufrufe, 2 Kommentare

Das Ziel ist, dass alle 10 Minuten ein vorgegebener Input erfolgt.
Bisher war das www nicht hilfreich, deswegen bitte ich euch um Rat.

Hey leute,

ich möchte eine einfache Anwendung schreiben, die es mir ermöglicht an ein vorgegebenes Fenster einen Input zu senden.

Das Fenster soll nicht in den Vordergrund springen, ist aber ganz normal geöffnet und in der Taskleiste erreichbar.

Deswegen soll nur die geschriebene Anwendung kurzzeitig den Fokus auf mein vordefiniertes Fenster haben, ohne mich alle 10 minuten zu behindern.

Ich habe zahlreiche Foren durchsucht, aber immerwieder nur halbe Antworten gefunden - undurchsichtige Erklärungen.

Da ich bisher noch keine Arbeiten mit Fenstern gemacht habe, wäre ein Code-beispiel sehr hilfreich!

Als mögliches Beispiel dazu - Fokus auf ein bereits geöffnetes Editorfenster mit dem Titel "Unbenannt - Editor" legen und alle 10 Minuten eine 1 senden.

Gruß Shaddy
Mitglied: vossi31
10.08.2012 um 15:41 Uhr
Hallo,

muss es unbedingt C sein?
Vielleicht geht so was mit AutoIt leichter?
Sieh dir mal dies an http://www.autoit.de/index.php?page=Thread&threadID=32212

Henning
Bitte warten ..
Mitglied: rubberman
10.08.2012, aktualisiert um 23:21 Uhr
Hallo Shaddy!

Zitat von Shaddy:
Das Fenster soll nicht in den Vordergrund springen
[...]
Fokus auf ein bereits geöffnetes Editorfenster mit dem Titel "Unbenannt - Editor" legen

Das beißt sich etwas, oder?
Grundsätzlich ist es so, dass ein Keyboard Input für ein Fenster wirksam ist, das auch den Focus besitzt. Genau das würde dich aber "alle 10 Minuten behindern", nicht wahr? Workaround wäre hier ein PostMessage, was aber nicht wirklich eine Emulation des Keyboards darstellt. Für dein Notepad Beispiel ist das aber nebensächlich (und solange du nicht angibst für was du dies tatsächlich benötigst, ...).
01.
#ifndef WINVER 
02.
#define WINVER 0x0501 // XP und jünger 
03.
#endif 
04.
#ifndef _WIN32_WINNT 
05.
#define _WIN32_WINNT 0x0501 // XP und jünger 
06.
#endif 
07.
#ifndef UNICODE 
08.
#define UNICODE 
09.
#endif 
10.
#ifndef _UNICODE 
11.
#define _UNICODE 
12.
#endif 
13.
 
14.
#include "windows.h" 
15.
 
16.
int main(void) 
17.
18.
  const WCHAR* szWindowName = L"Unbenannt - Editor"
19.
  const WCHAR* szClassName = L"Edit"
20.
  const WPARAM wparam = '1'
21.
  const DWORD dwWait = 600000; /* 10 min = 600.000 ms *
22.
 
23.
  HWND hwndNotepad; 
24.
  HWND hwndTarget; 
25.
  hwndNotepad = FindWindow(NULL, szWindowName); 
26.
  if (hwndNotepad) 
27.
28.
    while (1) 
29.
30.
      hwndTarget = FindWindowEx(hwndNotepad, NULL, szClassName, NULL); /* Das Editorfenster in Notepad. *
31.
      if (hwndTarget) 
32.
        PostMessage(hwndTarget, WM_CHAR, wparam, 0); 
33.
      else 
34.
        return 0; 
35.
 
36.
      Sleep(dwWait); 
37.
38.
39.
 
40.
  return 0; 
41.
}
Grüße
rubberman
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(1)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
JavaScript
AngularJS Variable über Input in Funktion ausführen

Frage von badkilla zum Thema JavaScript ...

Sicherheit
Avalanche: Behörden legen Botnet lahm

Link von runasservice zum Thema Sicherheit ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (34)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...