小编SmR*_*Guy的帖子

WinAPI:如何获得大写锁定状态?

如何开启或关闭Caps Lock?我试图搜索它,但我发现的是如何切换或打开/关闭它与我正在寻找的完全相反.

我试图在C++和Delphi中都这样做.
请帮忙

winapi state capslock

8
推荐指数
2
解决办法
2万
查看次数

Java"指针"如何工作?

让我们说这是C++代码:

void change(int& x){
    x++;
}
Run Code Online (Sandbox Code Playgroud)

要么

void change2(int* a){
    *a++;
}
Run Code Online (Sandbox Code Playgroud)

两者都会改变全局x,对吧?

那我怎么能在java中做那样的事情呢?
具体来说,我想指向一个Vector对象

但是由于Java没有指针,我不知道该怎么做.
从搜索互联网上我看到人们说Java以其他方式做到了这一点,但我没有找到任何真实的例子.

感谢帮助!

java pointers

6
推荐指数
1
解决办法
5096
查看次数

为什么在增强的for循环中没有初始化数组元素?

当我使用普通的for循环时,
数组中的所有元素都会正常初始化:

Object[] objs = new Object[10];
for (int i=0;i<objs.length;i++)
        objs[i] = new Object();
Run Code Online (Sandbox Code Playgroud)


但是当我使用for-each循环时.
null循环之后,数组元素仍然是:

Object[] objs = new Object[10];
for (Object obj : objs)
        obj = new Object();
Run Code Online (Sandbox Code Playgroud)


我认为obj是指数组中的特定元素,
所以如果我初始化它,数组元素也会被初始化.
为什么不发生这种情况?

java arrays for-loop

6
推荐指数
1
解决办法
875
查看次数

如何将击键发送到其他进程(来自记事本)?

我有一个带有PID的记事本:2860

