接受鼠标输入的FORTRAN输入语句(例如,READ语句或OPEN语句)是什么?例如,在Windows资源管理器中,可以右键单击文件,然后从显示的菜单中选择FORTRAN可执行文件。如何使这样的FORTRAN程序捕获鼠标发送的任何内容(例如,捕获文件的名称,或鼠标发送的任何内容)?有关FORTRAN输入的信息似乎仅限于文件或键盘的输入。我找不到任何关于鼠标输入的信息。
答案 0 :(得分:0)
我自己取得了进步,对于那些感兴趣的人,这里是: 首先,“fortran标准”不直接支持来自鼠标的输入。但是,Windows资源管理器可以将文件名管道化为一个无法执行的fortran可执行文件。
在Windows下,右键单击会生成完整的\ path \ filename作为命令行参数。 fortran可以使用“get_command_argument”捕获该信息,如下所示:
PROGRAM get_filename
CHARACTER(len=100) :: arg
CHARACTER(len=2000) :: filename
filename = ''
! NB: spaces in a file name define separate arguments, so re-assemble the file name as it comes in
i = 1
DO
CALL get_command_argument(i, arg)
IF (LEN_TRIM(arg) == 0) EXIT
filename = TRIM(filename)//' '//TRIM(arg) ! putting the spaces back in
i = i+1
END DO
WRITE (*,*) 'file= ',TRIM(filename)
read(*,*)
END PROGRAM
可执行文件的链接可以放在Windows右键菜单中,如下所示:
您需要在可执行文件的名称中添加“%1”以使其接受命令行参数, 例如,我调用了我的可执行文件“PW_copy.exe”,因此最终的注册表项为:\ path \ PW_copy.exe%1
有效!
将鼠标拖动到多个文件会生成单独的线程,每个线程都有不同的文件名。