#include <iostream>
#include <windows.h>
#include <psapi.h>
using namespace std;
HWND SendIt (DWORD dwProcessID){
    HWND hwnd = NULL;
    do {
         hwnd = FindWindowEx(NULL, hwnd, NULL, NULL);
         DWORD dwPID = 0;
         GetWindowThreadProcessId(hwnd, &dwPID);
         if (dwPID == dwProcessID) {
            cout<<"yay:"<<hwnd<<":pid:"<<dwPID<<endl;//debug
            PostMessage(hwnd,WM_KEYDOWN,'A',1); //send
         }
    } while (hwnd != 0);
    return hwnd; //Ignore that

}
int main()
{
    SendIt(2680); //notepad ID
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

和记事本应该写信A但没有任何反应.
我尝试WM_DESTROY了它的消息,它正在工作,但WM_KEYDOWN没有工作.
我也做了GetLastError(),它打印错误2 ERROR_FILE_NOT_FOUND.

为什么这不起作用,是否可以修复它?

c++ windows winapi sendmessage sendkeys

5
推荐指数
1
解决办法
1万
查看次数

如果更改CS段寄存器会发生什么?(那你怎么这样做?)

我读了这篇文章:http://static.patater.com/gbaguy/day3pc.htm

它包括句子

不要改变CS !!

但是,如果修改了CS段寄存器,究竟会发生什么?为什么这么危险?

x86 assembly x86-16

5
推荐指数
1
解决办法
3799
查看次数

Delphi:TImage数组

这是我的全部代码:

    unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls;

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  Images: array[0..29,0..39] of TImage; //array
implementation

{$R *.dfm}
//form create
procedure TForm1.FormCreate(Sender: TObject);
var xx,yy: Integer; //local variables
begin
        for xx:=0 to 29 do
                for yy:=0 to 39 do
                        begin
                             Images[xx,yy]:=Timage.Create(Form1);
                             Images[xx,yy].Canvas.Rectangle(0,0,17,17);
                             Images[xx,yy].Left:=xx*16;
                             Images[xx,yy].Top:=yy*16;
                        end;
end;

end.
Run Code Online (Sandbox Code Playgroud)

我总是得到错误:" Project Project1.exe引发了异常类EClassNotFound并显示消息"未找到TImage".进程已停止.使用步骤或运行继续 "

我在互联网上尝试过其他代码,如:
Delphi:TImage.Create导致访问冲突
http://www.delphi-central.com/tutorials/memory_game_2.aspx …

arrays delphi image

4
推荐指数
1
解决办法
4747
查看次数

C++:如何睡一纳秒?

可能重复:
睡眠时间小于一毫秒

如何使程序睡眠纳秒?我搜索了互联网,我发现了几种睡眠方式,但是:
windows.h的Sleep()睡眠时间只有几毫秒.
ctimenanosleep()是仅适用于POSIX系统,而我使用的是Windows.
我也试过这个:

int usleep(long usec)
{
    struct timeval tv;
    tv.tv_sec = usec/1000000L;
    tv.tv_usec = usec%1000000L;
    return select(0, 0, 0, 0, &tv);
};
Run Code Online (Sandbox Code Playgroud)

但Code :: Blocks说:

obj\Release\main.o:main.cpp|| undefined reference to `select@20'|
Run Code Online (Sandbox Code Playgroud)

我尝试了很多东西,但一切都失败了.我该怎么办?

c++ windows sleep

4
推荐指数
2
解决办法
9383
查看次数

java me:如何清除文件

如何清除J2ME中的文件以使其变空(没有内容)?
所有输出流(OutputStream, DataOutputStream, PrintStream...)
只能write()将内容添加到文件中,而我看不到删除文件中的字节/字节.

我使用Netbeams 7.0.1

感谢您的帮助

file clear java-me

3
推荐指数
1
解决办法
8135
查看次数

注册全局热键而不禁用其密钥

我想制作一个程序,即使它在任何时候都不活动,也可以捕获键盘事件。Hooks 太复杂了,我需要做很多事情才能使其正常工作(制作 DLL、读取它等等),所以我决定继续使用热键。

但现在我有一个问题。注册热键会禁用键盘上的按键,因此我只能将按键发送到程序,而无法在任何其他程序(例如记事本)上键入。

这是我的代码:

#include <iostream>
#include <windows.h>
using namespace std;

int main(int argc, char* argv[]) {
    RegisterHotKey(NULL, 1, NULL, 0x41); //Register A
    MSG msg = {0};

    while (GetMessageA(&msg, NULL, 0, 0) != 0) {
        if (msg.message == WM_HOTKEY) {
            cout << "A"; //Print A if I pressed it
        }
    }

    UnregisterHotKey(NULL, 1);
    return 0;
}

// and now I can't type A's
Run Code Online (Sandbox Code Playgroud)

这个问题有什么简单的解决办法吗?谢谢

c++ winapi hotkeys

3
推荐指数
1
解决办法
4283
查看次数

C++内部静态和动态声明有什么区别

我有两个代码:
正常:

int* p[5];
for (int i=0;i<5;i++){
    int s = rand()%25;
    p[i]=&s;
}
Run Code Online (Sandbox Code Playgroud)

动态:

int* p[5];
for (int i=0;i<5;i++){
    int* s = new int;
    *s = rand()%25; //Edit: typo, I didn't want to make a random pointer
    p[i]=s;
}
Run Code Online (Sandbox Code Playgroud)

现在,如果我打印数组p,p[i]首先然后:*p[i]在它之后,我得到:

 static             dynamic
0x22ff04 7         0x22ff30 7
0x22ff04 7         0x22ff24 14
0x22ff04 7         0x22ffa6 2
0x22ff04 7         0x22ff89 8
0x22ff04 7         0x22ff13 21
Run Code Online (Sandbox Code Playgroud)

现在为什么p中的所有元素都指向同一位置以进行正常声明,而在动态声明中创建了多个对象?
为什么是这样?

c++

3
推荐指数
1
解决办法
1139
查看次数